parselist/                                                                                             755      62      62            0  5264157177  11406  5                                                                                                    ustar   louis                           other                                                                                                                                                                                                                  parselist/parselst.o                                                                                   644      62      62       130027  5263377335  13545  0                                                                                                    ustar   louis                           other                                                                                                                                                                                                                    6     8   ?      (     $Revision: 1.33 $ parselst.cfg Revision 1.33 ParseLst - %s %s by Bob Hartman, SysOp of FidoNet Node 1:104/501
 Modified by George Peace and Bill Andrus, FidoNet Nodes 1:13/13 & 1:13/0
 This program is placed in the  Public Domain  as part of the BBS project.
 For information on BBS (Bit Bucket Software), contact 104/501 or 343/491.

 Don't understand %s

 Using EditNL to update Nodelist
 EditNL 
 1 
Sorting for INDEX.DOG
 INDEX.DOG Error opening INDEX.DOG - not generated
 Processing Completed Without Errors.

    U<WVSE   E    E    1E E u   U#   U'   U]؋(   U؊,   USVh-   h    SVho   h    sh   h    ah  h    O}      9]   U9/t	9-   Q    p   9   $    \    @                h  H    t  EiyWEUMuMu
Mu~'j
j APk6  QhP  UC9]} ~*hf  8h  +h  f  f            } ~=    W5        @    @                                            uuuy=6   ~6        =    u!=     ~                       =     tj  =     u=6   t56  =6   t56  =6   t56  =6  t56  =6  t56  =6  t56  =7  t57  k=6   t56  T= 7   t5 7  ==7  t57  &=7  t57  =7  t57  =7     =P    tjTh    57  57  =        h  h    j5    5    h  }h  jAh  i7  t0    P5    57  ?57  1h  "h  h  =     t=6   t1e[^_w NODELIST.BBS Error opening output file
 NODELIST.FON Error opening NODELIST.FON - not generated
 FIDOUSER.$$1 Error opening FIDOUSER.$$1 - not generated
 NODELIST.DAT Error opening NODELIST.DAT - not generated
 NODELIST.IDX Error opening NODELIST.IDX - NODELIST.DAT not generated
 ParseLst 1:132/101 in Nashua, NH USA NODELIST.SYS Error opening NODELIST.SYS - not generated
 Error opening NODELIST.IDX - NODELIST.SYS not generated
 NODELIST.EXT Error opening NODELIST.EXT - not generated
 Error opening NODELIST.IDX - NODELIST.EXT not generated
 NODELIST.DOG Error opening NODELIST.DOG - not generated
 NETLIST.DOG Error opening NETLIST.DOG - NODELIST.DOG not generated
 Could not allocate space for INDEX.DOG - not generating
 QNL_DAT.BBS Error opening QNL_DAT.BBS - not generated
 QNL_IDX.BBS Error opening QNL_IDX.BBS - QNL_DAT.BBS not generated
 NODELIST.PRN NODELIST.TXT  UWVS=     t2h!  h#  O6  u!h0  9j/6      =     t-h!  hK  
6  uhX  6      =     t-h!  h  6  uh  6      6  6  =     =  h  wh  jAh  c6  uh  L  h  :h  jAh  &6  u-h  56  6     h   j h    f    f       <     @  HD  HP   E     h   h    56  }fE j]S56  cfEjS56  L6  6  6  =     A  ha  h  jAha  6  uhn    =6     h  h  jAh  6  u(h  56  6  2fE j]S56  efEjS56  Njtj h    =             <     @  HD  HL   E     jth    56  6  7  =       h  h  jAh  7  uh     =6     h  ah  jAh  M6  u(h	  657  (7  2fE j]S56  fEjS56  jj h    <      @     D     jh    57  7  =       hE	  wh  jAhE	  c7  uhR	  L   h~	  :h  jAh~	  &7  u1h	  57  7      T   &jTj h    jTh    57  h  j    uh	          %        7  7  =        h	  Uh  jAh	  A7  uh
  *]h2
  h  jAh2
  7  u1h>
  57  
7  7  =     t%h!  hu
  6  t
    d   =     t"h!  h
   7  t
    d   e[^_r Could not open Nodelist File '%s' - Exiting
 
Processing Nodelist File '%s'
 -- Page Bulletin Board Listing from %s %s %s %d

 
Adding Nodelist File '%s' to Zone %d
 zone 
Returning to finish file '%s'
 ZONE  REGION  region host hub point pvt hold Zone %2d, Region %2d, Net %5d IGATE  OGATE  GATE  HUB  %s%s%s %s%d %d %d %s %s %s
 - %4d %4d %3s %3s %3s %4d %c %s
 HST PEP V32 V32b H96 CM %-10.10s %4d %-20.20s %-20.20s %-25.25s %-20.20s %4d %-20.20s
 %-10.10s %4d %-20.20s %-17.17s %-19.19s %4d
 %s, %s %s %s %s, %s %s %s, %s %d:%d %d %-40.40s%13.13s/%-6d%5d
    U   WVSǅ8    h      0	00 u    0h  j    z}   2h  0h   h    0    ЍI    rO9:u    rB  =  yh   h  h    Fh   h  h    /          =6   t- u$    5    h    h  56  = 7   tI u@    5    h    h  5 7  5        0h      0}Wǅ     E}E   }}}}}8h0h   h    H  ǅ(    ǅ,    ǅL    ǅ4    ǅ$    ƅLǅ            l    =     t    B$uFA9 u
F ll;   =     tm
th    h    R =   A	=6   t=    du56  h   = 7   =    d5 7  h       VVj
j P8 +  hB  T  =     ~v=    9}uk=     tb=     t    @    fǅT  =     tj fǅT =     ufT tEPhG      =     uJ=     tg  8f=k  f<m  8=q  <ǅ,   o=     tg  8f=k  f<m  8=q  <ǅ,   =     ~ P9     ƅZ  hu  u=    ǅ,    z  ǅ    k  h|  u=    ǅ,    u
ǅ    ƅI  h  huQ    =     tG	ƅ8 ǅ,    u
ǅ    ƅH   h   u=    ǅ,    u
ǅ    ƅP[h  uƅ8 ǅ(   .h    ƅ8 ǅ$   ,    P,|f,fTf+TPDfTfT~؋,8/uuuh  h    ǅD    PPDB    @LH  ǅ    r  PD8 %          =           :9}t	:       B9E   D9z   RH   Gtf   ItOt.     8f=  f<  >]=  8f  f<  >5=  8f  f<=  8  <    @    @    =     V:ƍWV(ƍPVVXW        =     t6    p0     @    =     uʃ4 uF=     u=    0щHPh    ju
ǅ4   ǅ     =    =    =     tE    9Et:u    z9}uD9Ba    @    =     u, t/h    B$u	=     tMEPh    B$t$    =        8       E    @Lǅ4     =    GPS4=    wSwh        @  RH  jB@Phn     EPǅ       4 uK        =     t8    p0s    @    =     uʍhh t$hAC9 t    B$u 9 tAAC9 t    B$u 9 tAxAC9 t    B$u  uƅ1ƅ  uƅ1ƅ x uƅx1ƅy =    =    =     t?    p0O    @    =     uʃ=     uo  uf    0щHPh    t3h    h    h  SS4 u_=    =    =     t6    p0t    @    =     uʃ4 u    L4SVAj
j S2H=    =    =     tE    9Et:u    z9}uD9B    @    =     uH9=    }    H> t    ÊPA9 t
C$t , t(VlWwH<L@ t(lPVF<H@L   =6   tU=     tPHLPh  56  $=6   tUV  > tRPHxPPPDuh  56  e(=6    h   j h    DfDf=   fEf    fLf=   H,  z   f=   f=v   j!h      j_Qt ꐐj'h(   jPhP   P   j_Qt ꐐ        =     tF    :9}t:u    B9EuD9zI    @    =     u8ufEfx   fx     {    h	  Vt{   h  Vt{   h  Vt{   h  Vt{   h  Vt{   f|        9,wj,$%  &  %  %  %  %  &  |   <|   0|   $|   |   |f|    h  Vt|           =     tD    :9}t:u    B9EuD9zt    @    =     uh   h    56  n=7    h   j h    ME    }=   D   ,       ,u8Ru       jh    57  }=   E   D=   jh      j_Qt ꐐ0щH   <~   j(Ph&   R&   j_Q@t ꐐ0щH%   <(~%   (j(hO   0щHN   <(~N   (=    =    =            9Et:un    z9}u`D9BuUjRBRhx   Z=    WB0щHw   <~%w       @    =     f          9,wv,$$)  )  8)  D)  P)  )     J   >   2      jB@Ph    $     h  Vjt           =     tF    :9}t:u    B9EuD9zu    @    =     uH   L=   h   h    57  =7  e  jj h            =     tH    :9}t:u    B9EuD9z    @    =     u          9,w[,$*  +  *  *  *  +     .   "      |   h  Vt   =    =    =     tD    9Et:u    z9}uD9Bt    @    =     ujh    57  e=7  ,  D    =P    tjTh    57  -    TjTj h    }=    jh      j_Qt ꐐj'Ph      j_Qt ꐐ    L   =      b=     tcE=    DG    G    G    6jrL   0щL   P0!        jtj h    D=    jh      j_Qt ꐐj'Ph      j_Qt ꐐj'h:   8ud      Eh   L=l   Hp   jth    57  ?P       t    =6  *  jtj h    D=    E   L=   H   jh      j_Qt ꐐj'h$   j'PhL   L   j_Qtt ꐐ=    =    =     tH    9Et:u    z9}uD9B    @    =     ujth    56  =6     D u4,+Zu	=     ufǅVfǅVfDfVjVP56  f}fTjTP56  d,u<      @       Gt	IuD      D=H    _  =6              , t&,=    '~j         =    ;~j         VHPPXPPh!  56  e(    = 7              , t&,=    '~j          =    ;~j          HPXPPh`  5 7   =6   w=     ~E9    t=    VHDEP,Vf$ u( u	 t
    d   ƅi ƅ ƅ ƅ9 8 t_tFA> t>_u > tF	FA> t>_u > tF	FA> t>_u hFA> t>_u >_Xh    h88iP2P#P9Ph t5Ph  lP    t+Ph  lPU t#h  lPj(8 +h  lP@=     ~(}9=    tuuh  uh  5    DlPh  56  0=     t    @    [^_
 %s %d
 Type       Node Board's Name         Phone Number         City                      Sysop's Name         Baud Flags
 ====       ==== ============         ============         ====                      ============         ==== =====

 Type       Node Board's Name         Phone Number      City                Baud
 ====       ==== ============         ============      ====                ====
  UEue=     thh4  56      5    h    hk4  56  hr4  56  h4  56  Åuc=     thh4  5 7  s    5    h    hk4  5 7  Oh]5  5 7  <h5  5 7  )Ð        6    6    6    6    6    6    6    6    6    6  [ 6  e 6  e 6    6    ~6    v6  e j6    e6    _6    W6    R6    L6    D6    ?6    96    46  X /6  a )6  a  6    6    6    6  a Y4    Q4    I4    C4    /4    *4    $4    4  w 4  Y 3    3  Y 3    3    3    3  Y 3    3  Y 3    e3  Y Y3    -3  Y !3    2   2   2   2   2   1  w 1   s1   k1    _1    R1    I1    D1    >1    1   0   0   0   0   0    0    0    0    U0   B0   80   %0   0   /    /  , /  , /  , /  , /  . /    v/  . q/    8/   /    /  . /    .   .   .   .   .   .   .   .   .   .   .   x.  0 s.   b.  0 ].   @.   6.   ..  0 ).   .   .   .   -   -   -   -    -  6 -  B -  , -  . -    -  O -  O -  O -  O -  O v-  0 q-  O T-   K-  O C-  0 >-  O  -   -  O -  0 -  O ,  O ,   ,  O ,  6 ,  0 ,   ,   ,   ,  B ,   ,   x,   l,  6 f,  , a,  B L,   C,  , ;,  0 6,  , ,   ,  , ,  0  ,  , +  , +   +  , +   +  . +    +  , +  , +    +  . +    +   +   |+   t+   \+   J+   >+   8+   2+   ++   +   +    +   +   *   *   *   *    *    *    *    *    *    *   *   *   *   t*   b*   V*   P*   K*   C*   >*   .*    %*  .  *    *   *   *   )   )   )   )   )   )   )   )   )   )   )    )   u)  0 p)   ^)   R)   F)   :)   4)    0)    ,)    ()    $)    )     )   (   (   (   (   (   (   (  0 (   x(   f(   Y(   S(   M(   F(   <(   (  0 (   '   '   '   '   '  0 '   '   '   T'   L'   D'  0 ?'   2'   &'   '   '  . '    '   &   &   &   &   &   &   &   &   &   &    &  . &    &   v&   p&   h&   P&   >&   2&   ,&   '&   !&   &   &    &   %   %   %   %   %   %    %    %    %    %    %    %    %   %   {%   u%    o%   b%   \%    V%   I%   C%    =%   0%   *%    $%   %   %    %   %   $   $   $   $   $   $   $   $   $   |$   t$   l$  0 g$   V$  0 Q$   4$   )$   !$  0 $   $   $   $   #   #   #   #   #   #    #    #    #    S#    K#    B#    9#    4#    .#    "   "   "    "  j "  j U"  | @"    9"    *"    $"    "     "    !    !    !    !    !    !   !  l !    !    !    y!   i!    a!    [!    U!    C!  j 4!  Y (!    #!  b !  a !   !                                                     4   |    |   |                y    o    i    d    V  5 C  j )  0 $         Y           j           # l    R  | B  j 0    #  | 
                                       q    i    W    Q    I    9   )    !              j                                 z    j    ^    O    B    6    '                                p  j I    %               |   q    P   E       	                           X   M   @   5                                 {    n    f   M    A    1    $                                                     }   r    W    C   2   &        P                 P              P      P       ]  | N  P H  P 9  w   Q   P     z  j o    g    b    [    V    K    F    @    ;  [ 6  e 0  e             
      X    a   a       [   X   Y   [       P   Y   X       P           P   P x  P g  P ]  Q X  P E    @    &                
                      z   u    p    h   ^   T    L   G    B    :   0    &      	                   ;       9                   ;       9                x   r  2 e   \    W    N  2 F   7  . 2    ,  , "     ,          	                   ;       9                   ;       9     t   j    \  . W    Q   J   D    >   8    2   ,    #        .       .           	                   ;       9         z    u    k    c  ; ^    O  9 J    >   4    *      .                                               .       .     y    p  	 k    b    ]    S    K  ; F    7  9 2    &            	      ;       9                      .       .       . z    t   c    ^   V    M    G   A    ;   4   +   !            	                   ;       9                   ;       9     t   j    `    V    H    C    :    2   -    (                    
    
   
    
    
   
    
   
    
    
    
   
    
    
  }   L       I   G           9               	       .       2   6       ;       9 z    r  7 m  2 g  6 _  5 W    R    F  2 =  	 8    /  . *    $  ,   ,       	           	           	                                   	         z  	 u    l    c  	 ^    U    L  	 G    >    5    0    '                                                                            u    o    i    c    ]    W    Q    K    E    ?    +    #                                                                            ~    M    <    8    4    0    ,    (    $                                                                                  u    p    k    a    X    L    C    :                               d       *   d       5          W          i                                                            !         D         a         }                                                               
         =         p                                                                                                                              '         2         ;         F         Q         Z         d         o         y                                                                                          L         z                           	         @         z                                    I         ~                                             7         A         h         s                                                               G         P         Z         ~                                             	         	         &	         L	         |	         	         	         	         	         	         	         !
         5
         ?
         J
         n
         
         
         
         
         
         
                  5         l                                             L         {                                    7         m                                    '         T                                                      >         j                                              M         ]         i         z                                     &         .         N          V     6  [          f     6  o           D \   u             D ]       D ^       D _       D ` +      D c 5      D d h  }                      D e |      D f       D g       D i       D j       D k       D l       D m                D p @      D q C      D t H      D u K               D v T      D w W      D y \      D z b      D { e      D } h      D ~ n      D  q      D  t      D  z      D        D                 D        D                 D        D        D j       D        D        D                 D        D        D                 D                 D                          D        D        D        D        D                 D  *      D  6      D  =                        D  I                        D  U                        D  a                        D  m           (             D  y  ,             D        D    :             D    C     
      D    R             D    \             D        D        D        D        D    d           D        D    r     6      D                  D         6      D        D  %       6      D  .      D  <       6      D  E               D  S      D  S       6      D  \      D  j      D  j       6      D  s      D        D         7      D        D        D         6      D        D          7      D        D         7      D        D        D         7      D        D        D         7      D        D        D    %     7      D    2     T       D  !  :             D  6      D  6      D D  A            D Q      D ^  I         N        V             D y  ]             D   e         k     7      D 	      D       D       D       D       D       D       D       D       D   v             D                D !	      D #               D %      D &    $                                 @                       @                  @                  @                            E       S        \  !     j  "     s  #       $       %       &       '       (       )       *       +       ,       -     !  .     6  /     Q  0       1       2       3       4       5       6           D *
      D +
      D -
  7             D /
  >             D 1
      D 2
  E             D 7
      D ;
  K             D =
      D ?      D A      D D      D H  R             D J'      D LB      D NO      D QT      D T^      D Uh      D Wr  Y             D Y      D Z      D \      D ]      D `      D a      D c      D d      D e      D f      D j  c        m             D k(      D l1      D m:      D n]      D on      D r      D s      D t      D u      D v      D x      D {      D |      D       D   u             D       D       D       D       D $      D 1      D >      D \      D i      D w      D       D       D       D       D       D       D        t       D       D       D       D       D       D #      D #      D (      D 2      D <               D I      D V      D t      D       D       D       D       D       D       D       D       D       D       D       D       D       D               D *      D N      D c      D c      D h      D r               D       D       D       D       D       D       D       D       D       D               D       D       D )      D >      D >               D  >      D  >      D  >               D  M               D M      D V      D c              D m      D p      D |      D       D       D                D       D        D       D       D       D       D 	      D 
      D "      D "      D $      D .      D 8               D A      D \              D f               D o      D   
            D     $   
  *     .     
  /       0       1       2       3       4       5       6     $  7     \  8       9       :       ;     #  <     #  =     I  >       ?       @       A       B       C     c  D     c  E       F       G       H       I     >  J     >  K     M  L     |  M       N       O     "  P     "  Q           D "      D #      D F      D G      D I	      D J      D M$      D O3      D Q=      D RL  R        W             D Sd      D T|      D U      D V      D X      D Y  ^        n             D Z  w            D [      D ^      D _      D b      D d              D e      D h      D j.              D k4      D mR      D oT      D pn               D s      D u      D w      D y      D |      D }      D ~      D       D       D &      D -      D 7               D A      D G      D L      D X               D h      D m      D n      D s      D v      D z      D       D                D                         D       D       D       D       D 
      D       D $               D *               D ;      D L      D d      D q               D                D       D       D       D       D       D       D       D       D       D       D       D                 D #      D @      D W      D a      D d      D m      D       D       D       D       D       D       D       D       D       D   	             D                D       D       D "      D ,      D 4      D K               D Q      D _      D i      D r      D |      D       D       D   %             D       D       D       D       D       D       D       D       D       D   ,             D       D       D %      D .      D 8      D ?      D 	D      D [      D b      D l      D p      D       D       D       D       D       D       D        D !      D #      D $      D !      D %      D &      D (	      D )  5             D *,      D +6      D .8      D 0D      D hH      D jV      D ~\      D f      D w      D 3|      D 7      D 9      D :      D <      D ?      D B      D C1      D E4      D FY      D H\      D Iu      D Kx      D N      D O      D Q      D R      D V      D Y      D \      D _      D `       D c      D d      D f(  =             D lH      D mU      D p^      D s      D w      D x      D y      D {      D       D       D       D       D 7      D I      D w      D   J             D       D       D       D       D       D       D       D       D       D       D       D t  Q             D u0      D 8      D J      D T  Z             D Z      D Z      D c      D m      D x      D       D       D       D       D       D       D       D       D       D       D       D       D       D       D        D        D        D        D "       D $       D *       D ?       D B       D K       D R       D Y       D b       D i       D p       D y       D        D        D        D        D        D        D        D !  e         s             D ;!      D J!      D S!      D _!      D h!      D !      D !      D 
!      D !               D !      D !      D !      D !      D !      D "      D ("      D !1"      D #?"      D 'J"      D (L"      D *`"      D +a"      D ,p"      D .s"      D 0|"      D 1"      D 2"      D 5"      D 7"      D 8"      D 9"      D ="      D @"      D B"               D D"               D G#      D K@#      D NI#      D QR#      D T#      D V#      D X#      D Y#      D Z#      D [#      D \#      D ]$      D ^$      D _($      D `-$               D bA$      D cD$      D eH$      D f]$      D gs$      D hx$      D j$      D k$      D n$                        D o$      D q$      D w$      D x$      D z$      D |$      D }$      D  %      D 	%      D %               D "%      D )%      D ;%      D B%      D T%      D [%      D m%      D t%      D %      D %      D %      D %      D %      D %      D %      D %      D %      D %      D %      D %      D %      D &      D &      D &      D &&                        D 0&      D <&      D g&      D t&      D }&      D &      D &      D &              D &              D &      D &      D &      D &      D &      D '      D '      D "'      D *'      D 6'      D K'      D P'      D a'      D d'      D h'      D '      D '      D '      D '      D '      D '      D '      D '      D '      D '      D (      D (      D @(      D D(      D K(      D W(      D d(      D (      D (      D (      D (      D  (      D (      D (      D (      D )      D 8)      D ?)      D D)      D K)      D P)      D W)      D )\)      D *c)      D @h)      D A|)      D )      D )      D )      D #)      D $)      D &)      D ,)      D -)      D /)      D 0*      D 2*      D 3,*      D 5,*      D 79*      D :J*      D ;T*      D =`*      D C*      D D*      D F*      D H*      D N*      D O*      D R*      D S*      D V*      D W*      D j+      D k+      D Z+      D ^+      D `)+      D d0+      D e<+      D gH+      D ms+      D n+      D p+      D q+      D s+      D u+      D w+      D y+      D z+      D {+      D }+      D ~+      D +      D ,      D ,      D %,      D (,      D ,,      D B,      D G,      D Y,      D \,      D `,              D j,      D v,      D ,      D ,      D ,      D ,      D ,      D ,      D ,      D ,      D ,      D ,       t       D ,      D ,      D -      D -      D --      D 0-      D 4-      D J-      D O-      D a-      D d-      D h-      D }-      D -      D -      D -      D -      D -      D -      D -      D -      D -      D -      D -      D -      D .      D 	.      D .      D  .      D 5.      D :.      D M.      D P.      D T.      D i.      D .      D .      D .      D .      D .      D .      D .      D .      D .      D .      D /      D /      D /      D -/      D ?/      D L/      D U/      D X/      D f/      D }/      D /      D /      D /      D /      D /      D /      D /      D  /      D /      D 0      D 	0      D ,0        6      D 60      D @0      D I0      D S0      D ]0      D 0      D 0      D 0      D !0      D "0      D %0      D '1      D (1      D +1      D 1P1      D 4]1      D 9~1               D <1      D =1      D ?1      D @1      D A1      D B1      D D1      D E2      D F2      D H2      D I2      D K2      D L2      D N 2      D O&2      D P02      D R32      D S82      D U92      D V?2      D XD2      D YJ2      D ZT2      D \W2      D ]]2      D _`2      D `f2      D ap2      D cs2      D f|2               D g2      D h2      D i2      D j2               D k2      D l2      D m2      D n2      D p3      D q43      D s<3      D uE3      D vl3      D xp3      D zy3      D {3      D }3      D 3      D 3      D 3      D 3      D 3      D 
4      D 64      D 64      D w64      D <4      D G4      D P4      D ]4    $     +        4     P<     LE     HN     DU     h               l     @     <     8     4     T     V           l     0  @        @         @           ,     8!     2     C     T     he     4v                    x     X     (     $                                 I#       #       #       &       &       ,*       9*       +       +       +       +       -       -       /       /       /       ]1       64       ]4      D  6      D 6      D 6      D 6      D '6      D -6      D K6      D ^6      D n6      D p6      D t6      D }6      D 6      D 6      D 6      D 6      D 6    $    6             @       	                    #          .          :          F          U          `          l          y                                                                                                    
  (   6    (   6  ,  (   6  ;  (   6  K  (   6  [  (   6  k  (   6  |  (    7    (   7    (   7    (   7    (   7    (   7    (   7    gcc2_compiled. /home/louis/parselist/ parselst.c int:t1=r1;-2147483648;2147483647; char:t2=r2;0;127; long int:t3=r1;-2147483648;2147483647; unsigned int:t4=r1;0;-1; long unsigned int:t5=r1;0;-1; short int:t6=r1;-32768;32767; long long int:t7=r1;0;-1; short unsigned int:t8=r1;0;65535; long long unsigned int:t9=r1;0;-1; signed char:t10=r1;-128;127; unsigned char:t11=r1;0;255; float:t12=r1;4;0; double:t13=r1;8;0; long double:t14=r1;8;0; void:t15=15 size_t:t4 fpos_t:t3 __FILE:T16=s40_flags:1,0,32;_gptr:17=*2,32,32;\ _egptr:17,64,32;_eback:17,96,32;_pbase:17,128,32;\ _pptr:17,160,32;_epptr:17,192,32;_base:17,224,32;\ _ebuf:17,256,32;_chain:18=*19=xsstreambuf:,288,32;; FILE:t16 ssize_t:t1 time_t:t3 clock_t:t3 ptrdiff_t:t1 pid_t:t1 uid_t:t8 gid_t:t8 dev_t:t8 ino_t:t5 mode_t:t8 umode_t:t8 nlink_t:t8 daddr_t:t1 off_t:t3 u_char:t11 u_short:t8 u_int:t4 u_long:t5 unchar:t11 ushort:t8 uint:t4 ulong:t5 caddr_t:t17 cc_t:t11 speed_t:t4 tcflag_t:t5 fd_set:t5 ustat:T20=s20f_tfree:1,0,32;f_tinode:5,32,32;\ f_fname:21=ar1;0;5;2,64,48;f_fpack:21,112,48;; flock:T22=s16l_type:6,0,16;l_whence:6,16,16;\ l_start:3,32,32;l_len:3,64,32;l_pid:1,96,32;; stat:T23=s64st_dev:8,0,16;__pad1:8,16,16;\ st_ino:5,32,32;st_mode:8,64,16;st_nlink:8,80,16;\ st_uid:8,96,16;st_gid:8,112,16;st_rdev:8,128,16;\ __pad2:8,144,16;st_size:3,160,32;st_blksize:5,192,32;\ st_blocks:5,224,32;st_atime:3,256,32;__unused1:5,288,32;\ st_mtime:3,320,32;__unused2:5,352,32;st_ctime:3,384,32;\ __unused3:5,416,32;__unused4:5,448,32;__unused5:5,480,32;; tm:T24=s36tm_sec:1,0,32;tm_min:1,32,32;\ tm_hour:1,64,32;tm_mday:1,96,32;tm_mon:1,128,32;\ tm_year:1,160,32;tm_wday:1,192,32;tm_yday:1,224,32;\ tm_isdst:1,256,32;; wchar_t:t3 mstats:T25=s20bytes_total:4,0,32;chunks_used:4,32,32;\ bytes_used:4,64,32;chunks_free:4,96,32;bytes_free:4,128,32;; div_t:T26=s8quot:1,0,32;rem:1,32,32;; div_t:t26 ldiv_t:T27=s8quot:3,0,32;rem:3,32,32;; ldiv_t:t27 __compar_fn_t:t28=*29=f1 SC:T30=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;script:17,96,32;next:31=*30,128,32;; SCTR:t30 SCTRP:t31 PW:T32=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;pw:17,96,32;next:33=*32,128,32;; PWTR:t32 PWTRP:t33 PH:T34=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;num:17,96,32;next:35=*34,128,32;; PHTR:t34 PHTRP:t35 BD:T36=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;baud:1,96,32;next:37=*36,128,32;; BDTR:t36 BDTRP:t37 DL:T38=s20mstr:17,0,32;mlen:1,32,32;\ pre:17,64,32;post:17,96,32;next:39=*38,128,32;; DLTR:t38 DLTRP:t39 CO:T40=s20mstr:17,0,32;mlen:1,32,32;\ cost:1,64,32;baud:1,96,32;next:41=*40,128,32;; COTR:t40 COTRP:t41 FN:T42=s12fname:17,0,32;private:1,32,32;\ next:43=*42,64,32;; FNLST:t42 FNLSTP:t43 ET:T44=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;etype:2,96,8;next:45=*44,128,32;; ETTR:t44 ETTRP:t45 CM:T46=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;next:47=*46,96,32;; CMTR:t46 CMTRP:t47 _oldnode:T48=s116number:1,0,32;net:1,32,32;\ cost:1,64,32;rate:1,96,32;name:49=ar1;0;19;2,128,160;\ phone:50=ar1;0;39;2,288,320;city:50,608,320;; _node:T51=s128net:6,0,16;number:6,16,16;\ cost:6,32,16;name:52=ar1;0;33;2,48,272;\ phone:50,320,320;city:53=ar1;0;29;2,640,240;\ password:54=ar1;0;7;2,880,64;realcost:6,944,16;\ hubnode:6,960,16;rate:11,976,8;modem:2,984,8;\ flags1:8,992,16;reserved:6,1008,16;; _ndi:T55=s8node:1,0,32;net:1,32,32;; netls:T56=s84netnum:1,0,32;netname:57=ar1;0;13;2,32,112;\ netcity:50,144,320;havehost:1,480,32;nethost:1,512,32;\ havegate:1,544,32;netgate:1,576,32;nodeptr:3,608,32;\ numnodes:1,640,32;; nodels:T58=s116nodenum:1,0,32;nodename:57,32,112;\ nodecity:50,144,320;nodephone:50,464,320;havehub:1,800,32;\ nodehub:1,832,32;nodecost:1,864,32;nodebaud:1,896,32;; nidxs:T59=s20idxnet:1,0,32;idxnode:1,32,32;\ netlptr:3,64,32;nodelptr:3,96,32;idxspace:3,128,32;; extrastuff:T60=s20password:54,0,64;flags1:4,64,32;\ extra:21,96,48;; qidx:T61=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;nodetype:2,96,8;; qdat:T62=s140nodetype:2,0,8;zone:1,32,32;\ net:1,64,32;node:1,96,32;namesize:2,128,8;\ name:49,136,160;citysize:2,296,8;city:50,304,320;\ phonesize:2,624,8;phone:50,632,320;passwordsize:2,952,8;\ password:54,960,64;flags:4,1024,32;baudrate:1,1056,32;\ cost:1,1088,32;; WBUFFER:T63=s12wbuff:17,0,32;wptr:17,32,32;\ wsize:4,64,32;; WBUFFER:t63 WBUFFPTR:t64=*63 direct:T65=s268d_ino:3,0,32;d_off:3,32,32;\ d_reclen:8,64,16;d_name:66=ar1;0;255;2,80,2048;; DIR:T67=s16dd_fd:1,0,32;dd_loc:1,32,32;\ dd_size:1,64,32;dd_buf:68=*65,96,32;; DIR:t67 find_t:T69=s256name:66,0,2048;; REV:G17 _REV cmdbaud:G1 _cmdbaud _main ___main __cerr_sbuf _fprintf ___ctype_tolower _strupr _strtol _printf _system _edit _country _fn_head _fn _nfile_name _ph_head _ph _bd_head _bd _dl_head _dl _co_head _co _et_head _et _parse_config _maxbaud _open_outfiles _out_type _myzone _process_file _nodelist_bbs _fclose _nodelist_fon _fidouser_1 _nodelist_dat _close _nodelist_sys _nodelist_idx _nodelist_ext _nodelist_prn _nodelist_txt _nodelist_dog _qnl_idx_bbs _qnl_dat_bbs _netlist_dog _seanet _write _seaidx _cmp _seacnt _qsort _unlink _open _index_dog _doreport _size_report _do_names main:F1 argc:p1 argv:p70=*17 buff1:49 buff2:49 s:r17 config_file:17 mylist:17 pvtlist:17 nodelist:r17 editnl:2 cl_nodelist:2 i:r1                               _nlist _fopen _exit _rdata _udata _version6 _new_node _memset _version5 _old_node _binkley _bt_node _sealist _seanetcnt /usr/include/stdlib.h _calloc parselst.c _seaptr _quickbbs _fidoprn _prn_pg_lines _fidotxt _txt_pg_lines open_outfiles:F15 i:6                                     _buf _fgets _prn_first_line _sprintf _txt_first_line _prn_pagenum _txt_pagenum _strcpy _likely ___ctype_b _comments __cout_sbuf _fputs _nnodes _nextfield _strcasecmp _nzones _usezone _nregions _spec_word _nnets _nhubs _npoints _fflush _strncasecmp _ndown _strncpy _nredirect _intl_post_dl _intl_pre_dl _intl_cost _nodash _undash _strchr _pw_head _pw _strstr _cm_head _cm _qbbsnode _qbbsidx _seanodecnt _seanode _header _how_likely ___ctype_toupper _strlwr process_file:F15 times:p1 n_num:1 n_cost:1 n_baud:1 node:1 addrs:71=ar1;0;4;1 this_file:72=ar1;0;63;2 def_phone:53 def_flags:53 def_cost:1 def_baud:1 cur_addr_lev:1 did_cost:1 i:6 n_out:6 did_phone:1 buff:66 f:73=*16 p:r17 p1:r17 p2:r17 dphone:1 b1:74=ar1;0;49;2 b2:75=ar1;0;49;2 b3:76=ar1;0;49;2 b4:77=ar1;0;49;2 b5:78=ar1;0;49;2 b6:79=ar1;0;49;2 b7:80=ar1;0;127;2 pn1:49 pn2:49 pn3:49 orig_phone:53 pvt:1 hold:1 skip:1 def:1 this_list:1 ntyp:2                     header:F15 which:p1 which:r1 new_node:G51 old_node:G48 seanet:G56 seanode:G58 bt_node:G60 seaidx:G81=*59 seaptr:G81 qbbsidx:G61 qbbsnode:G62 seanodecnt:G3 seacnt:G1 seanetcnt:G3 buf:G66 prn_first_line:G66 txt_first_line:G66 prn_pg_lines:G1 txt_pg_lines:G1 prn_pagenum:G1 txt_pagenum:G1 nodelist_bbs:S73 nodelist_fon:S73 fidouser_1:S73 nodelist_dat:S1 nodelist_idx:S1 nodelist_sys:S1 nodelist_prn:S73 nodelist_txt:S73 netlist_dog:S1 nodelist_dog:S1 index_dog:S1 nodelist_ext:S1 qnl_idx_bbs:S1 qnl_dat_bbs:S1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          parselist/data.c                                                                                       644      62      62         4571  5246664512  12546  0                                                                                                    ustar   louis                           other                                                                                                                                                                                                                  /*
                              Nodelist Parser

              This module was originally written by Bob Hartman
                       Sysop of FidoNet node 1:104/501

 This program source code is being released with the following provisions:

 1.  You are  free to make  changes to this source  code for use on your own
 machine,  however,  altered source files may not be distributed without the
 consent of Spark Software.

 2.  You may distribute "patches"  or  "diff" files for any changes that you
 have made, provided that the "patch" or "diff" files are also sent to Spark
 Software for inclusion in future releases of the entire package.   A "diff"
 file for the source archives may also contain a compiled version,  provided
 it is  clearly marked as not  being created  from the original source code.
 No other  executable  versions may be  distributed without  the  consent of
 Spark Software.

 3.  You are free to include portions of this source code in any program you
 develop, providing:  a) Credit is given to Spark Software for any code that
 may is used, and  b) The resulting program is free to anyone wanting to use
 it, including commercial and government users.

 4.  There is  NO  technical support  available for dealing with this source
 code, or the accompanying executable files.  This source  code  is provided
 as is, with no warranty expressed or implied (I hate legalease).   In other
 words, if you don't know what to do with it,  don't use it,  and if you are
 brave enough to use it, you're on your own.

*/

#include <stdio.h>
#include "types.h"

PWTRP pw_head = NULL;
PHTRP ph_head = NULL;
BDTRP bd_head = NULL;
DLTRP dl_head = NULL;
COTRP co_head = NULL;
ETTRP et_head = NULL;
CMTRP cm_head = NULL;
FNLST fn_head;
PWTRP pw;
PHTRP ph;
BDTRP bd;
DLTRP dl;
COTRP co;
ETTRP et;
CMTRP cm;
FNLSTP fn;
FNLSTP tfn;

char intl_pre_dl[30];
char intl_post_dl[30];
char t_str[128];
char country[10];
int intl_cost = 0;
int maxbaud = 9600;
int out_type = -1;
int rdata = 1;
int udata = 0;
int nlist = 1;
int doreport = 1;
int nodash = 0;
int comments = 0;
int version7 = 0;
int version6 = 0;
int version5 = 0;
int binkley = 0;
int myzone = -1;
int mynet;
int mynode;
int nzones;
int nregions;
int nnets;
int nhubs;
int ndown;
int nredirect;
int nnodes;
int npoints;
int likely;
int usezone;
int fidoprn;
int fidotxt;
int do_index;
int do_points;
int sealist = 0;
int quickbbs = 0;
char nl[1000];

                                                                                                                                       parselist/dirfind.c                                                                                    644      62      62         3714  5264157240  13245  0                                                                                                    ustar   louis                           other                                                                                                                                                                                                                  #include "dos.h"

char curr_filename[256], curr_pathname[256];
DIR *dirp=NULL;

#define FILENAMELEN 13
/* #define ffirst _dos_findfirst
#define fnext _dos_findnext */

void unixize(char *dos, char *un)
{
	char *s, *d, ch;

	s = dos;	/* source */
	d = un;		/* dest */
	while(*s) {
		ch = *s++;
		switch(ch) {
			case '\\':
				*d++ = '/';		/* first change all \ into / */
				break;
			case '?':
				*d++ = '.';		/* any char as ? */
				break;
			case '.':
				*d++ = '\\';	/* dot as \. */
				*d++ = '.';
				break; 
			case '*':
				*d++ = '.';		/* any seq of char as .* */
				*d++ = '*';
				break;
			default:
				*d++ = ch;
				break;
		}
	}
	*d++ = '$';	/* end of line marker */
	*d = '\0';
}

void splitpath(char *path, char *file, char *dir)
{
	char *pos;

	file[0] = '\0';
	dir[0] = '\0';

	pos = rindex(path, '/');
	if (pos == 0)
		{
		strcpy(file, path);
		}
	else {
		*pos = '\0';
		strcpy(dir, path);
		pos++;
		strcpy(file, pos);
	}
}

/* checkfile returns TRUE when filename is correct */
int checkfile(struct direct *dp)
{
	char name[20];
	int res;

#ifdef BSD
	re_comp(curr_filename);
#endif
	strcpy(name, dp->d_name);
#ifdef BSD
	res = re_exec(name);
#else
	res = !recmp(curr_filename, name);
#endif
	return res;
}

int ffirst(char *name, int plouf, struct find_t *fin)
{
	char un[256];
	struct direct *dp;
	unixize(name, un);
	splitpath(un, name, curr_pathname);
/*	unixize (un, curr_filename); */
	strcpy(curr_filename, un);

	if(dirp)
		closedir(dirp); /* cleanup for previous usage */

	dirp = opendir(curr_pathname);
	if (!dirp)
		return 0;
	for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp))
		if (checkfile(dp)) {
			strcpy (fin->name, dp->d_name);
			return 0;
		}
	closedir(dirp);
	dirp = NULL;
	return 1;
}

int fnext(struct find_t *fin)
{
	struct direct *dp;

	if(!dirp)
		return 0;

	for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp))
		if (checkfile(dp)) {
			strcpy (fin->name, dp->d_name);
			return 0;
		}
	closedir(dirp);
	dirp = NULL;
	return 1;
}
                                                    parselist/dos.h                                                                                        644      62      62           72  5246664514  12361  0                                                                                                    ustar   louis                           other                                                                                                                                                                                                                  #include <sys/dir.h>

struct find_t {
	char name[256];
};
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      parselist/edit.c                                                                                       644      62      62        25614  5263405046  12575  0                                                                                                    ustar   louis                           other                                                                                                                                                                                                                  #include    <malloc.h>
#include    <stdio.h>
#include    <ctype.h>
#include    <stdlib.h>
#include    <math.h>
#include    <string.h>
#include    "dos.h"
#include    "types.h"
#include    "externs.h"

#ifndef OS2
/* #define dir_findfirst(a,b,c) _dos_findfirst(a,b,c)
#define dir_findnext(a) _dos_findnext(a) */
#define _dos_findfirst(a,b,c) ffirst(a,b,c)
#define _dos_findnext(a) fnext(a)
#endif

#ifdef BSD
#define _A_NORMAL 0
#endif
/*
 *
 * -rev 04-16-87  (abbreviated)
 *  The CRC-16 routines used by XMODEM, YMODEM, and ZMODEM
 *  are also in this file, a fast table driven macro version
 */


/* crctab calculated by Mark G. Mendel, Network Systems Corporation */
static unsigned short crctab[256] = {
             0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,
             0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,
             0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,
             0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,
             0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,
             0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,
             0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,
             0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,
             0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,
             0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,
             0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,
             0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,
             0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,
             0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,
             0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,
             0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,
             0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,
             0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,
             0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,
             0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,
             0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,
             0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,
             0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,
             0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,
             0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,
             0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,
             0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,
             0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,
             0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,
             0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,
             0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,
             0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0
};

/*
 * updcrc macro derived from article Copyright (C) 1986 Stephen Satchell.
 *  NOTE: First srgument must be in range 0 to 255.
 *        Second argument is referenced twice.
 *
 * Programmers may incorporate any or all code into their programs,
 * giving proper credit within the source. Publication of the
 * source routines is permitted so long as proper credit is given
 * to Stephen Satchell, Satchell Evaluations and Chuck Forsberg,
 * Omen Technology.
 */

#define updcrc(cp, crc) ( crctab[((crc >> 8) & 255) ^ cp] ^ (crc << 8))

char            old_name[13] = "NODELIST.*";
char            new_name[13] = "NODELIST.";
char            diff_name[13] = "NODEDIFF.*";
FILE           *old_file, *diff_file, *new_file;
unsigned        official_crc = 0;
unsigned        calc_crc = 0;   /* Until I find out how to do the CRC */

unsigned crcstr (char *buf,unsigned crc)
{
   char           *p;

   p = buf;
   fix_up (p);

   while (*p)
      {
      crc = updcrc (*p++, crc);
      }

   return (crc);
}

void fix_up (char *buf)
{
   char           *p;

   p = buf + strlen (buf) - 1;
   if (*p == '\n')
      --p;
   if (*p == '\r')
      --p;
   while (*p == ' ')
      --p;
   strcpy (++p, "\r\n");

   /* Now get rid of rotten chars */
   p = buf;
   while (*p)
      {
      if ((unsigned char) *p >= 128)
         *p = '?';

      ++p;
      }
}

/* Add NODEDIFF to NODELIST */
void edit ()
{
   int             results;

   get_old_name (old_name);
   if (!get_diff_name (diff_name))
   {
      results = open_infiles (old_name, diff_name);
   }
   else
   {
      results = 1;
   }
   if (results == 0)
      add_files ();
   close_files ();
   return;
}

void add_files ()                    /* Actually put the new lines in here */
{
   char            old_line[256];
   char            diff_line[256];
   char           *pnt_line;
   char            first_char;
   char           *diff_result;
   char           *old_result;
   char           *ptr;
   int             i, j, k;
   int             first_diff;

   first_diff = 1;

   pnt_line = (char *) _nmalloc (256);

   while ((diff_result = fgets (diff_line, 256, diff_file)) != NULL)
   {
      strcpy (pnt_line, diff_line);
      first_char = diff_line[0];

      switch (first_char)
      {
         case ';':
            continue;

         case 'D':
            j = atoi (pnt_line + 1);
            for (i = 0; i < j; i++)
            {
               old_result = fgets (old_line, 256, old_file);
            }
            break;

         case 'A':
            j = atoi (pnt_line + 1);
            for (i = 0; i < j; i++)
            {
               diff_result = fgets (diff_line, 256, diff_file);
               if (!first_diff)
                  calc_crc = crcstr (diff_line, calc_crc);
               else
               {
                  first_diff = 0;
                  ptr = strrchr (diff_line, ':');
                  if (ptr != NULL)
                  {
                     ++ptr;
                     official_crc = atoi (ptr);
                  }
               }
               k = fputs (diff_line, new_file);
            }
            break;

         case 'C':
            j = atoi (pnt_line + 1);
            for (i = 0; i < j; i++)
            {
               diff_result = fgets (old_line, 256, old_file);
               calc_crc = crcstr (old_line, calc_crc);
               k = fputs (old_line, new_file);
            }
            break;

         default:
            printf ("\n\tI don't understand this line.\n");
            break;
      }
   }

   if (calc_crc != official_crc)
   {
      fputs (";A This nodelist does not have the proper CRC!\r\n", new_file);
      printf ("This nodelist does not have the proper CRC %u/%u!\n",
         calc_crc, official_crc);
      printf ("Please check out the problem and correct it.\n\n");
   }

   fprintf (new_file, "%c", '\032');

   return;
}

void close_files ()
{
   if (old_file != NULL)
      fclose (old_file);
   if (new_file != NULL)
      fclose (new_file);
   if (diff_file != NULL)
      fclose (diff_file);
   return;
}

int open_infiles (char *nodelist, char *difflist)
{
   char            first_line[256], *result;
   char            temp[11];
   int             i, j=0;
   struct find_t   c_file;
printf("newname = %s\n", new_name);
#ifndef OS2
   i = _dos_findfirst (new_name, _A_NORMAL, &c_file);
#else
   i = dir_findfirst (new_name, _A_NORMAL, &c_file);
#endif

   if (i == 0)
   {
      printf ("%s already exists.\n", new_name);
      return (1);
   }

   if (!(old_file = fopen (nodelist, "rb")))
   {
      printf ("Error opening old nodelist file!\n");
      return (1);
   }

   if (!(diff_file = fopen (difflist, "rb")))
   {
      printf ("Error opening nodediff file!\n");
      return (1);
   }

   result = fgets (first_line, 256, diff_file);

   for (i = 0; i < 80; i++)
      if (first_line[i] == ':')
         j = i;

   for (i = 0; i < 10; i++)
      temp[i] = first_line[i + j + 1];

   official_crc = atoi (temp);
   j -= 5;

   for (i = 0; i < 5; i++)
      temp[i] = first_line[i + j];

   temp[5] = '\0';
   j = atoi (temp);
   result = strrchr (nodelist, '.');
   result++;
   i = atoi (result);
   if (i != j)
   {
      printf ("NodeDiff doesn't match to existing Nodelist file! Skipping...\n");
      return (1);
   }
   new_file = fopen (new_name, "wb");
   if (new_file == NULL)
   {
      printf ("Can't open new nodelist file!\n");
      return (1);
   }
   printf ("Applying '%s' to '%s'\n", difflist, nodelist);
   return (0);
}

void get_old_name (char *temp_name)
{
   char           *temp;
   int             i=0, j, k;
   struct find_t   c_file;

   temp = (char *) _nmalloc (20);

#ifndef OS2
   j = _dos_findfirst (temp_name, _A_NORMAL, &c_file);
#else
   j = dir_findfirst (temp_name, _A_NORMAL, &c_file);
#endif

   while (j == 0)
   {
      temp = strrchr (c_file.name, '.');
      temp++;
      if (isdigit (*temp) && isdigit (*(temp+1)) && isdigit (*(temp+2)))
      {
         i = atoi (temp);
         strcpy (old_name, c_file.name);
         break;
      }
      else
      {
#ifndef OS2
         j = _dos_findnext (&c_file);
#else
         j = dir_findnext (&c_file);
#endif
      }
   }

   while (j == 0)
   {
#ifndef OS2
      j = _dos_findnext (&c_file);
#else
      j = dir_findnext (&c_file);
#endif
      temp = strrchr (c_file.name, '.');
      temp++;
      if (isdigit (*temp) && isdigit (*(temp+1)) && isdigit (*(temp+2)))
      {
         k = atoi (temp);

         if ((i < k && (k - i) < 300) ||
             (k < i && (k - i) > 300))
         {
            i = k;
            strcpy (old_name, c_file.name);
         }
      }
   }
   return;
}

int get_diff_name (char *temp_name)
{
   char           *temp;
   int             i=0, j, k;
   struct find_t   c_file;

   temp = (char *) _nmalloc (80);
#ifndef OS2
   j = _dos_findfirst (temp_name, _A_NORMAL, &c_file);
#else
   j = dir_findfirst (temp_name, _A_NORMAL, &c_file);
#endif
   if (j)
   {
      return (1);
   }

   while (j == 0)
   {
      temp = strrchr (c_file.name, '.');
      temp++;
      if (isdigit (*temp) && isdigit (*(temp+1)) && isdigit (*(temp+2)))
      {
         i = atoi (temp);
         strcpy (diff_name, c_file.name);
         break;
      }
      else
      {
#ifndef OS2
         j = _dos_findnext (&c_file);
#else
         j = dir_findnext (&c_file);
#endif
      }
   }

   if (j != 0)
      return (1);

   while (j == 0)
   {
#ifndef OS2
      j = _dos_findnext (&c_file);
#else
      j = dir_findnext (&c_file);
#endif
      temp = strrchr (c_file.name, '.');
      temp++;
      if (isdigit (*temp) && isdigit (*(temp+1)) && isdigit (*(temp+2)))
      {
         k = atoi (temp);
         if ((i < k && (k - i) < 300) ||
             (k < i && (k - i) > 300))
         {
            i = k;
            strcpy (diff_name, c_file.name);
         }
      }
   }

   temp = strrchr (diff_name, '.');
   temp++;
   strcat (new_name, temp);
   return (0);
}

                                                                                                                    parselist/externs.h                                                                                    644      62      62        11327  5246664512  13347  0                                                                                                    ustar   louis                           other                                                                                                                                                                                                                  /*
                              Nodelist Parser

              This module was originally written by Bob Hartman
                       Sysop of FidoNet node 1:104/501

 This program source code is being released with the following provisions:

 1.  You are  free to make  changes to this source  code for use on your own
 machine,  however,  altered source files may not be distributed without the
 consent of Spark Software.

 2.  You may distribute "patches"  or  "diff" files for any changes that you
 have made, provided that the "patch" or "diff" files are also sent to Spark
 Software for inclusion in future releases of the entire package.   A "diff"
 file for the source archives may also contain a compiled version,  provided
 it is  clearly marked as not  being created  from the original source code.
 No other  executable  versions may be  distributed without  the  consent of
 Spark Software.

 3.  You are free to include portions of this source code in any program you
 develop, providing:  a) Credit is given to Spark Software for any code that
 may is used, and  b) The resulting program is free to anyone wanting to use
 it, including commercial and government users.

 4.  There is  NO  technical support  available for dealing with this source
 code, or the accompanying executable files.  This source  code  is provided
 as is, with no warranty expressed or implied (I hate legalease).   In other
 words, if you don't know what to do with it,  don't use it,  and if you are
 brave enough to use it, you're on your own.

*/

extern PWTRP pw_head;
extern PHTRP ph_head;
extern BDTRP bd_head;
extern DLTRP dl_head;
extern COTRP co_head;
extern ETTRP et_head;
extern CMTRP cm_head;
extern FNLST fn_head;
extern PWTRP pw;
extern PHTRP ph;
extern BDTRP bd;
extern DLTRP dl;
extern COTRP co;
extern ETTRP et;
extern CMTRP cm;
extern FNLSTP fn;

extern char intl_pre_dl[];
extern char intl_post_dl[];
extern char country[];
extern char t_str[];
extern int intl_cost;
extern int maxbaud;
extern int out_type;
extern int rdata;
extern int udata;
extern int nlist;
extern int doreport;
extern int nodash;
extern int comments;
extern int version7;
extern int version6;
extern int version5;
extern int myzone;
extern int mynet;
extern int mynode;
extern int nzones;
extern int nregions;
extern int nnets;
extern int nhubs;
extern int ndown;
extern int nredirect;
extern int nnodes;
extern int npoints;
extern int likely;
extern int usezone;
extern int fidoprn;
extern int fidotxt;
extern int do_index;
extern int do_points;
extern int sealist;
extern int binkley;
extern int quickbbs;
extern char nl[1000];

extern    char      *mymalloc(unsigned int s);
extern    char      *nextfield(char *p,char *s);
extern    void      add_files(void );
extern    void      close_files(void );
extern    int       cmp(struct nidxs *a,struct nidxs *b);
extern unsigned int crcstr(char *buf,unsigned int crc);
extern    int       dir_findfirst(char *filename,int attribute,struct find_t *dta);
extern    int       dir_findnext(struct find_t *dta);
extern    void      do_names(void );
extern    void      edit(void );
#ifndef OS2
extern    int       fast_close(int f);
extern    int       OFAST_CLOSE(int f);
extern    int       fast_open(char *name,int mode,int pmode);
extern    int       OFAST_OPEN(char *name,int mode);
extern    int       fast_read(int f,char *st,unsigned int l);
extern    int       OFAST_READ(int f,char *st,unsigned int l);
extern    int       O1FAST_READ(int f,char far *st,unsigned int l);
extern    int       fast_write(int f,char *st,unsigned int l);
extern    int       OFAST_WRITE(int f,char *st,unsigned int l);
extern    int       O1FAST_WRITE(int f,char far *st,unsigned int l);
extern    char far  *_FMALLOC1(unsigned int l);
extern    void      _FFREE1(char far *st);
#endif
extern    char      filedir(char *name,int times,char *ret_str,int mode);
extern    void      fix_up(char *buf);
extern    void      get_addr(char *s,int *z,int *net,int *node);
extern    int       get_diff_name(char *temp_name);
extern    void      get_nl_list(void );
extern    void      get_old_name(char *temp_name);
extern    void      header(int which);
extern    void      how_likely(char *p,int dphone,int *addrs,int node,int n_baud);
extern    int       main(int argc,char * *argv);
extern    void      MEM1CPY(char far *dest, char *src, int len);
extern    void      MEM2CPY(char *dest, char far *src, int len);
extern    void      nfile_name(char * *fn);
extern    int       open_infiles(char *nodelist,char *difflist);
extern    void      open_outfiles(void );
extern    void      parse_config(char *filename,char *mylist,char *pvtlist);
extern    void      process_file(int times);
extern    void      size_report(void );
extern    void      spec_word(char *b1);
extern    void      undash(char *str);

                                                                                                                                                                                                                                                                                                         parselist/funcs.h                                                                                      644      62      62         5211  5246664512  12750  0                                                                                                    ustar   louis                           other                                                                                                                                                                                                                  /*
                       Message Base Reply Chain Linker

              This module was originally written by Bob Hartman
                       Sysop of FidoNet node 1:104/501

 This program source code is being released with the following provisions:

 1.  You are  free to make  changes to this source  code for use on your own
 machine,  however,  altered source files may not be distributed without the
 consent of Spark Software.

 2.  You may distribute "patches"  or  "diff" files for any changes that you
 have made, provided that the "patch" or "diff" files are also sent to Spark
 Software for inclusion in future releases of the entire package.   A "diff"
 file for the source archives may also contain a compiled version,  provided
 it is  clearly marked as not  being created  from the original source code.
 No other  executable  versions may be  distributed without  the  consent of
 Spark Software.

 3.  You are free to include portions of this source code in any program you
 develop, providing:  a) Credit is given to Spark Software for any code that
 may is used, and  b) The resulting program is free to anyone wanting to use
 it, including commercial and government users.

 4.  There is  NO  technical support  available for dealing with this source
 code, or the accompanying executable files.  This source  code  is provided
 as is, with no warranty expressed or implied (I hate legalease).   In other
 words, if you don't know what to do with it,  don't use it,  and if you are
 brave enough to use it, you're on your own.

*/

extern  int get_word(char * *from,char *new);
extern  int compile_areas(char *fname);
extern  int get_fido_sys(char *s,int q);
extern void main(int argc,char * *argv);
extern  unsigned int calcrc(char *ptr);
extern  int compare(struct msgtyp *arg1,struct msgtyp *arg2);
extern void update(void);
extern void read_msg_data(void );
extern void fancy_str(char *value);
extern  int get_system(char *where,SYS *ret_system);
extern void relink(void );
extern  int go_directory(char *dir,char *save);
extern void msglink_usage(void );
extern  unsigned int xcrc(unsigned int crc, unsigned char r);
extern  int filedir(char *name,int times,char *ret_str,int mode);
#ifndef OS_2
extern int fast_open(char *path, int oflag);
extern int fast_read(int handle, char *buffer, unsigned int count);
extern int fast_write(int handle, char *buffer, unsigned int count);
extern long fast_lseek(int handle, long offset, int origin);
extern int fast_close(int handle);
#else
extern long filedir1(char *name,int times,char *ret_str);
extern  int dir_findfirst(char *filename,int attribute,struct find_t *dta);
extern  int dir_findnext(struct find_t *dta);
#endif

                                                                                                                                                                                                                                                                                                                                                                                       parselist/edit.o                                                                                       644      62      62        34040  5263405067  12605  0                                                                                                    ustar   louis                           other                                                                                                                                                                                                                    	  0                  UVSu]S;   ; t(%   1E	  1C; uډe[^
   UWSU0׹ЍD8
uH8uH8 t@fG   fI   XЀ8 t8v ?@8 ue[_   Uh  #  h  V  uh  h  P     u     Ð
	I don't understand this line.
 ;A This nodelist does not have the proper CRC!
 This nodelist does not have the proper CRC %u/%u!
 Please check out the problem and correct it.

 %c  U  WVSǅ   h   (  5    h   W  W <C   <;t<AtMT  <DL  j
j @P19}5    h   C9|qj
j @Pk19P5    h   WK u5  W3  -ǅ    j:Wt@j
j P  5    WC9|j
j @P195    h   5    5    }C9|dh   fR  9  t95    h!  >5  5  hR  %h  jh  5    [^_U=     t5    =     t5    =     t5    Ðnewname = %s
 %s already exists.
 rb Error opening old nodelist file!
 Error opening nodediff file!
 NodeDiff doesn't match to existing Nodelist file! Skipping...
 wb Can't open new nodelist file!
 Applying '%s' to '%s'
    U  WVSu}1h  hP  Pj h  uh  h^  H  hr  Vm    uhu     hr  WI    uh     5    h    P1Ҁ* :uBO~1ҍ*B	~j
j P  1ҍ *B~ƅ j
j Pj.V@j
j P{9t
h  4h  h  Y    tVWh  A1h  2   [^_  U   WVS]1j Pj Sǅ    j.SB    A$t6BA$t+BA$t j
j RSh  Sǅt    Sfj.SYB    A$tQBA$tFBA$t;j
j R#9}	)=+  ~9})=,  ~Sh  t[^_   U   WVS]1jP Pj Sƅt-   $  j
j RSh  Pj. SrB    A$tBA$tBA$u P:ƅtu S j.SB    A$tWBA$tLBA$tAj
j R9}	)=+  ~9}!)=,  ~׍ Ph  rj.h  BRh  1[^_  !B c0@P`p)Jk1s2R"RBrb9{ZӜb$C4 dtDTjK(	ōS6r&0vfVF[z8׼HXhx@a(#8َHi
+ZJzjqP
3:*˿yX;l|L\",<`A*hI~n^N>2.Qp:Yxʱ-No 0 P%@Fpg`ڳ=^"25BRwbVr˥nO,4$ftGd$TDۧ_~<&6WfvvF4VLm/ș鉊DXeHx'h8(}\?؛uJTZ7jz
*:.lMͪɍ&|ld\EL<,>]|ߛُn6~UNt^.>NODELIST.*   NODELIST.    NODEDIFF.*            {	   v	    j	    e	    S	    N	    	      o       t   t   o     v    q    f    F  + 4                  o       t v  t j    e    Z    3  o $      +                         0                 s    f    /    '                      0               0     }   x    s    e  + `    O   J    E    I   D    ;    2   -    $                                                                               t    n    [    R    B    -                                             r    b    Q                                             ~     +                  d       *   d       1          S          e                                                                     @         ]         y                                                                                 X         b                                    ,         5         [         e                                                                                                                                       (         1         <         G         P         Z         e         o         w                                                                                 @         q                                                      >         G         Q         u                                             	                           @         o         x                                                               @         I         S         }                                                      	         	         0	         Q	         Z	         d	         	         	         	          
         I
         w
         
         
         
         !         [                                             L                                             *         P         o                                    3         k         |                                      &   	       	                             $       .          <       G          W       e          q       {             D W         D X        D Z        D [         L       D ]        D _        D ` 9       D b >       D c @     $                         @        @                   @       D f L       D g T       D i T       D j g       D k l       D l m       D o t       D p z       D s        D t        D v        D w        D y        D z        D {      $   L             @        @            T                       D         D         D                D                 D          0      D         D         D         D                D                D       $      (  @       3        4            D        D        D        D    5             D        D        D    K             D    S             D    Z        e             D    l             D        D  %      D  D  t             D  Z      D  `  |            D  y      D  y      D  ~      D        D        D        D        D        D        D                 D        D        D        D                         D        D        D        D         D  6      D  @      D  Y      D  r      D        D        D        D                 D        D        D        D        D        D                 D      $                        @         @         @       
  @        @           !       "       #       $           D        D        D    %             D  "      D  +      D  9      D  B      D  M  -  $         D  0      D  B      D  B      D  D      D  V  =             D  n      D  r      D        D   E             D       D       D 	      D       D       D       D       D       D       D       D       D       D       D       D 3      D 6      D @      D M      D S      D Z      D  o      D !z      D "{      D #      D %      D &      D (      D )      D +      D .      D /      D -      D ,      D 0  L  $   0  \        i        v  @        @              @              @        @                B             D 3      D 4      D 5      D 8               D        D        D        D                 D ;      D @      D B       D C-      D D.               D FT      D Gc      D Hq      D Mt               D Q      D R      D T      D W      D [      D \      D ]      D _      D a      D d      D e       D h      D j    $                @      .  @      7  @      <  @      A  @      F      P       Q       R       S     t  T       U       V       W           D m       D n/      D o/      D r1  X             D  1      D  1      D  1      D  ;  n             D t;      D xO      D zS      D `      D o      D }      D       D       D       D       D       D       D       D       D       D       D       D 	      D (	      D D	      D F	      D Z	      D b	      D s	      D t	  u             D 	      D 	  }  $                @        @        @        @        @                 /       1       ;                            Z	       	                                   gcc2_compiled. /home/louis/parselist/ edit.c int:t1=r1;-2147483648;2147483647; char:t2=r2;0;127; long int:t3=r1;-2147483648;2147483647; unsigned int:t4=r1;0;-1; long unsigned int:t5=r1;0;-1; short int:t6=r1;-32768;32767; long long int:t7=r1;0;-1; short unsigned int:t8=r1;0;65535; long long unsigned int:t9=r1;0;-1; signed char:t10=r1;-128;127; unsigned char:t11=r1;0;255; float:t12=r1;4;0; double:t13=r1;8;0; long double:t14=r1;8;0; void:t15=15 ptrdiff_t:t1 size_t:t4 wchar_t:t3 mstats:T16=s20bytes_total:4,0,32;chunks_used:4,32,32;\ bytes_used:4,64,32;chunks_free:4,96,32;bytes_free:4,128,32;; fpos_t:t3 __FILE:T17=s40_flags:1,0,32;_gptr:18=*2,32,32;\ _egptr:18,64,32;_eback:18,96,32;_pbase:18,128,32;\ _pptr:18,160,32;_epptr:18,192,32;_base:18,224,32;\ _ebuf:18,256,32;_chain:19=*20=xsstreambuf:,288,32;; FILE:t17 div_t:T21=s8quot:1,0,32;rem:1,32,32;; div_t:t21 ldiv_t:T22=s8quot:3,0,32;rem:3,32,32;; ldiv_t:t22 __compar_fn_t:t23=*24=f1 ssize_t:t1 time_t:t3 clock_t:t3 pid_t:t1 uid_t:t8 gid_t:t8 dev_t:t8 ino_t:t5 mode_t:t8 umode_t:t8 nlink_t:t8 daddr_t:t1 off_t:t3 u_char:t11 u_short:t8 u_int:t4 u_long:t5 unchar:t11 ushort:t8 uint:t4 ulong:t5 caddr_t:t18 cc_t:t11 speed_t:t4 tcflag_t:t5 fd_set:t5 ustat:T25=s20f_tfree:1,0,32;f_tinode:5,32,32;\ f_fname:26=ar1;0;5;2,64,48;f_fpack:26,112,48;; direct:T27=s268d_ino:3,0,32;d_off:3,32,32;\ d_reclen:8,64,16;d_name:28=ar1;0;255;2,80,2048;; DIR:T29=s16dd_fd:1,0,32;dd_loc:1,32,32;\ dd_size:1,64,32;dd_buf:30=*27,96,32;; DIR:t29 find_t:T31=s256name:28,0,2048;; SC:T32=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;script:18,96,32;next:33=*32,128,32;; SCTR:t32 SCTRP:t33 PW:T34=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;pw:18,96,32;next:35=*34,128,32;; PWTR:t34 PWTRP:t35 PH:T36=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;num:18,96,32;next:37=*36,128,32;; PHTR:t36 PHTRP:t37 BD:T38=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;baud:1,96,32;next:39=*38,128,32;; BDTR:t38 BDTRP:t39 DL:T40=s20mstr:18,0,32;mlen:1,32,32;\ pre:18,64,32;post:18,96,32;next:41=*40,128,32;; DLTR:t40 DLTRP:t41 CO:T42=s20mstr:18,0,32;mlen:1,32,32;\ cost:1,64,32;baud:1,96,32;next:43=*42,128,32;; COTR:t42 COTRP:t43 FN:T44=s12fname:18,0,32;private:1,32,32;\ next:45=*44,64,32;; FNLST:t44 FNLSTP:t45 ET:T46=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;etype:2,96,8;next:47=*46,128,32;; ETTR:t46 ETTRP:t47 CM:T48=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;next:49=*48,96,32;; CMTR:t48 CMTRP:t49 _oldnode:T50=s116number:1,0,32;net:1,32,32;\ cost:1,64,32;rate:1,96,32;name:51=ar1;0;19;2,128,160;\ phone:52=ar1;0;39;2,288,320;city:52,608,320;; _node:T53=s128net:6,0,16;number:6,16,16;\ cost:6,32,16;name:54=ar1;0;33;2,48,272;\ phone:52,320,320;city:55=ar1;0;29;2,640,240;\ password:56=ar1;0;7;2,880,64;realcost:6,944,16;\ hubnode:6,960,16;rate:11,976,8;modem:2,984,8;\ flags1:8,992,16;reserved:6,1008,16;; _ndi:T57=s8node:1,0,32;net:1,32,32;; netls:T58=s84netnum:1,0,32;netname:59=ar1;0;13;2,32,112;\ netcity:52,144,320;havehost:1,480,32;nethost:1,512,32;\ havegate:1,544,32;netgate:1,576,32;nodeptr:3,608,32;\ numnodes:1,640,32;; nodels:T60=s116nodenum:1,0,32;nodename:59,32,112;\ nodecity:52,144,320;nodephone:52,464,320;havehub:1,800,32;\ nodehub:1,832,32;nodecost:1,864,32;nodebaud:1,896,32;; nidxs:T61=s20idxnet:1,0,32;idxnode:1,32,32;\ netlptr:3,64,32;nodelptr:3,96,32;idxspace:3,128,32;; extrastuff:T62=s20password:56,0,64;flags1:4,64,32;\ extra:26,96,48;; qidx:T63=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;nodetype:2,96,8;; qdat:T64=s140nodetype:2,0,8;zone:1,32,32;\ net:1,64,32;node:1,96,32;namesize:2,128,8;\ name:51,136,160;citysize:2,296,8;city:52,304,320;\ phonesize:2,624,8;phone:52,632,320;passwordsize:2,952,8;\ password:56,960,64;flags:4,1024,32;baudrate:1,1056,32;\ cost:1,1088,32;; WBUFFER:T65=s12wbuff:18,0,32;wptr:18,32,32;\ wsize:4,64,32;; WBUFFER:t65 WBUFFPTR:t66=*65 crctab:S67=ar1;0;255;8 _crctab old_name:G68=ar1;0;12;2 _old_name new_name:G68 _new_name diff_name:G68 _diff_name official_crc:G4 _official_crc calc_crc:G4 _calc_crc _crcstr _fix_up crcstr:F4 buf:p18 crc:p4 crc:r4 p:r18   fix_up:F15 buf:p18 buf:r18 p:r18   _edit _get_old_name _get_diff_name _open_infiles _add_files _close_files edit:F15 results:r1   /usr/include/stdlib.h _malloc edit.c _diff_file _fgets _strcpy _strtol _old_file _strrchr _new_file _fputs _printf _fprintf add_files:F15 old_line:28 diff_line:28 pnt_line:18 first_char:r2 diff_result:r18 ptr:r18 i:r1 j:r1 first_diff:1     _fclose close_files:F15 _ffirst _fopen open_infiles:F1 nodelist:p18 difflist:p18 nodelist:r18 difflist:r18 first_line:28 result:r18 temp:69=ar1;0;10;2 i:r1 j:r1 c_file:31   /usr/include/stdlib.h edit.c ___ctype_b _fnext get_old_name:F15 temp_name:p18 temp_name:r18 temp:r18 i:r1 j:r1 k:r1 c_file:31         /usr/include/stdlib.h edit.c _strcat get_diff_name:F1 temp_name:p18 temp_name:r18 temp:r18 i:r1 j:r1 k:r1 c_file:31         old_file:G70=*17 diff_file:G70 new_file:G70                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 parselist/misc.c                                                                                       644      62      62        12616  5263404507  12602  0                                                                                                    ustar   louis                           other                                                                                                                                                                                                                  /*
                              Nodelist Parser

              This module was originally written by Bob Hartman
                       Sysop of FidoNet node 1:104/501

 This program source code is being released with the following provisions:

 1.  You are  free to make  changes to this source  code for use on your own
 machine,  however,  altered source files may not be distributed without the
 consent of Spark Software.

 2.  You may distribute "patches"  or  "diff" files for any changes that you
 have made, provided that the "patch" or "diff" files are also sent to Spark
 Software for inclusion in future releases of the entire package.   A "diff"
 file for the source archives may also contain a compiled version,  provided
 it is  clearly marked as not  being created  from the original source code.
 No other  executable  versions may be  distributed without  the  consent of
 Spark Software.

 3.  You are free to include portions of this source code in any program you
 develop, providing:  a) Credit is given to Spark Software for any code that
 may is used, and  b) The resulting program is free to anyone wanting to use
 it, including commercial and government users.

 4.  There is  NO  technical support  available for dealing with this source
 code, or the accompanying executable files.  This source  code  is provided
 as is, with no warranty expressed or implied (I hate legalease).   In other
 words, if you don't know what to do with it,  don't use it,  and if you are
 brave enough to use it, you're on your own.

*/

#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include "dos.h"
#include <time.h>
#include <stdlib.h>

#include "types.h"
#include "externs.h"

#ifndef OS2
/* #define dir_findfirst(a,b,c) _dos_findfirst(a,b,c)
#define dir_findnext(a) _dos_findnext(a) */
#define _dos_findfirst(a,b,c) ffirst(a,b,c)
#define _dos_findnext(a) fnext(a)
#endif

int cmp (struct nidxs *a,struct nidxs *b)
{
   if (a->idxnet < b->idxnet)
      {
      return (-1);
      }
   else if (a->idxnet > b->idxnet)
      {
      return (1);
      }
   else
      {
      return (a->idxnode - b->idxnode);
      }
}

/* Returns the next field that ends with a comma or newline */
char *nextfield (char *p,char *s)
{
   while ((*p) && (*p != ',') && (*p != '\n'))
      {
      *s++ = *p++;
      }
   *s = '\0';
   return (++p);
}

/* Converts a "special" word to upper case and appends a space */
void spec_word (char *b1)
{
   char *p1;

   strupr (b1);
   p1 = b1 + strlen (b1);
   *p1++ = ' ';
   *p1 = '\0';
}

/* Uses malloc() to get memory, but exits on allocation error */
char *mymalloc(unsigned int s)
{
   char *p;
  /*  extern char *malloc(); */

   p = malloc (s);
   if (p == NULL)
      {
      printf ("\n\nNot Enough Memory - Exiting\n\n");
      exit (1);
      }
   return (p);
}

/* Gets the name of the nodelist that should be processed this run */
void nfile_name (char **fn)
{
   int i;
   long t;
   struct tm *tm1, *localtime();

   /* Get todays info */
   time (&t);
   tm1 = localtime (&t);

   /* find all NODELIST.* files and if end in number, put in array */
   get_nl_list ();

   for (i = tm1->tm_yday + 1; i >= 0; i--)
      {
      if (nl[i])
         {
         *fn = mymalloc (13);
         sprintf (*fn, "NODELIST.%03d", i);
         return;
         }
      }

   /* If no nodelist files, try last years */
   for (i = 366; i >= tm1->tm_yday; i--)
      {
      if (nl[i])
         {
         *fn = mymalloc (13);
         sprintf (*fn, "NODELIST.%03d", i);
         return;
         }
      }

   /* If still nothing, try the big numbers */
   for (i = 999; i >= 367; i--)
      {
      if (nl[i])
         {
         *fn = mymalloc (13);
         sprintf (*fn, "NODELIST.%03d", i);
         return;
         }
      }

   printf ("\n\nCannot find a valid NODELIST.xxx file - Exiting\n\n");
   exit (1);
}

/* Remove dashes from the string */
void undash (char *str)
{
   char *p, *p1;

   p = str;
   p1 = str;
   while (*p)
      {
      if (*p != '-')
         *p1++ = *p;
      ++p;
      }
   *p1 = '\0';
}

void
get_nl_list ()
{
   char str[13];
   char init_name[13];
   int i, d;

   /* Start out by initializing what we are looking for */
   strcpy (init_name, "NODELIST.*");
   d = 0;

   /* Now loop through getting each file name that matches,
      and copying the number into the array */
   do
      {
      (void) filedir (init_name, d, str, 0);
      i = 0;
      d = 1;
      sscanf (str, "NODELIST.%d", &i);

      if ((i > 0) &&
          (isdigit (str[9])) &&
          (isdigit (str[10])) &&
          (isdigit (str[11])))
         {
         nl[i] = 1;
         }
      }
   while (str[0] != '\0');
}

struct find_t sbuf;

char filedir (char *name,int times,char *ret_str,int mode)
{
    if (times == 0)
        {
#ifndef OS2
        if (_dos_findfirst (name, mode, &sbuf))
#else
        if (dir_findfirst (name, mode, &sbuf))
#endif
            sbuf.name[0] = '\0';
        strcpy (ret_str, sbuf.name);
        }
    else
        {
#ifndef OS2
        if (_dos_findnext (&sbuf))
#else
        if (dir_findnext (&sbuf))
#endif
            sbuf.name[0] = '\0';
        strcpy (ret_str, sbuf.name);
        }

    return 0;
    }

void get_addr (char *s,int *z,int *net,int *node)
{
   if (sscanf (s, "%d:%d/%d", z, net, node) != 3)
      {
      *z = myzone;
      if (sscanf (s, "%d/%d", net, node) != 2)
         {
         *node = *net;
         *net = mynet;
         }
      }
}

                                                                                                                  parselist/names.c                                                                                      644      62      62        10502  5246664514  12751  0                                                                                                    ustar   louis                           other                                                                                                                                                                                                                  /*
                              Nodelist Parser

              This module was originally written by Bob Hartman
                       Sysop of FidoNet node 1:104/501

 This program source code is being released with the following provisions:

 1.  You are  free to make  changes to this source  code for use on your own
 machine,  however,  altered source files may not be distributed without the
 consent of Spark Software.

 2.  You may distribute "patches"  or  "diff" files for any changes that you
 have made, provided that the "patch" or "diff" files are also sent to Spark
 Software for inclusion in future releases of the entire package.   A "diff"
 file for the source archives may also contain a compiled version,  provided
 it is  clearly marked as not  being created  from the original source code.
 No other  executable  versions may be  distributed without  the  consent of
 Spark Software.

 3.  You are free to include portions of this source code in any program you
 develop, providing:  a) Credit is given to Spark Software for any code that
 may is used, and  b) The resulting program is free to anyone wanting to use
 it, including commercial and government users.

 4.  There is  NO  technical support  available for dealing with this source
 code, or the accompanying executable files.  This source  code  is provided
 as is, with no warranty expressed or implied (I hate legalease).   In other
 words, if you don't know what to do with it,  don't use it,  and if you are
 brave enough to use it, you're on your own.

*/

#include <stdio.h>
#include <ctype.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>

#include "types.h"
#include "externs.h"

void
do_names ()
{
   FILE *o1, *o2;
   char b1[50];

   printf ("Sorting SysOp Name Data\n\n");
#ifndef OS2
   (void) system ("qsort Fidouser.$$1 /+1:41 /-61:5 /-41:13 /+55:6");
#else
   (void) system ("QSort Fidouser.$$1 /+1:41 /-61:5 /-41:13 /+55:6");
#endif
   if ((o1 = fopen ("FIDOUSER.$$1", "r")) == NULL)
      {
      }
   if ((o2 = fopen ("FIDOUSER.LST", "w")) == NULL)
      {
      }
   b1[0] = '\0';
   nnodes = 0;
   printf ("\nDeleting Duplicate SysOp Names\n");
   while (fgets (t_str, 127, o1) != NULL)
      {
      if (strncmp (t_str, b1, 40) == 0)
         {
         continue;
         }
      ++nnodes;
      if (nnodes % 100 == 0)
         printf ("\r%d", nnodes);
      t_str[60] = '\n';
      t_str[61] = '\0';
      fputs (t_str, o2);
      strncpy (b1, t_str, 40);
      }
   printf ("\r%d Unique SysOp Names Found in Network\n", nnodes);
   fclose (o1);
   fclose (o2);
   unlink ("FIDOUSER.$$1");
}

/* Just some random equation to determine likelihood of current address
   being the correct default address for an individual (a good guess -
   at least I hope so <grin>).  */
void how_likely (char *p,int dphone,int *addrs,int node,int n_baud)
{
   /* It is less likely if it is a coordinator node */
   if (dphone || (node == 0))
      {
      likely = 6000;
      }
   else
      {
      likely = 8000;
      }

   /* If its not in my zone, punish it */
   if ((myzone > 0) && (addrs[0] != myzone))
      likely -= 3000;

   /* If it is a "normal" net number, add something to it */
   if ((addrs[2] >= 100) && (addrs[2] <= 999))
      likely += 2000 + addrs[2];
   /* If it is a region, that is better than a private net */
   else if (addrs[2] < 100)
      likely += 250;
   /* Otherwise, it is probably bad news */
   else
      likely -= 1000;

   /* Prefer the higher baud rate */
   likely += n_baud / 8;

   /* CM or XP or WZ is real nice */
   if (strstr (p, "CM"))
      {
      likely += 2500;
      }
   else if (strstr (p, "XP"))
      {
      likely += 2500;
      }
   else if (strstr (p, "WZ"))
      {
      likely += 2500;
      }

   /* Favor WZ a bit more */
   if (strstr (p, "WZ"))
      {
      likely += 100;
      }

   /* If it is mail only, then it is probably not his primary */
   if (strstr (p, "MO"))
      {
      likely -= 100;
      }

   /* Don't be fooled if has restricted hours, probably not primary */
   if (strstr (p, "WK"))
      {
      likely -= 100;
      }
   if (strstr (p, "WE"))
      {
      likely -= 100;
      }
   if (strstr (p, "DA"))
      {
      likely -= 100;
      }

   /* If it is a coordinator, punish it depending on what type of coord */
   if (dphone)
      likely -= (5 - dphone) * 75;
}

                                                                                                                                                                                              parselist/parsecfg.c                                                                                   644      62      62        47315  5246664514  13454  0                                                                                                    ustar   louis                           other                                                                                                                                                                                                                  /*
                              Nodelist Parser

              This module was originally written by Bob Hartman
                       Sysop of FidoNet node 1:104/501

 This program source code is being released with the following provisions:

 1.  You are  free to make  changes to this source  code for use on your own
 machine,  however,  altered source files may not be distributed without the
 consent of Spark Software.

 2.  You may distribute "patches"  or  "diff" files for any changes that you
 have made, provided that the "patch" or "diff" files are also sent to Spark
 Software for inclusion in future releases of the entire package.   A "diff"
 file for the source archives may also contain a compiled version,  provided
 it is  clearly marked as not  being created  from the original source code.
 No other  executable  versions may be  distributed without  the  consent of
 Spark Software.

 3.  You are free to include portions of this source code in any program you
 develop, providing:  a) Credit is given to Spark Software for any code that
 may is used, and  b) The resulting program is free to anyone wanting to use
 it, including commercial and government users.

 4.  There is  NO  technical support  available for dealing with this source
 code, or the accompanying executable files.  This source  code  is provided
 as is, with no warranty expressed or implied (I hate legalease).   In other
 words, if you don't know what to do with it,  don't use it,  and if you are
 brave enough to use it, you're on your own.

*/

#include <stdio.h>
#include <ctype.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <time.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>

#include "types.h"
#include "externs.h"

static char t_buff[128];

void parse_config (char *filename,char *mylist,char *pvtlist)
{
   FILE *f1;
   PWTRP tpw;
   PHTRP tph;
   BDTRP tbd;
   DLTRP tdl;
   COTRP tco;
   ETTRP tet;
   CMTRP tcm;
   FNLSTP tfn;
   int foo1;
   char *p, *p1, *p2, *p3;
/* extern char *strchr(); */

   /* Need to read in the configuration options from control file */
   if ((f1 = fopen (filename, "r")) != NULL)
      {
      /*strupr (filename); nooo */
      printf ("Processing Configuration File '%s'\n", filename);

      if(mylist)
         {
         tfn = (FNLSTP) mymalloc (sizeof (FNLST));
         tfn->fname = mymalloc (64);
         tfn->fname=mylist;
         mylist=NULL;
         strupr (tfn->fname);
         tfn->next = NULL;
         tfn->private = 1;
         fn->next = tfn;
         fn = tfn;
         }

      if(pvtlist)
         {
         tfn = (FNLSTP) mymalloc (sizeof (FNLST));
         tfn->fname = mymalloc (64);
         tfn->fname=pvtlist;
         strupr (tfn->fname);
         pvtlist=NULL;
         tfn->next = NULL;
         tfn->private = 1;
         fn->next = tfn;
         fn = tfn;
         }

      while (fgets (t_buff, 127, f1) != NULL)
         {
         if ((p3 = strchr (t_buff, ';')) != NULL)
            *p3 = '\0';

         p2 = t_buff;
         while ((*p2) && (isspace (*p2)))
            {
            ++p2;
            }

         if ((*p2 == ';') || isspace (*p2) || (*p2 == '\0'))
            continue;

         if (strnicmp (p2, "publist", 7) == 0)
            {
            printf ("PUBLIST statement not supported\n");
            continue;
            }
         if (strnicmp (p2, "cleanup", 7) == 0)
            {
            printf ("CLEANUP statement not supported\n");
            continue;
            }
         if (strnicmp (p2, "ozone", 5) == 0)
            {
            printf ("OZONE statement not supported\n");
            continue;
            }
         if (strnicmp (p2, "addr", 4) == 0)
            {
            printf ("ADDR statement not supported\n");
            continue;
            }
         if (strnicmp (p2, "points", 6) == 0)
            {
            printf ("POINTS statement not supported\n");
            continue;
            }
         if (strnicmp (p2, "index", 5) == 0)
            {
            printf ("INDEX statement not supported\n");
            continue;
            }
         if (strnicmp (p2, "sindex", 6) == 0)
            {
            printf ("SINDEX statement not supported\n");
            continue;
            }

         if (strnicmp (p2, "fidoprn", 7) == 0)
            {
            fidoprn = 1;
            continue;
            }
         if (strnicmp (p2, "fidotxt", 7) == 0)
            {
            fidotxt = 1;
            continue;
            }
         if (strnicmp (p2, "nofidolist", 10) == 0)
            {
            fidoprn = 0;
            fidotxt = 0;
            continue;
            }
         if (strnicmp (p2, "noindex", 7) == 0)
            {
            do_index = 0;
            continue;
            }
         if (strnicmp (p2, "nopoints", 8) == 0)
            {
            do_points = 0;
            continue;
            }
         if ((strnicmp (p2, "seadog", 6) == 0) ||
             (strnicmp (p2, "gated", 5) == 0))
            {
            out_type = 1;
            continue;
            }
         if ((strnicmp (p2, "fido", 4) == 0) ||
             (strnicmp (p2, "opus", 4) == 0) ||
             (strnicmp (p2, "binkley", 7) == 0) ||
             (strnicmp (p2, "complete", 8) == 0))
            {
            out_type = 0;
            continue;
            }
         if (strnicmp (p2, "version7", 8) == 0)
            {
            version7 = 1;
            continue;
            }
         if ((strnicmp (p2, "newopus", 7) == 0) || (strnicmp (p2, "version6", 8) == 0))
            {
            version6 = 1;
            continue;
            }
         if ((strnicmp (p2, "oldopus", 7) == 0) || (strnicmp (p2, "version5", 8) == 0))
            {
            version5 = 1;
            continue;
            }
         if (strnicmp (p2, "tbbslist", 8) == 0)
            {
            sealist = 1;
            continue;
            }
         if (strnicmp (p2, "binklist", 8) == 0)
            {
            binkley = 1;
            continue;
            }
         if (strnicmp (p2, "quickbbslist", 12) == 0)
            {
            quickbbs = 1;
            continue;
            }
         if (strnicmp (p2, "igate", 5) == 0)
            {
            tet = (ETTRP) mymalloc (sizeof (ETTR));
            get_addr (&p2[5], &(tet->zone), &(tet->net), &(tet->node));
            tet->etype = 'I';
            tet->next = NULL;
            if (et_head == NULL)
               {
               et_head = tet;
               }
            else
               {
               et->next = tet;
               }
            et = tet;
            continue;
            }
         if (strnicmp (p2, "ogate", 5) == 0)
            {
            tet = (ETTRP) mymalloc (sizeof (ETTR));
            get_addr (&p2[5], &(tet->zone), &(tet->net), &(tet->node));
            tet->etype = 'O';
            tet->next = NULL;
            if (et_head == NULL)
               {
               et_head = tet;
               }
            else
               {
               et->next = tet;
               }
            et = tet;
            continue;
            }
         if (strnicmp (p2, "gate", 4) == 0)
            {
            tet = (ETTRP) mymalloc (sizeof (ETTR));
            get_addr (&p2[4], &(tet->zone), &(tet->net), &(tet->node));
            tet->etype = 'G';
            tet->next = NULL;
            if (et_head == NULL)
               {
               et_head = tet;
               }
            else
               {
               et->next = tet;
               }
            et = tet;
            continue;
            }
         if (strnicmp (p2, "hub", 3) == 0)
            {
            tet = (ETTRP) mymalloc (sizeof (ETTR));
            get_addr (&p2[3], &(tet->zone), &(tet->net), &(tet->node));
            tet->etype = 'H';
            tet->next = NULL;
            if (et_head == NULL)
               {
               et_head = tet;
               }
            else
               {
               et->next = tet;
               }
            et = tet;
            continue;
            }
         if (strnicmp (p2, "include", 7) == 0)
            {
            p = &p2[7];
            while ((*p) && isspace (*p))
               {
               ++p;
               }

            p1 = p;
            while ((*p) && (!isspace (*p)))
               {
               ++p;
               }
            *p = '\0';

            parse_config (p1, mylist, pvtlist);
            printf ("Continuing Processing on File '%s'\n", filename);
            continue;
            }
         if (strnicmp (p2, "comments", 8) == 0)
            {
            comments = 1;
            continue;
            }
         if (strnicmp (p2, "nocomments", 10) == 0)
            {
            comments = 0;
            continue;
            }
         if (strnicmp (p2, "usezone", 7) == 0)
            {
            usezone = 1;
            continue;
            }
         if (strnicmp (p2, "report", 6) == 0)
            {
            doreport = 1;
            continue;
            }
         if (strnicmp (p2, "noreport", 8) == 0)
            {
            doreport = 0;
            continue;
            }
         if (strnicmp (p2, "dash", 4) == 0)
            {
            nodash = 0;
            continue;
            }
         if (strnicmp (p2, "nodash", 6) == 0)
            {
            nodash = 1;
            continue;
            }
         if (strnicmp (p2, "nonodelist", 10) == 0)
            {
            nlist = 0;
            continue;
            }
         if (strnicmp (p2, "nodelist", 8) == 0)
            {
            nlist = 1;
            continue;
            }
         if (strnicmp (p2, "nouserlist", 10) == 0)
            {
            udata = 0;
            continue;
            }
         if (strnicmp (p2, "userlist", 8) == 0)
            {
            udata = 2;
            continue;
            }
         if (strnicmp (p2, "interlist", 9) == 0)
            {
            udata = 1;
            continue;
            }
         if (strnicmp (p2, "node", 4) == 0)
            {
            if (sscanf (&p2[4], "%d:%d/%d", &myzone, &mynet, &mynode) != 3)
               {
               myzone = -1;
               if (sscanf (&p2[4], "%d/%d", &mynet, &mynode) != 2)
                  {
                  continue;
                  }
               }
            continue;
            }
         if (strnicmp (p2, "route", 5) == 0)
            {
            rdata = 1;
            continue;
            }
         if (strnicmp (p2, "noroute", 7) == 0)
            {
            rdata = 0;
            continue;
            }
         if (strnicmp (p2, "country", 7) == 0)
            {
            sscanf (&p2[7], "%s", country);
            continue;
            }
         if (strnicmp (p2, "mylist", 6) == 0)
            {
            tfn = (FNLSTP) mymalloc (sizeof (FNLST));
            tfn->fname = mymalloc (64);
            sscanf (&p2[7], "%s", tfn->fname);
            strupr (tfn->fname);
            tfn->next = NULL;
            tfn->private = 0;
            fn->next = tfn;
            fn = tfn;
            continue;
            }
         if (strnicmp (p2, "pvtlist", 7) == 0)
            {
            tfn = (FNLSTP) mymalloc (sizeof (FNLST));
            tfn->fname = mymalloc (64);
            sscanf (&p2[7], "%s", tfn->fname);
            strupr (tfn->fname);
            tfn->next = NULL;
            tfn->private = 1;
            fn->next = tfn;
            fn = tfn;
            continue;
            }
         if (strnicmp (p2, "maxbaud", 7) == 0)
            {
            maxbaud = atoi (&p2[7]);
            continue;
            }
         if (strnicmp (p2, "phone", 5) == 0)
            {
            tph = (PHTRP) mymalloc (sizeof (PHTR));
            tph->num = mymalloc (30);
            if (sscanf (&p2[5], "%d:%d/%d %s", &(tph->zone), &(tph->net), &(tph->node), tph->num) != 4)
               {
               tph->zone = myzone;
               sscanf (&p2[5], "%d/%d %s", &(tph->net), &(tph->node), tph->num);
               }
            tph->next = NULL;
            if (ph_head == NULL)
               {
               ph_head = tph;
               }
            else
               {
               ph->next = tph;
               }
            ph = tph;
            continue;
            }
         if (strnicmp (p2, "password", 8) == 0)
            {
            tpw = (PWTRP) mymalloc (sizeof (PWTR));
            tpw->pw = mymalloc (30);
            if (sscanf (&p2[8], "%d:%d/%d %s", &(tpw->zone), &(tpw->net), &(tpw->node), &(tpw->pw[1])) != 4)
               {
               sscanf (&p2[8], "%d/%d %s", &(tpw->net), &(tpw->node), &(tpw->pw[1]));
               tpw->zone = myzone;
               }
            tpw->pw[0] = '!';
            strlwr (tpw->pw);
            tpw->next = NULL;
            if (pw_head == NULL)
               {
               pw_head = tpw;
               }
            else
               {
               pw->next = tpw;
               }
            pw = tpw;
            continue;
            }
         if (strnicmp (p2, "cm", 2) == 0)
            {
            tcm = (CMTRP) mymalloc (sizeof (CMTR));
            get_addr (&p2[2], &(tcm->zone), &(tcm->net), &(tcm->node));
            tcm->next = NULL;
            if (cm_head == NULL)
               {
               cm_head = tcm;
               }
            else
               {
               cm->next = tcm;
               }
            cm = tcm;
            continue;
            }
         if (strnicmp (p2, "baud", 4) == 0)
            {
            tbd = (BDTRP) mymalloc (sizeof (BDTR));
            if (sscanf (&p2[4], "%d:%d/%d %d", &(tbd->zone), &(tbd->net), &(tbd->node), &(tbd->baud)) != 4)
               {
               sscanf (&p2[4], "%d/%d %d", &(tbd->net), &(tbd->node), &(tbd->baud));
               tbd->zone = myzone;
               }
            tbd->next = NULL;
            if (bd_head == NULL)
               {
               bd_head = tbd;
               }
            else
               {
               bd->next = tbd;
               }
            bd = tbd;
            continue;
            }
         if (strnicmp (p2, "dial", 4) == 0)
            {
            /* Save the defaults */
            strcpy (t_str, &p2[4]);

            while (fgets (t_buff, 127, f1) != NULL)
               {
               p2 = t_buff;
               if ((p3 = strchr (p2, ';')) != NULL)
                  *p3 = '\0';

               while (isspace (*p2) && *p2)
                  ++p2;

               if (strnicmp (p2, "end", 3) == 0)
                  {
                  break;
                  }

               /* Process each line of dial */
               p = p2;
               while ((*p) && (isspace (*p)))
                  {
                  ++p;
                  }

               if ((*p == ';') || (*p == '\0'))
                  {
                  continue;
                  }

               tdl = (DLTRP) mymalloc (sizeof (DLTR));
               tdl->mstr = mymalloc (30);
               tdl->pre  = mymalloc (30);
               tdl->post = mymalloc (30);

               p1 = tdl->mstr;
               while ((*p) && (!isspace (*p)))
                  {
                  *p1++ = *p++;
                  }
               *p1 = '\0';

               while ((*p) && (isspace (*p)))
                  {
                  ++p;
                  }

               p1 = tdl->pre;
               while ((*p) && (*p != '/') && (!isspace(*p)))
                  {
                  *p1++ = *p++;
                  }
               *p1 = '\0';

               p1 = tdl->post;
               if ((*p == '\0') || (isspace (*p)))
                  {
                  *p1 = '\0';
                  }
               else
                  {
                  ++p;

                  while ((*p) && (!isspace (*p)))
                     {
                     *p1++ = *p++;
                     }
                  *p1 = '\0';
                  }

               tdl->mlen = strlen (tdl->mstr);
               tdl->next = NULL;
               if (dl_head == NULL)
                  {
                  dl_head = tdl;
                  }
               else
                  {
                  dl->next = tdl;
                  }
               dl = tdl;
               }

            tdl = (DLTRP) mymalloc (sizeof (DLTR));
            tdl->mstr = country;
            tdl->mlen = strlen (country);
            tdl->next = NULL;
            tdl->pre  = mymalloc (30);
            tdl->post = mymalloc (30);

            p = t_str;
            while ((*p) && (isspace (*p)))
               {
               ++p;
               }

            p1 = tdl->pre;
            while ((*p) && (*p != '/') && (!isspace(*p)))
               {
               *p1++ = *p++;
               }
            *p1 = '\0';
            strcat (tdl->pre, country);

            p1 = tdl->post;
            if ((*p == '\0') || (isspace (*p)))
               {
               *p1 = '\0';
               }
            else
               {
               ++p;

               while ((*p) && (!isspace (*p)))
                  {
                  *p1++ = *p++;
                  }
               *p1 = '\0';
               }

            while ((*p) && (isspace (*p)))
               {
               ++p;
               }

            p1 = intl_pre_dl;
            while ((*p) && (*p != '/') && (!isspace(*p)))
               {
               *p1++ = *p++;
               }
            *p1 = '\0';

            p1 = intl_post_dl;
            if ((*p == '\0') || (isspace (*p)))
               {
               *p1 = '\0';
               }
            else
               {
               ++p;

               while ((*p) && (!isspace (*p)))
                  {
                  *p1++ = *p++;
                  }
               *p1 = '\0';
               }

            if (dl_head == NULL)
               {
               dl_head = tdl;
               }
            else
               {
               dl->next = tdl;
               }
            dl = tdl;

            continue;
            }
         if (strnicmp (p2, "cost", 4) == 0)
            {
            /* Save the defaults */
            strcpy (t_str, p2);
            sscanf (&t_str[4], "%d %d", &foo1, &intl_cost);

            while (fgets (p2, 127, f1) != NULL)
               {
               if ((p3 = strchr (p2, ';')) != NULL)
                  *p3 = '\0';

               if (strnicmp (p2, "end", 3) == 0)
                  {
                  break;
                  }

               p = p2;
               while ((*p) && (isspace (*p)))
                  {
                  ++p;
                  }

               /* Process each line of cost */
               if ((*p == ';') || (*p == '\0'))
                  {
                  continue;
                  }

               tco = (COTRP) mymalloc (sizeof (COTR));
               tco->mstr = mymalloc (30);
               tco->cost = foo1;
               tco->baud = 0;

               if (sscanf (p, "%s %d %d\n", tco->mstr, &(tco->cost), &(tco->baud)) == 1)
                  {
                  tco->cost = foo1;
                  tco->baud = 0;
                  }

               tco->mlen = strlen (tco->mstr);
               tco->next = NULL;
               if (co_head == NULL)
                  {
                  co_head = tco;
                  }
               else
                  {
                  co->next = tco;
                  }
               co = tco;
               }

            tco = (COTRP) mymalloc (sizeof (COTR));
            tco->mstr = country;
            tco->mlen = strlen (country);
            sscanf (&t_str[4], "%d %d", &(tco->cost), &intl_cost);
            tco->baud = 0;
            tco->next = NULL;
            if (co_head == NULL)
               {
               co_head = tco;
               }
            else
               {
               co->next = tco;
               }
            co = tco;

            continue;
            }
         printf ("Cannot decipher line:\n%s", p2);
         }
      fclose (f1);
      }
}
                                                                                                                                                                                                                                                                                                                   parselist/parselst.c                                                                                   644      62      62       132476  5246664514  13542  0                                                                                                    ustar   louis                           other                                                                                                                                                                                                                  /*
                              Nodelist Parser

              This module was originally written by Bob Hartman
                       Sysop of FidoNet node 1:104/501

 This program source code is being released with the following provisions:

 1.  You are  free to make  changes to this source  code for use on your own
 machine,  however,  altered source files may not be distributed without the
 consent of Spark Software.

 2.  You may distribute "patches"  or  "diff" files for any changes that you
 have made, provided that the "patch" or "diff" files are also sent to Spark
 Software for inclusion in future releases of the entire package.   A "diff"
 file for the source archives may also contain a compiled version,  provided
 it is  clearly marked as not  being created  from the original source code.
 No other  executable  versions may be  distributed without  the  consent of
 Spark Software.

 3.  You are free to include portions of this source code in any program you
 develop, providing:  a) Credit is given to Spark Software for any code that
 may is used, and  b) The resulting program is free to anyone wanting to use
 it, including commercial and government users.

 4.  There is  NO  technical support  available for dealing with this source
 code, or the accompanying executable files.  This source  code  is provided
 as is, with no warranty expressed or implied (I hate legalease).   In other
 words, if you don't know what to do with it,  don't use it,  and if you are
 brave enough to use it, you're on your own.

*/

#include <stdio.h>
#include <ctype.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <time.h>
#include <malloc.h>
#include <string.h>
#include <stdlib.h>

/* Should we generate an Opus style nodelist output */

#include "types.h"
#include "externs.h"

#ifndef OS2

char           *REV = "$Revision: 1.33 $";      /* Used in my code for my RCS
                                                 * program */
#else

char           *REV = "$Revision: 1.33-OS/2 $";      /* Used in my code for my RCS
                                                 * program */
#endif

struct _node    new_node;
struct _oldnode old_node;
struct netls    seanet;
struct nodels   seanode;
struct extrastuff bt_node;
struct nidxs   *seaidx;
struct nidxs   *seaptr;
struct qidx     qbbsidx;
struct qdat     qbbsnode;
long            seanodecnt;
int             seacnt;
long            seanetcnt;

char            buf[256];
char            prn_first_line[256];
char            txt_first_line[256];
int             prn_pg_lines;
int             txt_pg_lines;
int             prn_pagenum;
int             txt_pagenum;
int             cmdbaud = 0;

static FILE    *nodelist_bbs, *nodelist_fon, *fidouser_1;
static int     nodelist_dat, nodelist_idx, nodelist_sys;
static FILE    *nodelist_prn, *nodelist_txt;
static int     netlist_dog, nodelist_dog, index_dog;
static int     nodelist_ext;
static int     qnl_idx_bbs, qnl_dat_bbs;

/* extern int     *cmp(); */

main (int argc,char *argv[])
{
   char            buff1[20], buff2[20];        /* Junk buffers */
   char         *s,*config_file ="parselst.cfg";
   char         *mylist=NULL,*pvtlist=NULL;
   char         *nodelist=NULL,editnl=0,cl_nodelist=0;
   int           i;

   /*sscanf (REV, "$%s %s", buff1, buff2);*/ strcpy (buff1, "Revision"); strcpy (buff2, "1.33"); /* bug bug ??? */
   fprintf (stderr, "ParseLst - %s %s by Bob Hartman, SysOp of FidoNet Node 1:104/501\n", buff1, buff2);
   fprintf (stderr, "Modified by George Peace and Bill Andrus, FidoNet Nodes 1:13/13 & 1:13/0\n", buff1, buff2);
   fprintf (stderr, "This program is placed in the  Public Domain  as part of the BBS project.\n");
   fprintf (stderr, "For information on BBS (Bit Bucket Software), contact 104/501 or 343/491.\n\n");

   if (argc > 1){
       for (i=1;i<argc;i++) {
           s=argv[i];
           if ((s[0] == '/') || (s[0] == '-')) {
               switch(tolower(s[1])) {

#ifndef OS2
                   case 'e' :    editnl++;
                                 break;
#endif

                   case 'n' :    nodelist=(s+2);
                                 strupr(nodelist);
                                 cl_nodelist++;
                                 break;

                   case 'c' :    config_file=s+2;
                                 strupr (config_file);
                                 break;

                   case 'm' :   mylist=(s+2);
                                strupr(mylist);
                                break;

                   case 'p' :   pvtlist=s+2;
                                strupr(pvtlist);
                                break;

                   case 'b' :   cmdbaud=atoi(&s[2]);
                                break;

                   default:      printf("Don't understand %s\n\n",s);
                                 break;

                                 }
                             }
                         }
                     }
#ifndef OS2
      if (editnl > 0)
         {
         printf ("Using EditNL to update Nodelist\n");
         system ("EditNL");
         printf ("\n");
         }
     else   edit();
#else
     edit();
#endif

   strcpy (country, "1");

   /* Need to find the correct file to use */
   fn = &fn_head;
   if (cl_nodelist > 0)
      {
      fn->fname = nodelist;
      strupr (fn->fname);
      }
   else
      {
      nfile_name (&(fn->fname));
      }
   fn->next = NULL;
   fn->private = 0;

   ph = ph_head;
   bd = bd_head;
   dl = dl_head;
   co = co_head;
   et = et_head;

   /* Parse configuration file */
   parse_config (config_file,mylist,pvtlist);

   if (cmdbaud > 0)
      maxbaud = cmdbaud;

   /* Open output files */
   open_outfiles ();

   /* Set up the output type */
   if (out_type == -1)
      {
      if (myzone > 0)
         out_type = 0;
      else
         out_type = 1;
      }

   fn = &fn_head;
   while (fn != NULL)
      {
      process_file (1);
      }

   /* Close all the files */
   if (nodelist_bbs != NULL)
      {
      fclose (nodelist_bbs);
      }
   if (nodelist_fon != NULL)
      {
      fclose (nodelist_fon);
      }
   if (fidouser_1 != NULL)
      {
      fclose (fidouser_1);
      }
   if (nodelist_dat != -1)
      {
      close (nodelist_dat);
      }
   if (nodelist_sys != -1)
      {
      close (nodelist_sys);
      }
   if (nodelist_idx != -1)
      {
      close (nodelist_idx);
      }
   if (nodelist_ext != -1)
      {
      close (nodelist_ext);
      }
   if (nodelist_prn != NULL)
      {
      fclose (nodelist_prn);
      }
   if (nodelist_txt != NULL)
      {
      fclose (nodelist_txt);
      }
   if (nodelist_dog != -1)
      {
      close (nodelist_dog);
      }
   if (qnl_idx_bbs != -1)
      {
      close (qnl_idx_bbs);
      }
   if (qnl_dat_bbs != -1)
      {
      close (qnl_dat_bbs);
      }
   if (netlist_dog != -1)
      {
      if (seanet.numnodes)
         {
         write (netlist_dog, (char *) &seanet, sizeof (struct netls));
         }
      close (netlist_dog);

      if (seaidx != NULL)
         {
         printf ("\nSorting for INDEX.DOG\n");
         qsort (seaidx, seacnt, sizeof (struct nidxs), cmp);
         unlink ("INDEX.DOG");
         if ((index_dog = open ("INDEX.DOG", O_WRONLY|O_BINARY|O_CREAT, S_IREAD|S_IWRITE)) == -1)
            {
            printf ("Error opening INDEX.DOG - not generated\n");
            unlink ("INDEX.DOG");
            }
         else
            {
            write (index_dog, (char *) seaidx, sizeof (struct nidxs) * seacnt);
            close (index_dog);
            }
         }
      else
         {
         /* Have to get rid of this to make sure no one gets confused */
         unlink ("INDEX.DOG");
         }
      }

   printf ("\rProcessing Completed Without Errors.\n\n");

   /* Do any additional processing that might be needed */
   if (doreport)
      {
      size_report ();
      }

   if (fidouser_1 != NULL)
      {
      do_names ();
      }
   return (0);
}

void
open_outfiles ()
{
   short         i;

   if (nlist)
      {
      if ((nodelist_bbs = fopen ("NODELIST.BBS", "w")) == NULL)
         {
         printf ("Error opening output file\n");
         exit (1);
         }
      }
   else
      {
      nodelist_bbs = NULL;
      }

   /* Open the NODELIST.FON file? */
   if (rdata)
      {
      if ((nodelist_fon = fopen ("NODELIST.FON", "w")) == NULL)
         {
         printf ("Error opening NODELIST.FON - not generated\n");
         }
      }
   else
      {
      nodelist_fon = NULL;
      }

   /* Open the Fidouser.$$1 file */
   if (udata)
      {
      if ((fidouser_1 = fopen ("FIDOUSER.$$1", "w")) == NULL)
         {
         printf ("Error opening FIDOUSER.$$1 - not generated\n");
         }
      }
   else
      {
      fidouser_1 = NULL;
      }

   nodelist_dat = -1;
   nodelist_idx = -1;

   if (version6)
      {
      unlink ("NODELIST.DAT");
      if ((nodelist_dat = open ("NODELIST.DAT", O_WRONLY|O_BINARY|O_CREAT, S_IREAD|S_IWRITE)) == -1)
         {
         printf ("Error opening NODELIST.DAT - not generated\n");
         }
      else
         {
         unlink ("NODELIST.IDX");
         if ((nodelist_idx = open ("NODELIST.IDX", O_WRONLY|O_BINARY|O_CREAT, S_IREAD|S_IWRITE)) == -1)
            {
            printf ("Error opening NODELIST.IDX - NODELIST.DAT not generated\n");
            close (nodelist_dat);
            nodelist_dat = -1;
            }
         else
            {
            /* Write out the start of the .SYS file */
            memset (&new_node, 0, sizeof (struct _node));
            new_node.number = 6;
            new_node.net = -1;
            strcpy (new_node.name, "ParseLst");
            strcpy (new_node.city, "1:132/101 in Nashua, NH USA");
            write (nodelist_dat, (char *) &new_node, sizeof (struct _node));

            /* Write out the start of the .IDX file */
            i = 5;
            write (nodelist_idx, (char *) &i, sizeof (short));
            i = -1;
            write (nodelist_idx, (char *) &i, sizeof (short));
            }
         }
      }
   else
      {
      nodelist_dat = -1;
      nodelist_idx = -1;
      }

   nodelist_sys = -1;

   if (version5)
      {
      unlink ("NODELIST.SYS");
      if ((nodelist_sys = open ("NODELIST.SYS", O_WRONLY|O_BINARY|O_CREAT, S_IREAD|S_IWRITE)) == -1)
         {
         printf ("Error opening NODELIST.SYS - not generated\n");
         }
      else
         {
         if (nodelist_idx == -1)
            {
            unlink ("NODELIST.IDX");
            if ((nodelist_idx = open ("NODELIST.IDX", O_WRONLY|O_BINARY|O_CREAT, S_IREAD|S_IWRITE)) == -1)
               {
               printf ("Error opening NODELIST.IDX - NODELIST.SYS not generated\n");
               close (nodelist_sys);
               nodelist_sys = -1;
               }
            else
               {
               /* Write out the start of the .IDX file */
               i = 5;
               write (nodelist_idx, (char *) &i, sizeof (short));
               i = -1;
               write (nodelist_idx, (char *) &i, sizeof (short));
               }
            }

         /* Write out the start of the .SYS file */
         memset (&old_node, 0, sizeof (struct _oldnode));
         old_node.number = 5;
         old_node.net = -1;
         strcpy (old_node.name, "ParseLst");
         strcpy (old_node.city, "1:132/101 in Nashua, NH USA");
         write (nodelist_sys, (char *) &old_node, sizeof (struct _oldnode));
         }
      }
   else
      {
      nodelist_sys = -1;
      }

   nodelist_ext = -1;

   if (binkley)
      {
      unlink ("NODELIST.EXT");
      if ((nodelist_ext = open ("NODELIST.EXT", O_WRONLY|O_BINARY|O_CREAT, S_IREAD|S_IWRITE)) == -1)
         {
         printf ("Error opening NODELIST.EXT - not generated\n");
         }
      else
         {
         if (nodelist_idx == -1)
            {
            unlink ("NODELIST.IDX");
            if ((nodelist_idx = open ("NODELIST.IDX", O_WRONLY|O_BINARY|O_CREAT, S_IREAD|S_IWRITE)) == -1)
               {
               printf ("Error opening NODELIST.IDX - NODELIST.EXT not generated\n");
               close (nodelist_ext);
               nodelist_ext = -1;
               }
            else
               {
               /* Write out the start of the .IDX file */
               i = 7;
               write (nodelist_idx, (char *) &i, sizeof (short));
               i = -1;
               write (nodelist_idx, (char *) &i, sizeof (short));
               }
            }

         /* Write out the start of the .EXT file */
         memset (&bt_node, 0, sizeof (struct extrastuff));
         strcpy (bt_node.password, "ParseLst");
         write (nodelist_ext, (char *) &bt_node, sizeof (struct extrastuff));
         }
      }
   else
      {
      nodelist_ext = -1;
      }

   if (sealist)
      {
      unlink ("NODELIST.DOG");
      if ((nodelist_dog = open ("NODELIST.DOG", O_WRONLY|O_BINARY|O_CREAT, S_IREAD|S_IWRITE)) == -1)
         {
         printf ("Error opening NODELIST.DOG - not generated\n");
         }
      else
         {
         unlink ("NETLIST.DOG");
         if ((netlist_dog = open ("NETLIST.DOG", O_WRONLY|O_BINARY|O_CREAT, S_IREAD|S_IWRITE)) == -1)
            {
            printf ("Error opening NETLIST.DOG - NODELIST.DOG not generated\n");
            close (nodelist_dog);
            nodelist_dog = -1;
            seanetcnt = sizeof (struct netls);
            }
         else
            {
            /* Write out the start of the NETLIST.DOG file */
            memset (&seanet, 0, sizeof (struct netls));
            write (netlist_dog, (char *) &seanet, sizeof (struct netls));
            }
         }

      if ((seaidx = calloc (sizeof (struct nidxs), 4000)) == NULL)
         {
         printf ("Could not allocate space for INDEX.DOG - not generating\n");
         seaptr = NULL;
         }
      else
         {
         seaptr = seaidx;
         }
      }
   else
      {
      nodelist_dog = -1;
      netlist_dog = -1;
      }

   if (quickbbs)
      {
      unlink ("QNL_DAT.BBS");
      if ((qnl_dat_bbs = open ("QNL_DAT.BBS", O_WRONLY|O_BINARY|O_CREAT, S_IREAD|S_IWRITE)) == -1)
         {
         printf ("Error opening QNL_DAT.BBS - not generated\n");
         }
      else
         {
         unlink ("QNL_IDX.BBS");
         if ((qnl_idx_bbs = open ("QNL_IDX.BBS", O_WRONLY|O_BINARY|O_CREAT, S_IREAD|S_IWRITE)) == -1)
            {
            printf ("Error opening QNL_IDX.BBS - QNL_DAT.BBS not generated\n");
            close (qnl_dat_bbs);
            qnl_dat_bbs = -1;
            }
         }
      }
   else
      {
      qnl_idx_bbs = -1;
      qnl_dat_bbs = -1;
      }

   if (fidoprn)
      {
      if ((nodelist_prn = fopen ("NODELIST.PRN", "w")) != NULL)
         prn_pg_lines = 100;
      }
   if (fidotxt)
      {
      if ((nodelist_txt = fopen ("NODELIST.TXT", "w")) != NULL)
         txt_pg_lines = 100;
      }
}

void process_file (int times)
{
   int             n_num = 0;
   int             old_n_num;
   int             n_cost;
   int             n_baud;
   int             node;
   int             addrs[5];
   char            this_file[64];
   char            def_phone[30];
   char            def_flags[30];
   int             def_cost;
   int             def_baud;
   int             cur_addr_lev;
   int             did_cost;
   short           i,  n_out;
   int             did_phone;
   char            buff[256];	/* was 128, but mister Rudzinski cleverly overflows that */
   FILE           *f;
   char           *p, *p1, *p2;
   int             dphone;
   char            b1[50];
   char            b2[50];
   char            b3[50];
   char            b4[50];
   char            b5[50];
   char            b6[50];
   char            b7[128];
   char            pn1[20], pn2[20], pn3[20];
   char            orig_phone[30];
   int             pvt, hold, skip, def, this_list;
   char            ntyp;
   char           *mymalloc ();
   extern char    *strchr ();

   /* Open the next filename */
   f = NULL;
   cur_addr_lev = 0;
   if ((f = fopen (fn->fname, "r")) == NULL)
      {
      printf ("\rCould not open Nodelist File '%s' - Exiting\n", fn->fname);
      exit (1);
      }

   this_list = fn->private;

   if (times)
      {
      printf ("\nProcessing Nodelist File '%s'\n", fn->fname);
      fgets (buf,256, f);
      p1 = buf + strlen (buf) - 1;
      while ((p1 >= buf) && (*p1 != ':'))
         --p1;
      if (p1 >= buf)
         {
         strcpy (p1, "-- Page");
         sprintf (prn_first_line, "Bulletin Board Listing from %s", buf + 3);
         sprintf (txt_first_line, "%s", buf + 3);
         }
      else
         {
         prn_first_line[0] = '\0';
         txt_first_line[0] = '\0';
         }

      if ((nodelist_prn != NULL) && !this_list)
         {
         ++prn_pagenum;
         fprintf (nodelist_prn, "%s %d\n\n", prn_first_line, prn_pagenum);
         }

      if ((nodelist_txt != NULL) && !this_list)
         {
         ++txt_pagenum;
         fprintf (nodelist_txt, "%s %d\n\n", txt_first_line, txt_pagenum);
         }
      }
   else
      printf ("\nAdding Nodelist File '%s' to Zone %d\n", fn->fname, myzone);
   strcpy (this_file, fn->fname);

   /* Show that we are not skipping here */
   skip = -1;

   addrs[0] = addrs[1] = addrs[2] = addrs[3] = (myzone > 0) ? myzone : 1;

   for (;;)
      {
      if (fgets (buf, 256, f) == NULL)
         break;

      pvt = 0;
      dphone = 0;
      n_cost = 0;
      did_cost = 0;
      hold = 0;
      ntyp = 'L';
      def = 0;
      likely = 0;

      p = buff;
      p1 = buf;
      while (*p1)
         {
         if (!isspace (*p1))
            *p++ = *p1;
         ++p1;
         }
      *p++ = '\n';
      *p = '\0';
      p = buff;

      if (*p == ';')
         {
         if ((comments) && (p[1] != '\n'))
            {
            fputs (buf, stdout);
            }

         if ((!this_list) && (buf[1] == 'A'))
            {
            if ((nodelist_prn != NULL) && (prn_pg_lines == 100))
               fputs (buf + 2, nodelist_prn);
            if ((nodelist_txt != NULL) && (txt_pg_lines == 100))
               fputs (buf + 2, nodelist_txt);
            }
         continue;
         }

      nnodes++;

      /* Modifier (Host, Region, etc.) */
      p = nextfield (p, b1);

      /* Node number (or region or zone) */
      old_n_num = n_num;
      p = nextfield (p, b2);
      n_num = atoi (b2);

      /* Did we get anything? */
      if (b1[0] != '\0')
         {
         /* Is it something we need to worry about? */
         if (stricmp (b1, "zone") == 0)
            {
            if ((myzone > 0) && (addrs[0] == myzone) && nzones)
               {
               if (fn != NULL)
                  fn = fn->next;
               i = 0;
               while (fn != NULL)
                  {
                  process_file (0);
                  i = 1;
                  }
               if (i)
                  printf ("\nReturning to finish file '%s'\n", this_file);
               }

            ++nzones;
            if (out_type == 0)
               {
               if (usezone)
                  strcpy (b1, "ZONE ");
               else
                  strcpy (b1, "REGION ");
               dphone = 1;
               }
            else
               {
               if (usezone)
                  strcpy (b1, "ZONE ");
               else
                  strcpy (b1, "REGION ");
               dphone = 1;
               if (myzone > 0)
                  {
                  if (n_num != myzone)
                     {
                     skip = 1;
                     }
                  else
                     {
                     skip = 0;
                     }
                  }
               }
            ntyp = 'Z';
            }
         else
         if (stricmp (b1, "region") == 0)
            {
            ++nregions;
            spec_word (b1);
            dphone = 2;
            if (skip == 1)
               skip = 2;
            }
         else
         if (stricmp (b1, "host") == 0)
            {
            ++nnets;
            spec_word (b1);
            dphone = 3;
            if (skip == 1)
               skip = 2;
            ntyp = 'I';
            }
         else
         if (stricmp (b1, "hub") == 0)
            {
            ++nhubs;
            if (out_type)
               spec_word (b1);
            else
               b1[0] = '\0';
            dphone = 4;
            if (skip == 1)
               skip = 2;
            ntyp = 'H';
            }
         else
         if (stricmp (b1, "point") == 0)
            {
            ++npoints;
            spec_word (b1);
            dphone = 5;
            if (skip == 1)
               skip = 2;
            ntyp = 'P';
            }
         else
         if (stricmp (b1, "pvt") == 0)
            {
            /* It is just a private node */
            b1[0] = '\0';
            pvt = 1;
            }
         else
         if (stricmp (b1, "hold") == 0)
            {
            /* It is on hold */
            b1[0] = '\0';
            hold = 1;
            }
         else
            {
            ++ndown;
            /* It is something we don't understand, or the node is down */
            continue;
            }
         }

      if (dphone)
         {
         addrs[dphone - 1] = n_num;
         for (i = dphone; i < 5; i++)
            {
            addrs[i] = n_num;
            }
         cur_addr_lev = dphone;
         if (dphone < 4)
            {
            printf ("\rZone %2d, Region %2d, Net %5d", addrs[0], addrs[1], addrs[2]);
            fflush (stdout);
            node = 0;
            }
         else
            {
            node = n_num;
            }
         }
      else
         {
         node = n_num;
         }

      /* Translate the node type if necessary */
      if (b1[0] == '\0')
         {
         et = et_head;
         while (et != NULL)
            {
            if (((addrs[0] == et->zone) || (et->zone == -1)) &&
               (addrs[2] == et->net) && (node == et->node))
               {
               switch (et->etype)
                  {
                  case 'I':
                     strcpy (b1, "IGATE ");
                     break;
                  case 'O':
                     strcpy (b1, "OGATE ");
                     break;
                  case 'G':
                     strcpy (b1, "GATE ");
                     break;
                  case 'H':
                     strcpy (b1, "HUB ");
                     break;
                  }
               ntyp = et->etype;
               break;
               }
            et = et->next;
            }
         }

      /* Board name */
      p = nextfield (p, b2);

      /* Location */
      p = nextfield (p, b3);

      /* Sysop name */
      p = nextfield (p, b4);

      /* Phone number */
      p = nextfield (p, b5);
      strcpy (orig_phone, b5);

      /* Determine the cost for this node */
      co = co_head;
      while (co != NULL)
         {
         if (strnicmp (b5, co->mstr, co->mlen) == 0)
            {
            n_cost = co->cost;
            did_cost = 1;
            break;
            }
         co = co->next;
         }

      /* If we didn't get a match, then it gets intl cost */
      if ((!did_cost) && (co == NULL) &&
         (strnicmp (country, b5, strlen (country)) == 0))
         {
         did_cost = 1;
         }

      /* Translate the phone number if possible via phone translations */
      did_phone = 0;
      ph = ph_head;
      while (ph != NULL)
         {
         if (((addrs[0] == ph->zone) || (ph->zone == -1)) &&
            (addrs[2] == ph->net) && (node == ph->node))
            {
            did_phone = 1;
            strcpy (b5, ph->num);
            break;
            }
         ph = ph->next;
         }

      if (dphone)
         {
         if (isdigit (b5[0]) || (ph != NULL))
            {
            strcpy (def_phone, b5);
            }
         else
            {
            /* Bad news - an unlisted where we need a phone number */
            ++ndown;
            continue;
            }
         }

      /* If this guy is unpublished, put something in there */
      if (((!isdigit (b5[0])) || (hold)) && (ph == NULL))
         {
         if (cur_addr_lev >= 3)
            {
            strcpy (b5, def_phone);
            def = 1;
            ++nredirect;
            }
         else
            {
            /* No dice - he is unpublished in a region or zone */
            ++ndown;
            continue;
            }
         }

      /* Determine the cost for this node */
      if (!did_cost)
         {
         co = co_head;
         while (co != NULL)
            {
            if (strnicmp (b5, co->mstr, co->mlen) == 0)
               {
               n_cost = co->cost;
               did_cost = 1;
               break;
               }
            co = co->next;
            }
         }

      /* Determine some things from the phone number */
      p1 = b5;
      p2 = pn1;
      while ((*p1) && isdigit (*p1))
         {
         *p2++ = *p1++;
         }
      *p2 = '\0';

      if (*p1 != '\0')
         ++p1;

      p2 = pn2;
      while ((*p1) && isdigit (*p1))
         {
         *p2++ = *p1++;
         }
      *p2 = '\0';

      if (*p1 != '\0')
         ++p1;

      p2 = pn3;
      while ((*p1) && isdigit (*p1))
         {
         *p2++ = *p1++;
         }
      *p2 = '\0';

      if (*p1 != '\0')
         ++p1;

      if (pn1[0] == '\0')
         {
         pn1[0] = '1';
         pn1[1] = '\0';
         }

      if (pn2[0] == '\0')
         {
         pn2[0] = '1';
         pn2[1] = '\0';
         }

      if (pn3[0] == '\0')
         {
         pn3[0] = '1';
         pn3[1] = '\0';
         }

      /* Translate the number if possible via dial translations */
      dl = dl_head;
      while (dl != NULL)
         {
         if (strnicmp (b5, dl->mstr, dl->mlen) == 0)
            {
            strcpy (b7, &b5[dl->mlen]);
            sprintf (b5, "%s%s%s", dl->pre, b7, dl->post);
            break;
            }
         dl = dl->next;
         }

      if ((dl == NULL) && (!did_phone) && (strnicmp (country, b5, strlen (country)) != 0))
         {
         sprintf (b7, "%s%s%s", intl_pre_dl, b5, intl_post_dl);
         strcpy (b5, b7);
         }

      /* Determine the cost for this node */
      if (!did_cost)
         {
         co = co_head;
         while (co != NULL)
            {
            if (strnicmp (b5, co->mstr, co->mlen) == 0)
               {
               n_cost = co->cost;
               did_cost = 1;
               break;
               }
            co = co->next;
            }
         }

      /* If we didn't get a match, then it gets intl cost */
      if (!did_cost)
         {
         n_cost = intl_cost;
         }

      /* Baud rate */
      p = nextfield (p, b6);
      n_baud = atoi (b6);

      /* If necessary, translate the baud rate */
      bd = bd_head;
      while (bd != NULL)
         {
         if (((addrs[0] == bd->zone) || (bd->zone == -1)) &&
            (addrs[2] == bd->net) && (node == bd->node))
            {
            n_baud = bd->baud;
            break;
            }
         bd = bd->next;
         }

      /* Fix the baud rate downward if necessary */
      if (n_baud > maxbaud)
         {
         n_baud = maxbaud;
         }

      /* Get rid of the newline at the end */
      p1 = p;
      while ((*p1) && (!isspace (*p1)))
         {
         ++p1;
         }
      *p1 = '\0';

      if (dphone)
         {
         strcpy (def_flags, p);
         def_baud = n_baud;
         def_cost = n_cost;
         }

      if (def)
         {
         strcpy (p, def_flags);
         n_baud = def_baud;
         n_cost = def_cost;
         }

      /* Put the results into the proper files */
      if (skip < 2)
         {
         /* Print out the results in NODELIST.BBS format */
         if (nodelist_bbs != NULL)
            {
            if (nodash)
               {
               undash (b5);
               }

            fprintf (nodelist_bbs, "%s%d %d %d %s %s %s\n", b1, n_num, n_cost, n_baud, b2, b5, b3);
            }

         /* Output to NODELIST.FON */
         if (nodelist_fon != NULL)
            {
            /* Convert to upper case */
            strupr (p);

            /* Print it out in NODELIST.FON format */
            fprintf (nodelist_fon, "%4d %4d %3s %3s %3s %4d %c %s\n",
                     addrs[2], node, pn1, pn2, pn3, n_baud, ntyp,
                     (*p == '\0') ? "-" : p);
            }

         if (nodelist_dat != -1)
            {
            memset (&new_node, 0, sizeof (struct _node));
            new_node.number = node;
            new_node.net = addrs[2];
            new_node.cost = n_cost;
            new_node.rate = (unsigned char) (n_baud / 300);
            new_node.realcost = n_cost;
            strncpy (new_node.name, b2, 33);
            p1 = new_node.name;
            while ((p1 = strchr (p1, '_')) != NULL)
               {
               *p1 = ' ';
               }

            strncpy (new_node.phone, b5, 39);
            strncpy (new_node.city, b3, 29);
            p1 = new_node.city;
            while ((p1 = strchr (p1, '_')) != NULL)
               {
               *p1 = ' ';
               }

            /* Stick in a password if there is one */
            pw = pw_head;
            while (pw != NULL)
               {
               if (((addrs[0] == pw->zone) || (pw->zone == -1)) &&
                  (addrs[2] == pw->net) && (node == pw->node))
                  {
                  strncpy (new_node.password, &(pw->pw[1]), 8);
                  break;
                  }
               pw = pw->next;
               }

            if (cur_addr_lev == 4)
               {
               new_node.hubnode = addrs[3];
               }
            else
               {
               new_node.hubnode = 0;
               }

            new_node.modem = 0;
            if (strstr (p, "HST"))
               {
               new_node.modem |= M_HST;
               }
            if (strstr (p, "PEP"))
               {
               new_node.modem |= M_PEP;
               }
            if (strstr (p, "V32"))
               {
               new_node.modem |= M_V32;
               }
            if (strstr (p, "V32b"))
               {
               new_node.modem |= M_V32B;
               }
            if (strstr (p, "H96"))
               {
               new_node.modem |= M_H96;
               }

            new_node.flags1 = 0;

            switch (dphone)
               {
               case 0:
                  break;

               case 1:
                  new_node.flags1 |= B_zone;
                  break;

               case 2:
                  new_node.flags1 |= B_region;
                  break;

               case 3:
                  new_node.flags1 |= B_host;
                  break;

               case 4:
                  new_node.flags1 |= B_hub;
                  break;

               case 5:
                  new_node.flags1 |= B_point;
                  break;
               }

            if (strstr (p, "CM"))
               {
               new_node.flags1 |= B_CM;
               }

            /* Stick in a CM flag is there is one done manually */
            cm = cm_head;
            while (cm != NULL)
               {
               if (((addrs[0] == cm->zone) || (cm->zone == -1)) &&
                  (addrs[2] == cm->net) && (node == cm->node))
                  {
                  new_node.flags1 |= B_CM;
                  break;
                  }
               cm = cm->next;
               }

            write (nodelist_dat, (char *) &new_node, sizeof (struct _node));
            }

         if (qnl_dat_bbs != -1)
            {
            memset (&qbbsnode, 0, sizeof (struct qdat));
            qbbsidx.zone = addrs[0];
            qbbsidx.net = addrs[2];
            qbbsidx.node = node;
            qbbsidx.nodetype = qbbsnode.nodetype = (char) dphone;
            if ((dphone == 1) && (b1[0] == 'R'))
               {
               qbbsidx.nodetype = qbbsnode.nodetype = 2;
               }

            write (qnl_idx_bbs, (char *) &qbbsidx, sizeof (struct qidx));

            qbbsnode.zone = addrs[0];
            qbbsnode.net = addrs[2];
            qbbsnode.node = node;

            strncpy (qbbsnode.name, b2, 20);
            p1 = qbbsnode.name;
            while ((p1 = strchr (p1, '_')) != NULL)
               {
               *p1 = ' ';
               }
            qbbsnode.namesize = (char) strlen (b2);
            if (qbbsnode.namesize > 20)
               qbbsnode.namesize = 20;

            strncpy (qbbsnode.city, b3, 40);
            p1 = qbbsnode.city;
            while ((p1 = strchr (p1, '_')) != NULL)
               {
               *p1 = ' ';
               }
            qbbsnode.citysize = (char) strlen (b3);
            if (qbbsnode.citysize > 40)
               qbbsnode.citysize = 40;

            strncpy (qbbsnode.phone, b5, 40);
            qbbsnode.phonesize = (char) strlen (b5);
            if (qbbsnode.phonesize > 40)
               qbbsnode.phonesize = 40;

            /* Stick in a password if there is one */
            pw = pw_head;
            while (pw != NULL)
               {
               if (((addrs[0] == pw->zone) || (pw->zone == -1)) &&
                  (addrs[2] == pw->net) && (node == pw->node))
                  {
                  strncpy (qbbsnode.password, &(pw->pw[1]), 8);
                  qbbsnode.passwordsize = (char) strlen (&(pw->pw[1]));
                  if (qbbsnode.passwordsize > 8)
                     qbbsnode.passwordsize = 8;
                  break;
                  }
               pw = pw->next;
               }

            qbbsnode.flags = 0;

            switch (dphone)
               {
               case 0:
                  break;

               case 1:
                  qbbsnode.flags |= B_zone;
                  break;

               case 2:
                  qbbsnode.flags |= B_region;
                  break;

               case 3:
                  qbbsnode.flags |= B_host;
                  break;

               case 4:
                  qbbsnode.flags |= B_hub;
                  break;
               }

            if (strstr (p, "CM"))
               {
               qbbsnode.flags |= B_CM;
               }

            /* Stick in a CM flag is there is one done manually */
            cm = cm_head;
            while (cm != NULL)
               {
               if (((addrs[0] == cm->zone) || (cm->zone == -1)) &&
                  (addrs[2] == cm->net) && (node == cm->node))
                  {
                  qbbsnode.flags |= B_CM;
                  break;
                  }
               cm = cm->next;
               }

            qbbsnode.baudrate = n_baud;
            qbbsnode.cost = n_cost;

            write (qnl_dat_bbs, (char *) &qbbsnode, sizeof (struct qdat));
            }

         if (nodelist_ext != -1)
            {
            memset (&bt_node, 0, sizeof (struct extrastuff));

            /* Stick in a password if there is one */
            pw = pw_head;
            while (pw != NULL)
               {
               if (((addrs[0] == pw->zone) || (pw->zone == -1)) &&
                  (addrs[2] == pw->net) && (node == pw->node))
                  {
                  strncpy (bt_node.password, &(pw->pw[1]), 8);
                  break;
                  }
               pw = pw->next;
               }

            bt_node.flags1 = 0;

            switch (dphone)
               {
               case 0:
                  break;

               case 1:
                  bt_node.flags1 |= B_zone;
                  break;

               case 2:
                  bt_node.flags1 |= B_region;
                  break;

               case 3:
                  bt_node.flags1 |= B_host;
                  break;

               case 4:
                  bt_node.flags1 |= B_hub;
                  break;
               }

            if (strstr (p, "CM"))
               {
               bt_node.flags1 |= B_CM;
               }

            /* Stick in a CM flag is there is one done manually */
            cm = cm_head;
            while (cm != NULL)
               {
               if (((addrs[0] == cm->zone) || (cm->zone == -1)) &&
                  (addrs[2] == cm->net) && (node == cm->node))
                  {
                  bt_node.flags1 |= B_CM;
                  break;
                  }
               cm = cm->next;
               }

            write (nodelist_ext, (char *) &bt_node, sizeof (struct extrastuff));
            }

         if (nodelist_dog != -1)
            {
            if (node <= 0)
               {
               if (seanet.numnodes)
                  {
                  write (netlist_dog, (char *) &seanet, sizeof (struct netls));
                  seanetcnt += sizeof (struct netls);
                  }

               memset (&seanet, 0, sizeof (struct netls));
               seanet.netnum = addrs[2];
               strncpy (seanet.netname, b2, 13);
               p1 = seanet.netname;
               while ((p1 = strchr (p1, '_')) != NULL)
                  {
                  *p1 = ' ';
                  }

               strncpy (seanet.netcity, b3, 39);
               p1 = seanet.netcity;
               while ((p1 = strchr (p1, '_')) != NULL)
                  {
                  *p1 = ' ';
                  }

               seanet.nodeptr = seanodecnt;
               }

            if (seacnt < 4000)
               {
               if (seaptr != NULL)
                  {
                  seaptr->idxnet = addrs[2];
                  seaptr->idxnode = node;
                  seaptr->netlptr = seanetcnt;
                  seaptr->nodelptr = seanodecnt;
                  ++seaptr;
                  }
               }
            else
               {
               seacnt = 3999;
               }

            memset (&seanode, 0, sizeof (struct nodels));
            seanode.nodenum = node;
            strncpy (seanode.nodename, b2, 13);
            p1 = seanode.nodename;
            while ((p1 = strchr (p1, '_')) != NULL)
               {
               *p1 = ' ';
               }

            strncpy (seanode.nodecity, b3, 39);
            p1 = seanode.nodecity;
            while ((p1 = strchr (p1, '_')) != NULL)
               {
               *p1 = ' ';
               }

            strncpy (seanode.nodephone, b5, 39);
            if (cur_addr_lev == 4)
               {
               seanode.havehub = 1;
               seanode.nodehub = addrs[3];
               }
            seanode.nodecost = n_cost;
            seanode.nodebaud = n_baud;
            write (nodelist_dog, (char *) &seanode, sizeof (struct nodels));
            ++seanet.numnodes;
            seanodecnt += sizeof (struct nodels);
            ++seacnt;
            }

         if (nodelist_sys != -1)
            {
            memset (&old_node, 0, sizeof (struct _oldnode));
            old_node.number = node;
            old_node.net = addrs[2];
            old_node.cost = n_cost;
            old_node.rate = n_baud;
            strncpy (old_node.name, b2, 19);
            p1 = old_node.name;
            while ((p1 = strchr (p1, '_')) != NULL)
               {
               *p1 = ' ';
               }

            strncpy (old_node.phone, b5, 39);
            strncpy (old_node.city, b3, 39);
            p1 = old_node.city;
            while ((p1 = strchr (p1, '_')) != NULL)
               {
               *p1 = ' ';
               }

            /* Stick in a password if there is one */
            pw = pw_head;
            while (pw != NULL)
               {
               if (((addrs[0] == pw->zone) || (pw->zone == -1)) &&
                  (addrs[2] == pw->net) && (node == pw->node))
                  {
                  strncpy (&(old_node.city[strlen (old_node.city) + 1]), pw->pw, 8);
                  break;
                  }
               pw = pw->next;
               }

            write (nodelist_sys, (char *) &old_node, sizeof (struct _oldnode));
            }

         if (nodelist_idx != -1)
            {
            if ((node == 0) && (dphone <= 2))
               {
               if ((ntyp != 'Z') || (!usezone))
                  n_out = -1;
               else
                  n_out = -2;
               }
            else
               {
               n_out = node;
               }

            write (nodelist_idx, (char *) &n_out, sizeof (short));
            i=(short) addrs[2];
            write (nodelist_idx, (char *) &i, sizeof (short));
            }

         if (dphone == 3)
            {
            seanet.havehost = 1;
            seanet.nethost = 0;
            }

         if ((ntyp == 'G') || (ntyp == 'I'))
            {
            seanet.havegate = 1;
            seanet.netgate = node;
            }
         }

      /* Print out the Nodelist.Prn file */
      if ((!this_list) && (nodelist_prn != NULL) && !def)
         {
         ++prn_pg_lines;

         if (dphone && (dphone <= 3) && (prn_pg_lines >= 40))
            {
            header (1);
            prn_pg_lines = 4;
            }

         if (prn_pg_lines >= 60)
            {
            header (1);
            prn_pg_lines = 4;
            }

         fprintf (nodelist_prn,
                  "%-10.10s %4d %-20.20s %-20.20s %-25.25s %-20.20s %4d %-20.20s\n",
                  b1, n_num, b2, orig_phone, b3, b4, n_baud, p);
         }

      /* Print out the Nodelist.Txt file */
      if ((!this_list) && (nodelist_txt != NULL) && !def)
         {
         ++txt_pg_lines;

         if (dphone && (dphone <= 3) && (txt_pg_lines >= 40))
            {
            header (0);
            txt_pg_lines = 4;
            }

         if (txt_pg_lines >= 60)
            {
            header (0);
            txt_pg_lines = 4;
            }

         fprintf (nodelist_txt,
                  "%-10.10s %4d %-20.20s %-17.17s %-19.19s %4d\n",
                  b1, n_num, b2, orig_phone, b3, n_baud);
         }

      /* Print out the Fidouser.$$1 file */
      if (fidouser_1 != NULL)
         {
         /* Should we just be on our way? */
         if ((myzone > 0) && (myzone != addrs[0]) && (udata == 2))
            {
            continue;
            }

         how_likely (p, dphone, addrs, node, n_baud);

         /* If this is a bad place, make it horrible */
         if (hold || pvt || def)
            likely = 100;

         p = b4;
         b1[1] = b2[1] = b3[1] = b5[1] = '\0';
         p1 = b1;
         while ((*p) && (*p != '_'))
            {
            *p1++ = *p++;
            }
         *p1 = '\0';

         if (*p != '\0')
            ++p;

         p1 = b2;
         while ((*p) && (*p != '_'))
            {
            *p1++ = *p++;
            }
         *p1 = '\0';

         if (*p != '\0')
            ++p;

         p1 = b3;
         while ((*p) && (*p != '_'))
            {
            *p1++ = *p++;
            }
         *p1 = '\0';

         p1 = b5;
         while ((*p) && (*p != '_'))
            {
            *p1++ = *p++;
            }
         *p1 = '\0';

         if (*p == '_')
            continue;

         b5[0] = (char) toupper (b5[0]);
         b3[0] = (char) toupper (b3[0]);
         b2[0] = (char) toupper (b2[0]);
         b1[0] = (char) toupper (b1[0]);
         strlwr (&b5[1]);
         strlwr (&b3[1]);
         strlwr (&b2[1]);
         strlwr (&b1[1]);
         if (b5[0] != '\0')
            {
            sprintf (buff, "%s, %s %s %s", b5, b1, b2, b3);
            }
         else
         if (b3[0] != '\0')
            {
            sprintf (buff, "%s, %s %s", b3, b1, b2);
            }
         else
         if (b2[0] != '\0')
            {
            sprintf (buff, "%s, %s", b2, b1);
            }
         else
         if (b1[0] != '\0')
            {
            sprintf (buff, "%s", b1);
            }
         else
            {
            continue;
            }
         if ((myzone > 0) && (myzone != addrs[0]))
            {
            sprintf (b5, "%d:%d", addrs[0], addrs[2]);
            }
         else
            {
            sprintf (b5, "%d", addrs[2]);
            }

         fprintf (fidouser_1, "%-40.40s%13.13s/%-6d%5d\n", buff, b5, node, likely);
         }
      }

/*   close (f); */
   fclose (f);
   if (fn != NULL)
      fn = fn->next;
}

void header (int which)
{
   if (which == 1)
      {
      if (prn_pagenum != 0)
         {
         fprintf (nodelist_prn, "\n");
         }
      ++prn_pagenum;
      fprintf (nodelist_prn, "%s %d\n", prn_first_line, prn_pagenum);
      fprintf (nodelist_prn, "Type       Node Board's Name         Phone Number         City                      Sysop's Name         Baud Flags\n");
      fprintf (nodelist_prn, "====       ==== ============         ============         ====                      ============         ==== =====\n\n");
      }
   else if (which == 0)
      {
      if (txt_pagenum != 0)
         {
         fprintf (nodelist_txt, "\n");
         }
      ++txt_pagenum;
      fprintf (nodelist_txt, "%s %d\n", txt_first_line, txt_pagenum);
      fprintf (nodelist_txt, "Type       Node Board's Name         Phone Number      City                Baud\n");
      fprintf (nodelist_txt, "====       ==== ============         ============      ====                ====\n");
      }
}

/*
char mybuf[4097];
char *myptr = mybuf;
int got_tok;
get_data (buffer, f)
char *buffer;
int f;
{
   char *s;
   char *save;
   int n;

   s = NULL;
   if (got_tok)
      {
      s = strtok (NULL, "\n");
      }

   got_tok = 0;
   if (s != NULL)
      {
      save = myptr;
      myptr = s + strlen (s) + 1;
      if (myptr < mybuf + 4097)
         strcpy (buffer, s);
      else
         {
         s = NULL;
         myptr = save;
         }
      }

   if (s == NULL)
      {
      strcpy (buffer, myptr);
      if ((n = read (f, mybuf, 4096)) <= 0)
         return (1);

      mybuf[n] = '\0';

      myptr = mybuf;
      s = strtok (myptr, "\n");
      if (s == NULL)
         return (1);

      strcat (buffer, s);
      myptr = s + strlen (s) + 1;
      }

   got_tok = 1;
   return (0);
}
*/

                                                                                                                                                                                                  parselist/report.c                                                                                     644      62      62         5044  5246664514  13146  0                                                                                                    ustar   louis                           other                                                                                                                                                                                                                  /*
                              Nodelist Parser

              This module was originally written by Bob Hartman
                       Sysop of FidoNet node 1:104/501

 This program source code is being released with the following provisions:

 1.  You are  free to make  changes to this source  code for use on your own
 machine,  however,  altered source files may not be distributed without the
 consent of Spark Software.

 2.  You may distribute "patches"  or  "diff" files for any changes that you
 have made, provided that the "patch" or "diff" files are also sent to Spark
 Software for inclusion in future releases of the entire package.   A "diff"
 file for the source archives may also contain a compiled version,  provided
 it is  clearly marked as not  being created  from the original source code.
 No other  executable  versions may be  distributed without  the  consent of
 Spark Software.

 3.  You are free to include portions of this source code in any program you
 develop, providing:  a) Credit is given to Spark Software for any code that
 may is used, and  b) The resulting program is free to anyone wanting to use
 it, including commercial and government users.

 4.  There is  NO  technical support  available for dealing with this source
 code, or the accompanying executable files.  This source  code  is provided
 as is, with no warranty expressed or implied (I hate legalease).   In other
 words, if you don't know what to do with it,  don't use it,  and if you are
 brave enough to use it, you're on your own.

*/

#include <stdio.h>
#include <ctype.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <time.h>

#include "types.h"
#include "externs.h"

void
size_report ()
{
   printf ("Network Size Report:\n\n");
   printf ("Total Nodes Processed        = %d\n", nnodes);
   printf ("Nodes Deleted (Down)         = %d\n", ndown);
   printf ("Nodes ReDirected to Host/Hub = %d\n", nredirect);
   printf ("---------------------------------------\n");
   nnodes = nnodes - ndown - nredirect;
   printf ("Total Nodes Open for mail    = %d\n", nnodes);
   printf ("Zone Coordinators Listed     = %d\n", nzones);
   printf ("Regional Coordinators Listed = %d\n", nregions);
   printf ("Network Coordinators Listed  = %d\n", nnets);
   printf ("Hub Coordinators Listed      = %d\n", nhubs);
   printf ("=======================================\n");
   nnodes = nnodes - nzones - nregions - nnets - nhubs;
   printf ("Total Independent Nodes      = %d\n", nnodes);
   if (npoints)
      printf ("Total Points                 = %d\n", npoints);
   printf ("\n");
}


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            parselist/types.h                                                                                      644      62      62        16434  5246664514  13031  0                                                                                                    ustar   louis                           other                                                                                                                                                                                                                  /*
                              Nodelist Parser

              This module was originally written by Bob Hartman
                       Sysop of FidoNet node 1:104/501

 This program source code is being released with the following provisions:

 1.  You are  free to make  changes to this source  code for use on your own
 machine,  however,  altered source files may not be distributed without the
 consent of Spark Software.

 2.  You may distribute "patches"  or  "diff" files for any changes that you
 have made, provided that the "patch" or "diff" files are also sent to Spark
 Software for inclusion in future releases of the entire package.   A "diff"
 file for the source archives may also contain a compiled version,  provided
 it is  clearly marked as not  being created  from the original source code.
 No other  executable  versions may be  distributed without  the  consent of
 Spark Software.

 3.  You are free to include portions of this source code in any program you
 develop, providing:  a) Credit is given to Spark Software for any code that
 may is used, and  b) The resulting program is free to anyone wanting to use
 it, including commercial and government users.

 4.  There is  NO  technical support  available for dealing with this source
 code, or the accompanying executable files.  This source  code  is provided
 as is, with no warranty expressed or implied (I hate legalease).   In other
 words, if you don't know what to do with it,  don't use it,  and if you are
 brave enough to use it, you're on your own.

*/

typedef struct SC {
   int zone;
   int net;
   int node;
   char *script;
   struct SC *next;
} SCTR, *SCTRP;

typedef struct PW {
   int zone;
   int net;
   int node;
   char *pw;
   struct PW *next;
} PWTR, *PWTRP;

typedef struct PH {
   int zone;
   int net;
   int node;
   char *num;
   struct PH *next;
} PHTR, *PHTRP;

typedef struct BD {
   int zone;
   int net;
   int node;
   int baud;
   struct BD *next;
} BDTR, *BDTRP;

typedef struct DL {
   char *mstr;
   int mlen;
   char *pre;
   char *post;
   struct DL *next;
} DLTR, *DLTRP;

typedef struct CO {
   char *mstr;
   int mlen;
   int cost;
   int baud;
   struct CO *next;
} COTR, *COTRP;

typedef struct FN {
   char *fname;
   int private;
   struct FN *next;
} FNLST, *FNLSTP;

typedef struct ET {
   int zone;
   int net;
   int node;
   char etype;
   struct ET *next;
} ETTR, *ETTRP;

typedef struct CM {
   int zone;
   int net;
   int node;
   struct CM *next;
} CMTR, *CMTRP;

  struct _oldnode {
    int number;         /* node number */
    int net;            /* net number */
    int cost;           /* cost per minute to call */
    int rate;           /* baud rate */
    char name[20];          /* node name */
    char phone[40];         /* phone number */
    char city[40];          /* city and state */
   };

  struct _node {
    short  net;               /* net number */
    short  number;           /* node number, */
    short  cost;              /* cost per minute to call */
    char name[34];         /* node name */
    char phone[40];        /* phone number */
    char city[30];         /* city and state, */

    char password[8];      /* warning, not necessarily null terminated */
    short  realcost;        /* phone company's charge */
    short  hubnode;          /* node # of this node's hub or 0 if none */
    unsigned char rate;    /* actual baud rate divided by 300 */
    char modem;              /* modem type code (see below) */
    unsigned short flags1;   /* set of flags (see below) */
    short  reserved;         /* reserved */
   };

#ifndef OS2
#define BIGSIZE 8192
#endif

/*------------------------------------------------------------------------*/
/* Values for the `flags1' field                                          */
/*------------------------------------------------------------------------*/
#define B_hub      0x0001  /* node is a net hub       0000 0000 0000 0001 */
#define B_host     0x0002  /* node is a net host      0000 0000 0000 0010 */
#define B_region   0x0004  /* node is region coord    0000 0000 0000 0100 */
#define B_zone     0x0008  /* node is a zone coord    0000 0000 0000 1000 */
#define B_CM       0x0010  /* runs continuous mail    0000 0000 0001 0000 */
#define B_ores1    0x0020  /* reserved for Opus       0000 0000 0010 0000 */
#define B_ores2    0x0040  /* reserved for Opus       0000 0000 0100 0000 */
#define B_ores3    0x0080  /* reserved for Opus       0000 0000 1000 0000 */
#define B_ores4    0x0100  /* reserved for Opus       0000 0001 0000 0000 */
#define B_ores5    0x0200  /* reserved for Opus       0000 0010 0000 0000 */
#define B_res1     0x0400  /* reserved for non-Opus   0000 0100 0000 0000 */
#define B_res2     0x0800  /* reserved for non-Opus   0000 1000 0000 0000 */
#define B_point    0x1000  /* reserved for non-Opus   0001 0000 0000 0000 */
#define B_res4     0x2000  /* reserved for non-Opus   0010 0000 0000 0000 */
#define B_res5     0x4000  /* reserved for non-Opus   0100 0000 0000 0000 */
#define B_res6     0x8000  /* reserved for non-Opus   1000 0000 0000 0000 */

/*------------------------------------------------------------------------*/
/* Values for the `modem' field                                           */
/*------------------------------------------------------------------------*/
#define M_HST      0x01    /* node uses an HST                  0000 0001 */
#define M_PEP      0x02    /* node uses a PEP modem             0000 0010 */
#define M_V32      0x04    /* node uses a V.32 modem            0000 0100 */
#define M_V32B     0x08    /* node uses a V.32b modem           0000 1000 */
#define M_H96      0x10    /* node uses a Hayes V9600           0001 0000 */

/*--------------------------------------------------------------------------*/
/* Nodelist.Idx                                                             */
/* (File is terminated by EOF)                                              */
/*--------------------------------------------------------------------------*/
struct _ndi {
      int   node;          /* node number  */
      int   net;           /* net number   */
};

/* SEAdog NETLIST.DOG format */
struct netls {
   int netnum;
   char netname[14];
   char netcity[40];
   int havehost;
   int nethost;
   int havegate;
   int netgate;
   long nodeptr;
   int numnodes;
};

/* SEAdog NODELIST.DOG format */
struct nodels {
   int nodenum;
   char nodename[14];
   char nodecity[40];
   char nodephone[40];
   int havehub;
   int nodehub;
   int nodecost;
   int nodebaud;
};

/* SEAdog INDEX.DOG format */
struct nidxs {
   int idxnet;
   int idxnode;
   long netlptr;
   long nodelptr;
   long idxspace;
};

/* Things most nodelists don't contain, but Binkley likes to have */
struct extrastuff {
   char password[8];
   unsigned int flags1;
   char extra[6]; /* for future expansion */
};

/* QuickBBS v2.01 QNL_IDX.BBS format */
struct qidx {
   int zone;
   int net;
   int node;
   char nodetype;
};

/* QuickBBS v2.01 QNL_DAT.BBS format */
struct qdat {
   char nodetype;
   int zone;
   int net;
   int node;
   char namesize;
   char name[20];
   char citysize;
   char city[40];
   char phonesize;
   char phone[40];
   char passwordsize;
   char password[8];
   unsigned int flags;
   int baudrate;
   int cost;
};

/* Used for low-level I/O routines */
typedef struct {
   char far *wbuff;
   char far *wptr;
   unsigned int wsize;
} WBUFFER, *WBUFFPTR;

                                                                                                                                                                                                                                    parselist/parsecfg.o                                                                                   644      62      62        47650  5263377430  13467  0                                                                                                    ustar   louis                           other                                                                                                                                                                                                                             L      `
      r Processing Configuration File '%s'
 publist PUBLIST statement not supported
 cleanup CLEANUP statement not supported
 ozone OZONE statement not supported
 addr ADDR statement not supported
 points POINTS statement not supported
 index INDEX statement not supported
 sindex SINDEX statement not supported
 fidoprn fidotxt nofidolist noindex nopoints seadog gated fido opus binkley complete version7 newopus version6 oldopus version5 tbbslist binklist quickbbslist igate ogate gate hub include Continuing Processing on File '%s'
 comments nocomments usezone report noreport dash nodash nonodelist nodelist nouserlist userlist interlist node %d:%d/%d %d/%d route noroute country %s mylist pvtlist maxbaud phone %d:%d/%d %s %d/%d %s password cm baud %d:%d/%d %d %d/%d %d dial end cost %d %d %s %d %d
 Cannot decipher line:
%s UWVSh    uED  uh   } tHjj@{UE    3eC    C       X    } tHj9j@-URE    C    C       X    ujh  v  j;h  t    =   t&      PF> t
A$u>;t    B$u> tjh&   Vmu
h.      jhO   VOuhW      jhx   V/uh~   njh   Vuh   Rjh   Vuh   6jh   Vuh   jh  Vuh  jh3  Vu       jh;  Vsu       ej
hC  VOu                7jhN  Vu        jhV  Vu        jh_  Vtjhf  Vu       jhl  Vt<jhq  Vt(jhv  Vwtjh~  Vcu        Ujh  V?u       1jh  Vtjh  Vu       jh  Vtjh  Vu       jh  Vu       jh  Vu       yjh  Vcu       Ujh  V?u@j1ǍGPGPWFPGIG    =           jh  Vu(jǍGPGPWFPGO몐jh  Vu,jǍGPGPWFPGGkjh  VouTjaǍGPGPWFPJGHG    =     u=        x=    jh  Vut~~ t#V    PG? t
A$u? t!    ÊPG? t
C$t uuQuh    jh  Vu       qj
h  V[u        Mjh&  V7u       )jh.  Vu       jh5  Vu        jh>  Vu        jhC  Vu       j
hJ  Vu        ujhU  V_u       Qj
h^  V;u        -jhi  Vu       	j	hr  Vu       jh|  VuPh    h    h    h  ^S    h    h    h  Sjh  Vku       ]jh  VGu        9jh  V#uh    h  FP		jh  VuHjj@Ph  FP3C    C    jh  Vu<jj@}Ph  FPi3_Bjh  VGuj
j FP3    .jh  V   jjCPSUR{WSh  Vt    suWh  VC    =     u        X    jh  Vw   jejYC@PSUR{WSh  V7tC@PuWh  V    C !sC    =     u        X    jh  VuPjÍCPCPSFPC    =     u        X    ujh  V_   jMÍSURSUR{WSh  V'tuuWh  V    C    =     u
    
    X    jh  V  FPh    ujh      j;h  }t      ъB
FA$t> ujh  VC\  > t!    ъBG? t
A$u?;_? VjjjCjCGA? t    B$t ? t!    ъBG? t
A$uK	GA? t?/t    B$t K? t0    B$u GGA? t    B$t 0;HCC    =     u        X    5j    0    HCC    jCjC    =     t%        PG? t
A$uK	GA? t?/t    B$t h    s(K? t0    B$u GGA? t    B$t ? t!    PG? t
A$u    GA? t?/t    B$t     ? t.    B$uGGA? t    B$t =     u	    	    X    Ajh
  V+  Vh    h    EPh  h   ujV   j;Vt  jh  V   > t!    ъBG? t
A$u?;t? tj{joUSC    CPCP3h  WHuUSC    0;HCC    =     u        X    j    0    HCh    CPh  h   C    C    =     u
    
    X    Vh  qqu`e[^_Ü  P         z  > q  > h  : _  : H  b C   >    5  & !  o   o       >   >   :   :   b             X    =    7    &          b          &                               v    h   Y    =                    o         ~   t   n   c    V    9  o 2  o '                            `    H    *                                    z    s    c    ^    N   I   5    /    "              a   b       b                       w   n   ^  
 G    9    3    &         
        a   b       b                     r   i   _   V   F  b @    2  a $  b                                         b         s    e    _    A    7  b .    #        	          b       o           h           h         |  b v    q  ` l  _ c  a Q  b H    C  a >  ` 9  _ -    '      U 	        
  U 
    
    
  U 
    
    
  N 
    
    
  N y
    s
    b
  G U
    O
    >
  G 1
    +
    
  @ 
    
    	  @ 	    	    	  < 	    	    	  5 	    	    	  5 }	    w	    j	    7	    	              #   #         
             r  
 [    M    G    6  
                  
                           u    o    ^    Q    K    :    -    '                                                                q    k    ]    W    F    9    3    %                                                            r    e    _    N    I    =    7    -    !                                                                    v    N    I    ?    9    *    %                                                u    e    `    J    B                 d       *   d       5          W          i                                                            !         D         a         }                                                               
         =         p                                                                                                                              '         2         ;         F         Q         Z         d         o         y                                                                                          I         {                                    W                                    "         6         A         g         q                                                               %         I         w                                                                        C         L         V         |                                             	         	         '	         Q	         e	         o	         z	         	         	         	         	         
         %
         .
         8
         e
         
         
         
                  K         |                                    /         g                                              W                                             $         C         n                                    ?         P         }                                                      0         V         ^         ~     8      D 2 8      D 3 A      D A A               D D \               D F l      D H r               D I ~      D J       D K       D L                D M       D N       D O                D P       D Q       D S       D U       D V       D W       D X       D Y       D Z       D [       D \       D ]       D ^       D `                       D b "               D c 5      D e 8      D f =               D h \      D i ]      D k l      D n                D p       D q       D s       D u       D v       D x       D z       D {       D }       D        D        D        D        D        D        D  ,      D  1      D  4      D  H      D  U      D  \      D  p               D  z      D        D                 D        D        D        D        D        D        D                 D        D        D                 D        D        D  D               D  N      D  T      D        D        D        D                 D        D        D                  D  
      D        D  8  %             D  B      D  H      D  \  /             D  f      D  l      D    8             D        D        D    A             D        D        D        D    K             D        D        D    U             D        D        D        D  (      D  =      D  A      D  D      D  X      D  d      D  y      D 	}      D       D       D       D       D       D       D       D       D   ^             D       D       D       D  	      D 	      D !	      D "	      D $,	      D %.	      D 'D	      D (E	      D )T	      D +W	      D ,f	      D -n	      D /t	      D 1	  b             D 2	      D 4	      D 6	      D 7	      D 9	      D ;	  l             D <	      D >	      D @	  u             D A	      D C
      D E
      D F"
      D H(
      D J<
               D KF
      D ML
      D O`
      D Pj
      D Rp
      D T
               D U
      D W
      D Y
      D Z
      D \
      D ^
               D _
      D a
      D c
      D d
      D f       D h      D i      D k$      D m8                                          D oa      D pk      D u      D w      D y               D z      D |      D ~      D       D       D                D       D        D       D        D ,      D >      D H      D O      D V      D \      D \      D p      D |      D       D       D       D       D       D                         D       D       D       D        D       D 0      D 8      D M      D T               D ]      D c      D h               D p      D v      D |      D       D       D       D       D       D       D                D       D                D       D       D                D $      D *      D 0      D 0      D D      D P      D e      D l               D u      D {      D                 D       D       D       D       D       D       D       D       D                D       D       D                D        D &      D ,      D D                        D U      D r      D w      D       D       D       D       D       D       D 
      D       D       D       D       D       D '      D 4      D 6      D 8      D >      D S      D V      D  l      D !m      D #|      D $      D &      D '      D (      D *      D +      D 1      D 3      D 5      D 6      D 7      D :      D ;      D <                D >      D ?      D B  )             D D      D E      D G$      D H0      D I6      D JL      D KS      D L`      D Nm      D Or      D Q      D R      D T      D U      D W      D X      D Y      D Z  -             D \      D ]      D c      D e      D g      D h      D i      D l      D n,      D o-      D q<  5             D rA      D tD      D uJ      D vd      D xg  B             D yl      D       D       D       D       D       D       D       D       D       D       D       D       D       D   P             D 	      D "      D 1      D 4      D L      D N      D d      D e      D t      D ~      D       D       D       D       D       D       D       D       D   [             D       D       D   d             D        D       D       D       D       D 4      D O      D V      D ]      D f      D l      D p      D x      D ~      D       D       D   h             D   p  $   8                                 @        @        @        @        @        @        @        @             @        @        @      
  @            A       r                                   \       p                     0           (     4  gcc2_compiled. /home/louis/parselist/ parsecfg.c int:t1=r1;-2147483648;2147483647; char:t2=r2;0;127; long int:t3=r1;-2147483648;2147483647; unsigned int:t4=r1;0;-1; long unsigned int:t5=r1;0;-1; short int:t6=r1;-32768;32767; long long int:t7=r1;0;-1; short unsigned int:t8=r1;0;65535; long long unsigned int:t9=r1;0;-1; signed char:t10=r1;-128;127; unsigned char:t11=r1;0;255; float:t12=r1;4;0; double:t13=r1;8;0; long double:t14=r1;8;0; void:t15=15 size_t:t4 fpos_t:t3 __FILE:T16=s40_flags:1,0,32;_gptr:17=*2,32,32;\ _egptr:17,64,32;_eback:17,96,32;_pbase:17,128,32;\ _pptr:17,160,32;_epptr:17,192,32;_base:17,224,32;\ _ebuf:17,256,32;_chain:18=*19=xsstreambuf:,288,32;; FILE:t16 ssize_t:t1 time_t:t3 clock_t:t3 ptrdiff_t:t1 pid_t:t1 uid_t:t8 gid_t:t8 dev_t:t8 ino_t:t5 mode_t:t8 umode_t:t8 nlink_t:t8 daddr_t:t1 off_t:t3 u_char:t11 u_short:t8 u_int:t4 u_long:t5 unchar:t11 ushort:t8 uint:t4 ulong:t5 caddr_t:t17 cc_t:t11 speed_t:t4 tcflag_t:t5 fd_set:t5 ustat:T20=s20f_tfree:1,0,32;f_tinode:5,32,32;\ f_fname:21=ar1;0;5;2,64,48;f_fpack:21,112,48;; stat:T22=s64st_dev:8,0,16;__pad1:8,16,16;\ st_ino:5,32,32;st_mode:8,64,16;st_nlink:8,80,16;\ st_uid:8,96,16;st_gid:8,112,16;st_rdev:8,128,16;\ __pad2:8,144,16;st_size:3,160,32;st_blksize:5,192,32;\ st_blocks:5,224,32;st_atime:3,256,32;__unused1:5,288,32;\ st_mtime:3,320,32;__unused2:5,352,32;st_ctime:3,384,32;\ __unused3:5,416,32;__unused4:5,448,32;__unused5:5,480,32;; tm:T23=s36tm_sec:1,0,32;tm_min:1,32,32;\ tm_hour:1,64,32;tm_mday:1,96,32;tm_mon:1,128,32;\ tm_year:1,160,32;tm_wday:1,192,32;tm_yday:1,224,32;\ tm_isdst:1,256,32;; wchar_t:t3 div_t:T24=s8quot:1,0,32;rem:1,32,32;; div_t:t24 ldiv_t:T25=s8quot:3,0,32;rem:3,32,32;; ldiv_t:t25 __compar_fn_t:t26=*27=f1 SC:T28=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;script:17,96,32;next:29=*28,128,32;; SCTR:t28 SCTRP:t29 PW:T30=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;pw:17,96,32;next:31=*30,128,32;; PWTR:t30 PWTRP:t31 PH:T32=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;num:17,96,32;next:33=*32,128,32;; PHTR:t32 PHTRP:t33 BD:T34=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;baud:1,96,32;next:35=*34,128,32;; BDTR:t34 BDTRP:t35 DL:T36=s20mstr:17,0,32;mlen:1,32,32;\ pre:17,64,32;post:17,96,32;next:37=*36,128,32;; DLTR:t36 DLTRP:t37 CO:T38=s20mstr:17,0,32;mlen:1,32,32;\ cost:1,64,32;baud:1,96,32;next:39=*38,128,32;; COTR:t38 COTRP:t39 FN:T40=s12fname:17,0,32;private:1,32,32;\ next:41=*40,64,32;; FNLST:t40 FNLSTP:t41 ET:T42=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;etype:2,96,8;next:43=*42,128,32;; ETTR:t42 ETTRP:t43 CM:T44=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;next:45=*44,96,32;; CMTR:t44 CMTRP:t45 _oldnode:T46=s116number:1,0,32;net:1,32,32;\ cost:1,64,32;rate:1,96,32;name:47=ar1;0;19;2,128,160;\ phone:48=ar1;0;39;2,288,320;city:48,608,320;; _node:T49=s128net:6,0,16;number:6,16,16;\ cost:6,32,16;name:50=ar1;0;33;2,48,272;\ phone:48,320,320;city:51=ar1;0;29;2,640,240;\ password:52=ar1;0;7;2,880,64;realcost:6,944,16;\ hubnode:6,960,16;rate:11,976,8;modem:2,984,8;\ flags1:8,992,16;reserved:6,1008,16;; _ndi:T53=s8node:1,0,32;net:1,32,32;; netls:T54=s84netnum:1,0,32;netname:55=ar1;0;13;2,32,112;\ netcity:48,144,320;havehost:1,480,32;nethost:1,512,32;\ havegate:1,544,32;netgate:1,576,32;nodeptr:3,608,32;\ numnodes:1,640,32;; nodels:T56=s116nodenum:1,0,32;nodename:55,32,112;\ nodecity:48,144,320;nodephone:48,464,320;havehub:1,800,32;\ nodehub:1,832,32;nodecost:1,864,32;nodebaud:1,896,32;; nidxs:T57=s20idxnet:1,0,32;idxnode:1,32,32;\ netlptr:3,64,32;nodelptr:3,96,32;idxspace:3,128,32;; extrastuff:T58=s20password:52,0,64;flags1:4,64,32;\ extra:21,96,48;; qidx:T59=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;nodetype:2,96,8;; qdat:T60=s140nodetype:2,0,8;zone:1,32,32;\ net:1,64,32;node:1,96,32;namesize:2,128,8;\ name:47,136,160;citysize:2,296,8;city:48,304,320;\ phonesize:2,624,8;phone:48,632,320;passwordsize:2,952,8;\ password:52,960,64;flags:4,1024,32;baudrate:1,1056,32;\ cost:1,1088,32;; WBUFFER:T61=s12wbuff:17,0,32;wptr:17,32,32;\ wsize:4,64,32;; WBUFFER:t61 WBUFFPTR:t62=*61 direct:T63=s268d_ino:3,0,32;d_off:3,32,32;\ d_reclen:8,64,16;d_name:64=ar1;0;255;2,80,2048;; DIR:T65=s16dd_fd:1,0,32;dd_loc:1,32,32;\ dd_size:1,64,32;dd_buf:66=*63,96,32;; DIR:t65 find_t:T67=s256name:64,0,2048;; _parse_config _fopen _printf _mymalloc _strupr _fn _t_buff _fgets _strchr ___ctype_b _strncasecmp _fidoprn _fidotxt _do_index _do_points _out_type _version7 _version6 _version5 _sealist _binkley _quickbbs _get_addr _et_head _et _comments _usezone _doreport _nodash _nlist _udata _mynode _mynet _myzone _sscanf _rdata _country _strtol _maxbaud _ph_head _ph _strlwr _pw_head _pw _cm_head _cm _bd_head _bd _t_str _strcpy _dl_head _dl _strcat _intl_pre_dl _intl_post_dl _intl_cost _co_head _co _fclose parse_config:F15 filename:p17 mylist:p17 pvtlist:p17 f1:68=*16 tpw:r31 tph:r33 tbd:r35 tdl:r37 tco:r39 tet:r43 tcm:r45 tfn:r41 foo1:1 p:r17 p1:r17 p2:r17 p3:r17             t_buff:S69=ar1;0;127;2                                                                                         parselist/misc.o                                                                                       644      62      62        23610  5263404523  12610  0                                                                                                    ustar   louis                           other                                                                                                                                                                                                                    d                       UUE9
}	Ð9

R+Pø   ÐUEU
@B8 t
8,t8
u @ÐUWS]S0߹ЍD  @ e[_

Not Enough Memory - Exiting

  UEu   PCuh   2j(ÐNODELIST.%03d 

Cannot find a valid NODELIST.xxx file - Exiting

   UWVS}]SS   ^Cx     uKKyn  9^     u3K9^~       uKn  h   hj^jSh   PDe[^_UE: t8-t
B@8 u ÐNODELIST.* NODELIST.%d  U$VS  M  Mf  fM  M1ۍuj VSEPg   E       EPh  V} ~1E    B$t EB$tEB$t
Eƀ    } ue[^  US]} uh    uu7h    &t     h    S1]%d:%d/%d %d/%d    UWVS}]uVSWh  ut(    VSh  ut    e[^_ U  E F   >    5  A '         -   &   &   *   &   '   &     r   _   Y    +    !                                ~    j    R    :    1                        b                  d       *   d       1          S          e                                                                     @         ]         y                                                                        9         l                                                                                                                              #         .         7         B         M         V         `         k         u         }                                                                                 E         w                                    S                                             :         B         b                                                      7         A         h         s                                                               G         P         Z         ~                                             	         	         &	         L	         |	         	         	         	         	         	         	         !
         5
         ?
         J
         n
         
         
         
         
         
         
                  5         l                                             L         {                                    7         m                                    '         T                                                      >         j                                              M         ]         i         z             D 6         D 7 	       D 9        D ;        D =        D A (       D C -     $                         @        @            0       D G 0       D H 9       D J <       D K B       D L Q       D M T       D N U     $   0                     @         @           X       D R X       D S `       D U `                D V f       D W y       D X |       D Y      $   X             @        @       	     `   
                    D ]        D ^        D a                 D         D         D     +             D     3             D b        D d    :             D e    B             D g        D h    H  $      U        Z  @       `        a        b        c        d            D l        D m ,      D r ,  p             D s 8  v             D v C             D x H      D z P               D  Y      D x Y      D  \      D  h      D  q      D  q      D  w      D  |      D        D        D        D        D        D        D |       D }                D ~       D      $                @        @             @           ,                    D        D        D        D        D        D        D        D        D        D      $               @         @                        D        D        D        D  2      D  4      D  8             D  H      D  O      D  T               D  f               D        D        D      $     )     ;     S     W  @      \       ]           D        D        D    ^        d             D        D    l             D        D    s             D        D        D    {  $                                       @                                                           D        D        D  3               D  ;      D  O      D  S               D  [    $                                       @      
  @        @                $  gcc2_compiled. /home/louis/parselist/ misc.c int:t1=r1;-2147483648;2147483647; char:t2=r2;0;127; long int:t3=r1;-2147483648;2147483647; unsigned int:t4=r1;0;-1; long unsigned int:t5=r1;0;-1; short int:t6=r1;-32768;32767; long long int:t7=r1;0;-1; short unsigned int:t8=r1;0;65535; long long unsigned int:t9=r1;0;-1; signed char:t10=r1;-128;127; unsigned char:t11=r1;0;255; float:t12=r1;4;0; double:t13=r1;8;0; long double:t14=r1;8;0; void:t15=15 size_t:t4 fpos_t:t3 __FILE:T16=s40_flags:1,0,32;_gptr:17=*2,32,32;\ _egptr:17,64,32;_eback:17,96,32;_pbase:17,128,32;\ _pptr:17,160,32;_epptr:17,192,32;_base:17,224,32;\ _ebuf:17,256,32;_chain:18=*19=xsstreambuf:,288,32;; FILE:t16 ssize_t:t1 time_t:t3 clock_t:t3 ptrdiff_t:t1 pid_t:t1 uid_t:t8 gid_t:t8 dev_t:t8 ino_t:t5 mode_t:t8 umode_t:t8 nlink_t:t8 daddr_t:t1 off_t:t3 u_char:t11 u_short:t8 u_int:t4 u_long:t5 unchar:t11 ushort:t8 uint:t4 ulong:t5 caddr_t:t17 cc_t:t11 speed_t:t4 tcflag_t:t5 fd_set:t5 ustat:T20=s20f_tfree:1,0,32;f_tinode:5,32,32;\ f_fname:21=ar1;0;5;2,64,48;f_fpack:21,112,48;; stat:T22=s64st_dev:8,0,16;__pad1:8,16,16;\ st_ino:5,32,32;st_mode:8,64,16;st_nlink:8,80,16;\ st_uid:8,96,16;st_gid:8,112,16;st_rdev:8,128,16;\ __pad2:8,144,16;st_size:3,160,32;st_blksize:5,192,32;\ st_blocks:5,224,32;st_atime:3,256,32;__unused1:5,288,32;\ st_mtime:3,320,32;__unused2:5,352,32;st_ctime:3,384,32;\ __unused3:5,416,32;__unused4:5,448,32;__unused5:5,480,32;; direct:T23=s268d_ino:3,0,32;d_off:3,32,32;\ d_reclen:8,64,16;d_name:24=ar1;0;255;2,80,2048;; DIR:T25=s16dd_fd:1,0,32;dd_loc:1,32,32;\ dd_size:1,64,32;dd_buf:26=*23,96,32;; DIR:t25 find_t:T27=s256name:24,0,2048;; tm:T28=s36tm_sec:1,0,32;tm_min:1,32,32;\ tm_hour:1,64,32;tm_mday:1,96,32;tm_mon:1,128,32;\ tm_year:1,160,32;tm_wday:1,192,32;tm_yday:1,224,32;\ tm_isdst:1,256,32;; wchar_t:t3 div_t:T29=s8quot:1,0,32;rem:1,32,32;; div_t:t29 ldiv_t:T30=s8quot:3,0,32;rem:3,32,32;; ldiv_t:t30 __compar_fn_t:t31=*32=f1 SC:T33=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;script:17,96,32;next:34=*33,128,32;; SCTR:t33 SCTRP:t34 PW:T35=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;pw:17,96,32;next:36=*35,128,32;; PWTR:t35 PWTRP:t36 PH:T37=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;num:17,96,32;next:38=*37,128,32;; PHTR:t37 PHTRP:t38 BD:T39=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;baud:1,96,32;next:40=*39,128,32;; BDTR:t39 BDTRP:t40 DL:T41=s20mstr:17,0,32;mlen:1,32,32;\ pre:17,64,32;post:17,96,32;next:42=*41,128,32;; DLTR:t41 DLTRP:t42 CO:T43=s20mstr:17,0,32;mlen:1,32,32;\ cost:1,64,32;baud:1,96,32;next:44=*43,128,32;; COTR:t43 COTRP:t44 FN:T45=s12fname:17,0,32;private:1,32,32;\ next:46=*45,64,32;; FNLST:t45 FNLSTP:t46 ET:T47=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;etype:2,96,8;next:48=*47,128,32;; ETTR:t47 ETTRP:t48 CM:T49=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;next:50=*49,96,32;; CMTR:t49 CMTRP:t50 _oldnode:T51=s116number:1,0,32;net:1,32,32;\ cost:1,64,32;rate:1,96,32;name:52=ar1;0;19;2,128,160;\ phone:53=ar1;0;39;2,288,320;city:53,608,320;; _node:T54=s128net:6,0,16;number:6,16,16;\ cost:6,32,16;name:55=ar1;0;33;2,48,272;\ phone:53,320,320;city:56=ar1;0;29;2,640,240;\ password:57=ar1;0;7;2,880,64;realcost:6,944,16;\ hubnode:6,960,16;rate:11,976,8;modem:2,984,8;\ flags1:8,992,16;reserved:6,1008,16;; _ndi:T58=s8node:1,0,32;net:1,32,32;; netls:T59=s84netnum:1,0,32;netname:60=ar1;0;13;2,32,112;\ netcity:53,144,320;havehost:1,480,32;nethost:1,512,32;\ havegate:1,544,32;netgate:1,576,32;nodeptr:3,608,32;\ numnodes:1,640,32;; nodels:T61=s116nodenum:1,0,32;nodename:60,32,112;\ nodecity:53,144,320;nodephone:53,464,320;havehub:1,800,32;\ nodehub:1,832,32;nodecost:1,864,32;nodebaud:1,896,32;; nidxs:T62=s20idxnet:1,0,32;idxnode:1,32,32;\ netlptr:3,64,32;nodelptr:3,96,32;idxspace:3,128,32;; extrastuff:T63=s20password:57,0,64;flags1:4,64,32;\ extra:21,96,48;; qidx:T64=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;nodetype:2,96,8;; qdat:T65=s140nodetype:2,0,8;zone:1,32,32;\ net:1,64,32;node:1,96,32;namesize:2,128,8;\ name:52,136,160;citysize:2,296,8;city:53,304,320;\ phonesize:2,624,8;phone:53,632,320;passwordsize:2,952,8;\ password:57,960,64;flags:4,1024,32;baudrate:1,1056,32;\ cost:1,1088,32;; WBUFFER:T66=s12wbuff:17,0,32;wptr:17,32,32;\ wsize:4,64,32;; WBUFFER:t66 WBUFFPTR:t67=*66 _cmp cmp:F1 a:p68=*62 b:p68 a:r68 b:r68 _nextfield nextfield:F17 p:p17 s:p17 p:r17 s:r17 _spec_word _strupr spec_word:F15 b1:p17 b1:r17 p1:r17   _mymalloc /usr/include/stdlib.h _malloc misc.c _printf _exit mymalloc:F17 s:p4 p:r17     _nfile_name _time _localtime _get_nl_list _nl _sprintf nfile_name:F15 fn:p69=*17 fn:r69 i:r1 t:3 tm1:r70=*28   _undash undash:F15 str:p17 p:r17 p1:r17   _filedir _sscanf ___ctype_b get_nl_list:F15 str:71=ar1;0;12;2 init_name:72=ar1;0;12;2 i:1 d:r1   _sbuf _ffirst _fnext _strcpy filedir:F2 name:p17 times:p1 ret_str:p17 mode:p1 ret_str:r17       _get_addr _myzone _mynet get_addr:F15 s:p17 z:p73=*1 net:p73 node:p73 z:r73 net:r73 node:r73 sbuf:G27                                                                                                                         parselist/data.o                                                                                       644      62      62        14647  5263377445  12614  0                                                                                                    ustar   louis                           other                                                                                                                                                                                                                        \       x	                                              %                                                            d       *   d       1          S          e                                                                     @         ]         y                                                                        9         l                                                               6         d         m         w                                                      0         9         C         i                                                      
                  >         R         \         g                                                                        %         R                                    
         8         i                                             T                                    	         D	         q	         	         	         	         
         :
         e
         
         
         
         6         G         t                                                                                                                      
                            +        4          A        L          W         `          l     $   v               (                  ,                  0                  4                  8                  <                  @                  D                  H   &          1     L   :          D     P   L          W     T   `          l     X   v                                                                                                                                                                                                                           ,          B        I          _        h          q        x                                                                                                                                                                             *        2          =        F          Q        Z          e        n          z                                             gcc2_compiled. /home/louis/parselist/ data.c int:t1=r1;-2147483648;2147483647; char:t2=r2;0;127; long int:t3=r1;-2147483648;2147483647; unsigned int:t4=r1;0;-1; long unsigned int:t5=r1;0;-1; short int:t6=r1;-32768;32767; long long int:t7=r1;0;-1; short unsigned int:t8=r1;0;65535; long long unsigned int:t9=r1;0;-1; signed char:t10=r1;-128;127; unsigned char:t11=r1;0;255; float:t12=r1;4;0; double:t13=r1;8;0; long double:t14=r1;8;0; void:t15=15 size_t:t4 fpos_t:t3 __FILE:T16=s40_flags:1,0,32;_gptr:17=*2,32,32;\ _egptr:17,64,32;_eback:17,96,32;_pbase:17,128,32;\ _pptr:17,160,32;_epptr:17,192,32;_base:17,224,32;\ _ebuf:17,256,32;_chain:18=*19=xsstreambuf:,288,32;; FILE:t16 SC:T20=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;script:17,96,32;next:21=*20,128,32;; SCTR:t20 SCTRP:t21 PW:T22=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;pw:17,96,32;next:23=*22,128,32;; PWTR:t22 PWTRP:t23 PH:T24=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;num:17,96,32;next:25=*24,128,32;; PHTR:t24 PHTRP:t25 BD:T26=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;baud:1,96,32;next:27=*26,128,32;; BDTR:t26 BDTRP:t27 DL:T28=s20mstr:17,0,32;mlen:1,32,32;\ pre:17,64,32;post:17,96,32;next:29=*28,128,32;; DLTR:t28 DLTRP:t29 CO:T30=s20mstr:17,0,32;mlen:1,32,32;\ cost:1,64,32;baud:1,96,32;next:31=*30,128,32;; COTR:t30 COTRP:t31 FN:T32=s12fname:17,0,32;private:1,32,32;\ next:33=*32,64,32;; FNLST:t32 FNLSTP:t33 ET:T34=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;etype:2,96,8;next:35=*34,128,32;; ETTR:t34 ETTRP:t35 CM:T36=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;next:37=*36,96,32;; CMTR:t36 CMTRP:t37 _oldnode:T38=s116number:1,0,32;net:1,32,32;\ cost:1,64,32;rate:1,96,32;name:39=ar1;0;19;2,128,160;\ phone:40=ar1;0;39;2,288,320;city:40,608,320;; _node:T41=s128net:6,0,16;number:6,16,16;\ cost:6,32,16;name:42=ar1;0;33;2,48,272;\ phone:40,320,320;city:43=ar1;0;29;2,640,240;\ password:44=ar1;0;7;2,880,64;realcost:6,944,16;\ hubnode:6,960,16;rate:11,976,8;modem:2,984,8;\ flags1:8,992,16;reserved:6,1008,16;; _ndi:T45=s8node:1,0,32;net:1,32,32;; netls:T46=s84netnum:1,0,32;netname:47=ar1;0;13;2,32,112;\ netcity:40,144,320;havehost:1,480,32;nethost:1,512,32;\ havegate:1,544,32;netgate:1,576,32;nodeptr:3,608,32;\ numnodes:1,640,32;; nodels:T48=s116nodenum:1,0,32;nodename:47,32,112;\ nodecity:40,144,320;nodephone:40,464,320;havehub:1,800,32;\ nodehub:1,832,32;nodecost:1,864,32;nodebaud:1,896,32;; nidxs:T49=s20idxnet:1,0,32;idxnode:1,32,32;\ netlptr:3,64,32;nodelptr:3,96,32;idxspace:3,128,32;; extrastuff:T50=s20password:44,0,64;flags1:4,64,32;\ extra:51=ar1;0;5;2,96,48;; qidx:T52=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;nodetype:2,96,8;; qdat:T53=s140nodetype:2,0,8;zone:1,32,32;\ net:1,64,32;node:1,96,32;namesize:2,128,8;\ name:39,136,160;citysize:2,296,8;city:40,304,320;\ phonesize:2,624,8;phone:40,632,320;passwordsize:2,952,8;\ password:44,960,64;flags:4,1024,32;baudrate:1,1056,32;\ cost:1,1088,32;; WBUFFER:T54=s12wbuff:17,0,32;wptr:17,32,32;\ wsize:4,64,32;; WBUFFER:t54 WBUFFPTR:t55=*54 pw_head:G23 _pw_head ph_head:G25 _ph_head bd_head:G27 _bd_head dl_head:G29 _dl_head co_head:G31 _co_head et_head:G35 _et_head cm_head:G37 _cm_head intl_cost:G1 _intl_cost maxbaud:G1 _maxbaud out_type:G1 _out_type rdata:G1 _rdata udata:G1 _udata nlist:G1 _nlist doreport:G1 _doreport nodash:G1 _nodash comments:G1 _comments version7:G1 _version7 version6:G1 _version6 version5:G1 _version5 binkley:G1 _binkley myzone:G1 _myzone sealist:G1 _sealist quickbbs:G1 _quickbbs fn_head:G32 _fn_head pw:G23 _pw ph:G25 _ph bd:G27 _bd dl:G29 _dl co:G31 _co et:G35 _et cm:G37 _cm fn:G33 _fn tfn:G33 _tfn intl_pre_dl:G43 _intl_pre_dl intl_post_dl:G43 _intl_post_dl t_str:G56=ar1;0;127;2 _t_str country:G57=ar1;0;9;2 _country mynet:G1 _mynet mynode:G1 _mynode nzones:G1 _nzones nregions:G1 _nregions nnets:G1 _nnets nhubs:G1 _nhubs ndown:G1 _ndown nredirect:G1 _nredirect nnodes:G1 _nnodes npoints:G1 _npoints likely:G1 _likely usezone:G1 _usezone fidoprn:G1 _fidoprn fidotxt:G1 _fidotxt do_index:G1 _do_index do_points:G1 _do_points nl:G58=ar1;0;999;2 _nl                                                                                          parselist/report.o                                                                                     644      62      62        16346  5263377546  13216  0                                                                                                    ustar   louis                           other                                                                                                                                                                                                                                    x      Network Size Report:

 Total Nodes Processed        = %d
 Nodes Deleted (Down)         = %d
 Nodes ReDirected to Host/Hub = %d
 ---------------------------------------
 Total Nodes Open for mail    = %d
 Zone Coordinators Listed     = %d
 Regional Coordinators Listed = %d
 Network Coordinators Listed  = %d
 Hub Coordinators Listed      = %d
 =======================================
 Total Independent Nodes      = %d
 Total Points                 = %d
 
    Uh    '5    h   5    h:   5    h]   h       +    +        Ph   5    h   5    h   5    h  5    h5  qhX  d    +    +    +    +        Ph  4=     t5    h  h  Ð                                                                            x    s    n    e    `    [    R    M    H    ?    :    4    /    )    #                	                                                     d       *   d       3          U          g                                                                     B         _         {                                                                        ;         n                                                                                                                              %         0         9         D         O         X         b         m         w                                                                                          G         y                                    U                                              4         X                                                                        &         U         ^         h                                                      $         -         7         ]                                                                        	         E	         N	         X	         |	         	         	         	         	         
         B
         l
         
         
         
         #         H         m                                    )         \                                    1         e         v                                             E                                                               "         N                                                        D .       D /                D 0                D 1                D 2                D 3       D 4 "      D 5 8      D 6 F  %             D 7 Y  -             D 8 l  7             D 9   >             D :       D ;       D <       D =   E             D >       D ?       D @   N  $     ^  gcc2_compiled. /home/louis/parselist/ report.c int:t1=r1;-2147483648;2147483647; char:t2=r2;0;127; long int:t3=r1;-2147483648;2147483647; unsigned int:t4=r1;0;-1; long unsigned int:t5=r1;0;-1; short int:t6=r1;-32768;32767; long long int:t7=r1;0;-1; short unsigned int:t8=r1;0;65535; long long unsigned int:t9=r1;0;-1; signed char:t10=r1;-128;127; unsigned char:t11=r1;0;255; float:t12=r1;4;0; double:t13=r1;8;0; long double:t14=r1;8;0; void:t15=15 size_t:t4 fpos_t:t3 __FILE:T16=s40_flags:1,0,32;_gptr:17=*2,32,32;\ _egptr:17,64,32;_eback:17,96,32;_pbase:17,128,32;\ _pptr:17,160,32;_epptr:17,192,32;_base:17,224,32;\ _ebuf:17,256,32;_chain:18=*19=xsstreambuf:,288,32;; FILE:t16 ssize_t:t1 time_t:t3 clock_t:t3 ptrdiff_t:t1 pid_t:t1 uid_t:t8 gid_t:t8 dev_t:t8 ino_t:t5 mode_t:t8 umode_t:t8 nlink_t:t8 daddr_t:t1 off_t:t3 u_char:t11 u_short:t8 u_int:t4 u_long:t5 unchar:t11 ushort:t8 uint:t4 ulong:t5 caddr_t:t17 cc_t:t11 speed_t:t4 tcflag_t:t5 fd_set:t5 ustat:T20=s20f_tfree:1,0,32;f_tinode:5,32,32;\ f_fname:21=ar1;0;5;2,64,48;f_fpack:21,112,48;; stat:T22=s64st_dev:8,0,16;__pad1:8,16,16;\ st_ino:5,32,32;st_mode:8,64,16;st_nlink:8,80,16;\ st_uid:8,96,16;st_gid:8,112,16;st_rdev:8,128,16;\ __pad2:8,144,16;st_size:3,160,32;st_blksize:5,192,32;\ st_blocks:5,224,32;st_atime:3,256,32;__unused1:5,288,32;\ st_mtime:3,320,32;__unused2:5,352,32;st_ctime:3,384,32;\ __unused3:5,416,32;__unused4:5,448,32;__unused5:5,480,32;; tm:T23=s36tm_sec:1,0,32;tm_min:1,32,32;\ tm_hour:1,64,32;tm_mday:1,96,32;tm_mon:1,128,32;\ tm_year:1,160,32;tm_wday:1,192,32;tm_yday:1,224,32;\ tm_isdst:1,256,32;; SC:T24=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;script:17,96,32;next:25=*24,128,32;; SCTR:t24 SCTRP:t25 PW:T26=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;pw:17,96,32;next:27=*26,128,32;; PWTR:t26 PWTRP:t27 PH:T28=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;num:17,96,32;next:29=*28,128,32;; PHTR:t28 PHTRP:t29 BD:T30=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;baud:1,96,32;next:31=*30,128,32;; BDTR:t30 BDTRP:t31 DL:T32=s20mstr:17,0,32;mlen:1,32,32;\ pre:17,64,32;post:17,96,32;next:33=*32,128,32;; DLTR:t32 DLTRP:t33 CO:T34=s20mstr:17,0,32;mlen:1,32,32;\ cost:1,64,32;baud:1,96,32;next:35=*34,128,32;; COTR:t34 COTRP:t35 FN:T36=s12fname:17,0,32;private:1,32,32;\ next:37=*36,64,32;; FNLST:t36 FNLSTP:t37 ET:T38=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;etype:2,96,8;next:39=*38,128,32;; ETTR:t38 ETTRP:t39 CM:T40=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;next:41=*40,96,32;; CMTR:t40 CMTRP:t41 _oldnode:T42=s116number:1,0,32;net:1,32,32;\ cost:1,64,32;rate:1,96,32;name:43=ar1;0;19;2,128,160;\ phone:44=ar1;0;39;2,288,320;city:44,608,320;; _node:T45=s128net:6,0,16;number:6,16,16;\ cost:6,32,16;name:46=ar1;0;33;2,48,272;\ phone:44,320,320;city:47=ar1;0;29;2,640,240;\ password:48=ar1;0;7;2,880,64;realcost:6,944,16;\ hubnode:6,960,16;rate:11,976,8;modem:2,984,8;\ flags1:8,992,16;reserved:6,1008,16;; _ndi:T49=s8node:1,0,32;net:1,32,32;; netls:T50=s84netnum:1,0,32;netname:51=ar1;0;13;2,32,112;\ netcity:44,144,320;havehost:1,480,32;nethost:1,512,32;\ havegate:1,544,32;netgate:1,576,32;nodeptr:3,608,32;\ numnodes:1,640,32;; nodels:T52=s116nodenum:1,0,32;nodename:51,32,112;\ nodecity:44,144,320;nodephone:44,464,320;havehub:1,800,32;\ nodehub:1,832,32;nodecost:1,864,32;nodebaud:1,896,32;; nidxs:T53=s20idxnet:1,0,32;idxnode:1,32,32;\ netlptr:3,64,32;nodelptr:3,96,32;idxspace:3,128,32;; extrastuff:T54=s20password:48,0,64;flags1:4,64,32;\ extra:21,96,48;; qidx:T55=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;nodetype:2,96,8;; qdat:T56=s140nodetype:2,0,8;zone:1,32,32;\ net:1,64,32;node:1,96,32;namesize:2,128,8;\ name:43,136,160;citysize:2,296,8;city:44,304,320;\ phonesize:2,624,8;phone:44,632,320;passwordsize:2,952,8;\ password:48,960,64;flags:4,1024,32;baudrate:1,1056,32;\ cost:1,1088,32;; WBUFFER:T57=s12wbuff:17,0,32;wptr:17,32,32;\ wsize:4,64,32;; WBUFFER:t57 WBUFFPTR:t58=*57 direct:T59=s268d_ino:3,0,32;d_off:3,32,32;\ d_reclen:8,64,16;d_name:60=ar1;0;255;2,80,2048;; DIR:T61=s16dd_fd:1,0,32;dd_loc:1,32,32;\ dd_size:1,64,32;dd_buf:62=*59,96,32;; DIR:t61 find_t:T63=s256name:60,0,2048;; _size_report _printf _nnodes _ndown _nredirect _nzones _nregions _nnets _nhubs _npoints size_report:F15                                                                                                                                                                                                                                                                                           parselist/names.o                                                                                      644      62      62        21015  5263377614  12767  0                                                                                                    ustar   louis                           other                                                                                                                                                                                                                    x          
            Sorting SysOp Name Data

 qsort Fidouser.$$1 /+1:41 /-61:5 /-41:13 /+55:6 r FIDOUSER.$$1 w FIDOUSER.LST 
Deleting Duplicate SysOp Names
 %d %d Unique SysOp Names Found in Network
   U<WVSh    5h   (hJ   hL   hY   h[   E         hh   ]̐Wjh    ttj(Sh    t        MȋEȹd   uuh   <   
=    Vh    mj(h    S]y5    h   DW;V2hL   %e[^_CM XP WZ MO WK WE DA UVS]uUu} u    p  
    @  =     ~    9
t
    Hzc~%z        B     zc           E}    h  S\u$h  SJuh  S8t
    	  h  St    dh  St    h  St    h  St    h  St    t   )))    e[^   j    N    D    >    8    +    %                                                                        ~    p    `    S    ;    1    (                                                            |    s    n    T    N    A    <    -    (            	                                                                   d       *   d       2          T          f                                                                     A         ^         z                                                                        :         m                                                                                                                              $         /         8         C         N         W         a         l         v         ~                                                                                 F         x                                    T                                             3         >         d         n                                                               "         F         t         }                                                               @         I         S         y                                             	         	         $	         N	         b	         l	         w	         	         	         	         	         
         "
         +
         5
         b
         
         
         
                  H         y                                    ,         d                                             T                                             !         @         k                                    <         M         z                                                      -         S         [         {            D 0        D 1        D 4                 D 6                 D :                 D =        D @       D A                D B       D C                         D E 8               D I L      D J R      D K j      D L z      D M       D N                D O                D P       D Q       D R                D S       D T                D U     $        @        @                                     D [       D ]       D _                D `       D c       D g &  !             D h 9      D k C      D l R      D n h      D o n      D r |      D u       D x   )             D |       D        D        D        D        D        D        D        D        D  $      D  6      D  =      D  L      D  S      D  W      D  n  1  $     @        F        P        ]        e        o  @      u  @        @        gcc2_compiled. /home/louis/parselist/ names.c int:t1=r1;-2147483648;2147483647; char:t2=r2;0;127; long int:t3=r1;-2147483648;2147483647; unsigned int:t4=r1;0;-1; long unsigned int:t5=r1;0;-1; short int:t6=r1;-32768;32767; long long int:t7=r1;0;-1; short unsigned int:t8=r1;0;65535; long long unsigned int:t9=r1;0;-1; signed char:t10=r1;-128;127; unsigned char:t11=r1;0;255; float:t12=r1;4;0; double:t13=r1;8;0; long double:t14=r1;8;0; void:t15=15 size_t:t4 fpos_t:t3 __FILE:T16=s40_flags:1,0,32;_gptr:17=*2,32,32;\ _egptr:17,64,32;_eback:17,96,32;_pbase:17,128,32;\ _pptr:17,160,32;_epptr:17,192,32;_base:17,224,32;\ _ebuf:17,256,32;_chain:18=*19=xsstreambuf:,288,32;; FILE:t16 ssize_t:t1 time_t:t3 clock_t:t3 ptrdiff_t:t1 pid_t:t1 uid_t:t8 gid_t:t8 dev_t:t8 ino_t:t5 mode_t:t8 umode_t:t8 nlink_t:t8 daddr_t:t1 off_t:t3 u_char:t11 u_short:t8 u_int:t4 u_long:t5 unchar:t11 ushort:t8 uint:t4 ulong:t5 caddr_t:t17 cc_t:t11 speed_t:t4 tcflag_t:t5 fd_set:t5 ustat:T20=s20f_tfree:1,0,32;f_tinode:5,32,32;\ f_fname:21=ar1;0;5;2,64,48;f_fpack:21,112,48;; stat:T22=s64st_dev:8,0,16;__pad1:8,16,16;\ st_ino:5,32,32;st_mode:8,64,16;st_nlink:8,80,16;\ st_uid:8,96,16;st_gid:8,112,16;st_rdev:8,128,16;\ __pad2:8,144,16;st_size:3,160,32;st_blksize:5,192,32;\ st_blocks:5,224,32;st_atime:3,256,32;__unused1:5,288,32;\ st_mtime:3,320,32;__unused2:5,352,32;st_ctime:3,384,32;\ __unused3:5,416,32;__unused4:5,448,32;__unused5:5,480,32;; tm:T23=s36tm_sec:1,0,32;tm_min:1,32,32;\ tm_hour:1,64,32;tm_mday:1,96,32;tm_mon:1,128,32;\ tm_year:1,160,32;tm_wday:1,192,32;tm_yday:1,224,32;\ tm_isdst:1,256,32;; wchar_t:t3 div_t:T24=s8quot:1,0,32;rem:1,32,32;; div_t:t24 ldiv_t:T25=s8quot:3,0,32;rem:3,32,32;; ldiv_t:t25 __compar_fn_t:t26=*27=f1 SC:T28=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;script:17,96,32;next:29=*28,128,32;; SCTR:t28 SCTRP:t29 PW:T30=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;pw:17,96,32;next:31=*30,128,32;; PWTR:t30 PWTRP:t31 PH:T32=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;num:17,96,32;next:33=*32,128,32;; PHTR:t32 PHTRP:t33 BD:T34=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;baud:1,96,32;next:35=*34,128,32;; BDTR:t34 BDTRP:t35 DL:T36=s20mstr:17,0,32;mlen:1,32,32;\ pre:17,64,32;post:17,96,32;next:37=*36,128,32;; DLTR:t36 DLTRP:t37 CO:T38=s20mstr:17,0,32;mlen:1,32,32;\ cost:1,64,32;baud:1,96,32;next:39=*38,128,32;; COTR:t38 COTRP:t39 FN:T40=s12fname:17,0,32;private:1,32,32;\ next:41=*40,64,32;; FNLST:t40 FNLSTP:t41 ET:T42=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;etype:2,96,8;next:43=*42,128,32;; ETTR:t42 ETTRP:t43 CM:T44=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;next:45=*44,96,32;; CMTR:t44 CMTRP:t45 _oldnode:T46=s116number:1,0,32;net:1,32,32;\ cost:1,64,32;rate:1,96,32;name:47=ar1;0;19;2,128,160;\ phone:48=ar1;0;39;2,288,320;city:48,608,320;; _node:T49=s128net:6,0,16;number:6,16,16;\ cost:6,32,16;name:50=ar1;0;33;2,48,272;\ phone:48,320,320;city:51=ar1;0;29;2,640,240;\ password:52=ar1;0;7;2,880,64;realcost:6,944,16;\ hubnode:6,960,16;rate:11,976,8;modem:2,984,8;\ flags1:8,992,16;reserved:6,1008,16;; _ndi:T53=s8node:1,0,32;net:1,32,32;; netls:T54=s84netnum:1,0,32;netname:55=ar1;0;13;2,32,112;\ netcity:48,144,320;havehost:1,480,32;nethost:1,512,32;\ havegate:1,544,32;netgate:1,576,32;nodeptr:3,608,32;\ numnodes:1,640,32;; nodels:T56=s116nodenum:1,0,32;nodename:55,32,112;\ nodecity:48,144,320;nodephone:48,464,320;havehub:1,800,32;\ nodehub:1,832,32;nodecost:1,864,32;nodebaud:1,896,32;; nidxs:T57=s20idxnet:1,0,32;idxnode:1,32,32;\ netlptr:3,64,32;nodelptr:3,96,32;idxspace:3,128,32;; extrastuff:T58=s20password:52,0,64;flags1:4,64,32;\ extra:21,96,48;; qidx:T59=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;nodetype:2,96,8;; qdat:T60=s140nodetype:2,0,8;zone:1,32,32;\ net:1,64,32;node:1,96,32;namesize:2,128,8;\ name:47,136,160;citysize:2,296,8;city:48,304,320;\ phonesize:2,624,8;phone:48,632,320;passwordsize:2,952,8;\ password:52,960,64;flags:4,1024,32;baudrate:1,1056,32;\ cost:1,1088,32;; WBUFFER:T61=s12wbuff:17,0,32;wptr:17,32,32;\ wsize:4,64,32;; WBUFFER:t61 WBUFFPTR:t62=*61 direct:T63=s268d_ino:3,0,32;d_off:3,32,32;\ d_reclen:8,64,16;d_name:64=ar1;0;255;2,80,2048;; DIR:T65=s16dd_fd:1,0,32;dd_loc:1,32,32;\ dd_size:1,64,32;dd_buf:66=*63,96,32;; DIR:t65 find_t:T67=s256name:64,0,2048;; _do_names _printf _system _fopen _nnodes _t_str _fgets _strncmp _fputs _strncpy _fclose _unlink do_names:F15 o1:r68=*16 o2:r68 b1:69=ar1;0;49;2   _how_likely _likely _myzone _strstr how_likely:F15 p:p17 dphone:p1 addrs:p70=*1 node:p1 n_baud:p1 p:r17 dphone:r1 addrs:r70                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    parselist/parselst                                                                                     755       0       0       341115  5264157200  13254  0                                                                                                    ustar   root                            system                                                                                                                                                                                                                 d  p     X  p                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Oc  -       ̀\	`-:   D$4	`  P `[   ̀r    $Revision: 1.33 $ parselst.cfg Revision 1.33 ParseLst - %s %s by Bob Hartman, SysOp of FidoNet Node 1:104/501
 Modified by George Peace and Bill Andrus, FidoNet Nodes 1:13/13 & 1:13/0
 This program is placed in the  Public Domain  as part of the BBS project.
 For information on BBS (Bit Bucket Software), contact 104/501 or 343/491.

 Don't understand %s

 Using EditNL to update Nodelist
 EditNL 
 1 
Sorting for INDEX.DOG
 INDEX.DOG Error opening INDEX.DOG - not generated
 Processing Completed Without Errors.

    U<WVS_  ER   E    E    1E E u_   Uc   Ug   U]؋h   U؊l   USVhm   h	` `SVh   h	` `h   h	` `hD  h	` `}      9]   U9/t	9-   Q 	`p   9   $D                                EiyW]  EUMuMu
Mur]  'j
j AP
 `p  Qh   `C9]} ~*h   `h  
 `h   `R  f  fTv  x|  v  } ~=v  W\  5x|  }H  x|  @    @    p  |  p  t|  p  p|  p  h|  p  |x  uuu5  =p   ~p  (p    =,p  u!=Xp   ~,p      ,p     x|  v  =x|   tj  =x|   u=r   t5r  _=r   t5r  _=r   t5r  o_=r  t5r  _=r  t5r  _=r  t5r  _=r  t5r  {_=r   t5r  _=r   t5r  _=r  t5r  6_= s  t5 s  _=s  t5s  _=r     =~   tjTh~  5r  
 `5r  _=~      h  e `hK  j5}  5~   `h  M	 `h  jAh   `r  t0}  P5~  5r  ?
 `5r  A_h   `h   `h   `=<p   tI  =r   tK  1e[^_w NODELIST.BBS Error opening output file
 NODELIST.FON Error opening NODELIST.FON - not generated
 FIDOUSER.$$1 Error opening FIDOUSER.$$1 - not generated
 NODELIST.DAT Error opening NODELIST.DAT - not generated
 NODELIST.IDX Error opening NODELIST.IDX - NODELIST.DAT not generated
 ParseLst 1:132/101 in Nashua, NH USA NODELIST.SYS Error opening NODELIST.SYS - not generated
 Error opening NODELIST.IDX - NODELIST.SYS not generated
 NODELIST.EXT Error opening NODELIST.EXT - not generated
 Error opening NODELIST.IDX - NODELIST.EXT not generated
 NODELIST.DOG Error opening NODELIST.DOG - not generated
 NETLIST.DOG Error opening NETLIST.DOG - NODELIST.DOG not generated
 Could not allocate space for INDEX.DOG - not generating
 QNL_DAT.BBS Error opening QNL_DAT.BBS - not generated
 QNL_IDX.BBS Error opening QNL_IDX.BBS - QNL_DAT.BBS not generated
 NODELIST.PRN NODELIST.TXT  UWVS=8p   t2ha  hc  _r  u!hp  _j_r      =0p   t-ha  h  :_r  uh  _r      =4p   t-ha  h  _r  uh  t_r      r  r  =Lp   =  h  G `h  jAh  _r  uh
  _  h6  
 `h  jAh6  _r  u-hC  _5r  _r     h   j hlv  _fnv   flv  rv  |  rv    H  Hv       h   hlv  5r  } `fE j]S5r  c `fEjS5r  L `r  r  r  =Pp   A  h   `h  jAh  c_r  uh  _  =r     h6   `h  jAh6  _r  u(h  Z_5r  _r  2fE j]S5r  e `fEjS5r  N `jtj hv  _v      w  w  |  w    H  HHw       jthv  5r   `r  r  =Tp     h	  } `h  jAh	  _r  uh 	  B_   =r     h6  1 `h  jAh6  _r  u(hL	  _5r  8_r  2fE j]S5r   `fEjS5r   `jj h  _|            jh  5r   `r  =\p     h	  G  `h  jAh	  _r  uh	  _   h	  
  `h  jAh	  _r  u1h	  _5r  _r  H  T   &jTj h~  _jTh~  5r    `h  jf_~  uh
  `_|      %~  |  r  r  =`p      h;
  %_h  jAh;
  _s  uhG
  _]hr
  _h  jAhr
  n_ s  u1h~
  _5s  _
 s  s  =t   t%ha  h
  _r  t
|  d   =t   t"ha  h
  _r  t
}  d   e[^_r Could not open Nodelist File '%s' - Exiting
 
Processing Nodelist File '%s'
 -- Page Bulletin Board Listing from %s %s %s %d

 
Adding Nodelist File '%s' to Zone %d
 zone 
Returning to finish file '%s'
 ZONE  REGION  region host hub point pvt hold Zone %2d, Region %2d, Net %5d IGATE  OGATE  GATE  HUB  %s%s%s %s%d %d %d %s %s %s
 - %4d %4d %3s %3s %3s %4d %c %s
 HST PEP V32 V32b H96 CM %-10.10s %4d %-20.20s %-20.20s %-25.25s %-20.20s %4d %-20.20s
 %-10.10s %4d %-20.20s %-17.17s %-19.19s %4d
 %s, %s %s %s %s, %s %s %s, %s %d:%d %d %-40.40s%13.13s/%-6d%5d
    U   WVSǅ8    h  x|  09_00 ux|  0h  _jl_x|  z}   2h	  w_0h   hs  _0s  Ѝs  Is  rO9:us  rB)  =-  yhs  h1  h}  _hs  hP  h|  _}   |   =r   t- u$||  5||  h}  hS  5r  /_=r   tI u@t  5t  h|  hS  5r  _5Xp  x|  0h[  U_x|  0}Wb_ǅ Xp  E}E   }}}}}8h0h   hs  '_H  ǅ(    ǅ,    ǅL    ǅ4    ǅ$    ƅLǅ          ls  =s   t 	`B$uFA9 u
F ll;   =Dp   tm
th	`hs  _ =s  A	=r   t=|  du5r  hs  k_=r   =}  d5r  hs  >_  V~4  Vm4  j
j _P8 +  h  7_T  =Xp   ~v=Xp  9}uk=t   tb=x|   tx|  @x|  fǅT  =x|   tj fǅT =x|   ufT tEPh  _t  =,p   uJ=dv   t  8f=  f<  8=  <ǅ,   o=dv   t  8f=  f<  8=  <ǅ,   =Xp   ~ P9Xp   ƅZ  h  _u=`v  2  ǅ,    z  ǅ    k  h  t_u=T  2  ǅ,    u
ǅ    ƅI  h   _uQD  =,p   t#2  	ƅ8 ǅ,    u
ǅ    ƅH   h  _u=L  1  ǅ,    u
ǅ    ƅP[h  d_uƅ8 ǅ(   .h  8_  ƅ8 ǅ$   ,    P,|f,fTf+TPDfTfT~؋,8/uuuh  _h	`_ǅD    PPDBh|  @LH  ǅ    rl_  PD8 %  p  |x  =p     |x  :9}t	:   |x  B9E   D9z   RH   Gtf   ItOt.     8f=  f<  >]=  8f  f<   >5=  8f  f<=  8  <|x  @|x  @|x  =|x   V.  ƍWV.  ƍPV.  V.  XW_p  h|  =p   t6h|  p0_ h|  @h|  =h|   uʃ4 uF=h|   u=Tv  0щHPhTv  z_u
ǅ4   ǅ     =p  =|  =p   tE|  9Et:u|  z9}uD9Ba|  @|  =|   u, t/h 	`B$u	=|   tMEP_h 	`B$t$    =|      8   @  Eh|  @Lǅ4     =p|  GPS_=p|  wSwh  ~_  h|  @  RH  jB@Phv  _  EP_ǅ   xx  4 uKp  h|  =p   t8h|  p0_h|  @h|  =h|   uʍhh t$hAC9 t 	`B$u 9 tAAC9 t 	`B$u 9 tAxAC9 t 	`B$u  uƅ1ƅ  uƅ1ƅ x uƅx1ƅy =p  =p|  =p   t?p|  p0__p|  @p|  =p|   uʃ=p|   uo  ufTv  0щHPhTv  _t3ht  h~  h  S8_S_4 u_=p  =h|  =p   t6h|  p0_th|  @h|  =h|   uʃ4 u$p  L4SV)  j
j S_H=p  =t|  =p   tEt|  9Et:ut|  z9}uD9Bt|  @t|  =t|   uH9=(p  }(p  H> t 	`ÊPA9 t
C$t , t(VlWW_H<L@ t(lPV&_<H@L   =r   tU=@p   tI*  PHLPh  5r  _$=r   tUV=  (  > tRPHxPPPDuh*  5r  _(=r    h   j hlv  _fDf=nv  fEflv  fLf=pv  H,  v  f=pv  f=v  j!hrv  _rv  j_Q_t ꐐj'hv  _jPhv  _v  j_QH_t ꐐp  |  =p   tF|  :9}t:u|  B9EuD9zI|  @|  =|   u8ufEfv  fv    v   hI  V5_tv  hM  V_tv  hQ  V_tv  hU  V_tv  hZ  V_tv  fv       9,wj,$%  M&  &  &   &  ,&  D&  v  <v  0v  $v  v  |fv   h^  V8_tv   p  l|  = p   tDl|  :9}t:ul|  B9EuD9ztl|  @l|  =l|   uh   hlv  5r  n_=s    h   j h  _E죌t  }=t  Dt  ,t    ,u8Ru  t  jht  5 s  _}=  E   D=$  jh)  _)  j_Qp_t ꐐ0щH(  <~(  j(Ph>  z_>  j_Q_t ꐐ0щH=  <(~=  (j(hg  _0щHf  <(~f  (=p  =|  =p      |  9Et:un|  z9}u`D9BuUjRBRh  _=|  WB0щH  <~%  |  @|  =|   f         9,wv,$d)  )  x)  )  )  )    J  >  2     jB@Ph  _$    h^  V_t   p  l|  = p   tFl|  :9}t:ul|  B9EuD9zul|  @l|  =l|   uH  L=  h   h  5s  _=r  e  jj h  a_p  |  =p   tH|  :9}t:u|  B9EuD9z|  @|  =|   u         9,w[,$+  W+   +  ,+  8+  P+    .  "    |  h^  V._t  = p  =l|  = p   tDl|  9Et:ul|  z9}uD9Btl|  @l|  =l|   ujh  5r  e_=r  ,  D    =~   tjTh~  5r  -_H  TjTj h~  _}=~  jh~  _~  j_Q_t ꐐj'Ph~  _~  j_Qx_t ꐐ|  ~  =}    b=|   tcE=|  DGH  G|  G|  6jrHw  0щHw  PX_!  }    jtj ht  _D=t  jht  _t  j_Q_t ꐐj'Pht  _t  j_Qp_t ꐐj'h
u  _8u4u     E8u  L=<u  H@u  jtht  5r  ?_~  |  t}  =r  *  jtj hv  _D=v  E w  L=w  Hw  jhw  _w  j_Q_t ꐐj'h w  _j'PhHw  _Hw  j_Q<_t ꐐ=p  =|  =p   tH|  9Et:u|  z9}uD9B|  @|  =|   ujthv  5r  _=r     D u4,+Zu	=dv   ufǅVfǅVfDfVjVP5r  _f}fTjTP5r  d_,u~     ~      Gt	Iu~     D=~   _  =r          |  , t&,=|  '~j  |     =|  ;~j  |     VHPPXPPha  5r  _(    =r          }  , t&,=}  '~j   }     =}  ;~j   }     HPXPPh  5r  _ =r   w=Xp   ~E9Xp  t=4p  VHDEP,V>"  $ u( u	 t
  d   ƅi ƅ ƅ ƅ9 8 t_tFA> t>_u > tF	FA> t>_u > tF	FA> t>_u hFA> t>_u >_Xh 	`h88iPb.  PS.  PD.  9P5.  h t5Ph  lP?_    t+Ph  lP_U t#h  lP_(8 +hP  lP_=Xp   ~(}9=Xp  tuuh  _uh  i_5  DlPh  5r  _0a_=x|   tx|  @x|  [^_
 %s %d
 Type       Node Board's Name         Phone Number         City                      Sysop's Name         Baud Flags
 ====       ==== ============         ============         ====                      ============         ==== =====

 Type       Node Board's Name         Phone Number      City                Baud
 ====       ==== ============         ============      ====                ====
  UEue=||   th4  5r  $_||  5||  h}  h4  5r   _h4  5r  _h'5  5r  _Åuc=t   th4  5r  _t  5t  h|  h4  5r  _h5  5r  _h5  5r  q_Ðr Processing Configuration File '%s'
 publist PUBLIST statement not supported
 cleanup CLEANUP statement not supported
 ozone OZONE statement not supported
 addr ADDR statement not supported
 points POINTS statement not supported
 index INDEX statement not supported
 sindex SINDEX statement not supported
 fidoprn fidotxt nofidolist noindex nopoints seadog gated fido opus binkley complete version7 newopus version6 oldopus version5 tbbslist binklist quickbbslist igate ogate gate hub include Continuing Processing on File '%s'
 comments nocomments usezone report noreport dash nodash nonodelist nodelist nouserlist userlist interlist node %d:%d/%d %d/%d route noroute country %s mylist pvtlist maxbaud phone %d:%d/%d %s %d/%d %s password cm baud %d:%d/%d %d %d/%d %d dial end cost %d %d %s %d %d
 Cannot decipher line:
%s UWVSh7  u_ED  uh7  {_} tHj  j@  UE    3}&  C    C   x|  Xx|  } tHj  j@}  UR7&  E    C    C   x|  Xx|  ujhs  _v  j;hs  _t  s  =s   t&s   	`PF> t
A$u>;t 	`B$u> tjhB7  V_u
hJ7     jhk7  V_uhs7     jh7  Vc_uh7  njh7  VG_uh7  Rjh7  V+_uh7  6jh8  V_uh	8  jh(8  V_uh/8  _jhO8  V_ut     jhW8  V_ut     ej
h_8  V_ut      t      7jhj8  VS_u      jhr8  V/_upx      jh{8  V_tjh8  V_u,p     jh8  V_t<jh8  V_t(jh8  V_tjh8  V_u,p      Ujh8  Vs_uHp     1jh8  VO_tjh8  V;_uLp     jh8  V_tjh8  V_uPp     jh8  V_u\p     jh8  V_uTp     yjh8  V_u`p     Ujh8  Vs_u@j  ǍGPGPWFP  GIG    =p         jh8  V_u(j-  ǍGPGPWFPz  GO몐jh8  V_u,j  ǍGPGPWFP>  GGkjh8  V_uTj  ǍGPGPWFP  GHG    =p   u=p  |x  x=|x  jh9  V;_ut~~ t#V 	`PG? t
A$u? t! 	`ÊPG? t
C$t uuQuh
9    jh.9  V_uDp     qj
h79  V_uDp      MjhB9  Vk_udv     )jhJ9  VG_u<p     jhQ9  V#_u<p      jhZ9  V_u@p      jh_9  V_u@p     j
hf9  V_u8p      ujhq9  V_u8p     Qj
hz9  Vo_u4p      -jh9  VK_u4p     	j	h9  V'_u4p     jh9  V_uPhs  ht  hXp  h9  ^S__Xp  hs  ht  h9  S4_jh9  V_u0p     ]jh9  V{_u0p      9jh9  VW_uhTv  h9  FP_	jh9  V'_uHj5	  j@)	  Ph9  FPy_3  C    C    jh9  V_u<j  j@  Ph9  FP_3w  Bjh9  V{_uj
j FP_(p  .jh9  VK_   jU  jI  CPSUR{WSh9  V_tXp  suWh9  Vj_C    =p   up  |  X|  jh9  V_   j  j  C@PSUR{WSh9  V_tC@PuWh9  V_Xp  C !sV  C    =p   up  |  X|  jh :  V_uPj  ÍCPCPSFPR	  C    = p   u p  l|  Xl|  ujh:  V_   j  ÍSURSUR{WSh:  V_tuuWh:  V_Xp  C    =p   u
p  
t|  Xt|  jh:  V_  FPh  _ujhs  ͽ_  s  j;hs  i_t   	`ъB
FA$t> ujh":  Vw_\  > t! 	`ъBG? t
A$u?;_? VjG  j;  j/  Cj"  CGA? t 	`B$t ? t! 	`ъBG? t
A$uK	GA? t?/t 	`B$t K? t0 	`B$u GGA? t 	`B$t 0;HCC    =p   up  p|  Xp|  5j%  Tv  0Tv  HCC    j  Cj  C  =   t%   	`PG? t
A$uK	GA? t?/t 	`B$t hTv  s_K? t0 	`B$u GGA? t 	`B$t ? t! 	`PG? t
A$u~  GA? t?/t 	`B$t t  ? t. 	`B$uGGA? t 	`B$t =p   u	p  	p|  Xp|  Ajh&:  V__  Vh  _h$p  EPh+:  h  _ujV_   j;V_t  jh":  V_   > t! 	`ъBG? t
A$u?;t? tj  j  USC    CPCP3h1:  W_uUSC    0;HCC    =p   up  h|  Xh|  j=  Tv  0Tv  HCh$p  CPh+:  h  h_C    C    =p   u
p  
h|  Xh|  Vh;:  U_qu,_e[^_UUE9
}	Ð9

R+Pø   ÐUEU
@B8 t
8,t8
u @ÐUWS]S
  0߹ЍD  @ e[_

Not Enough Memory - Exiting

  UEu   P_uhKL  n_j4_ÐNODELIST.%03d 

Cannot find a valid NODELIST.xxx file - Exiting

   UWVS}]S_Sf_   ^Cxx   uKKyn  9^x   u3K9^~  x   uKn  hL  褼_jj_jShL  P0_e[^_UE: t8-t
B@8 u ÐNODELIST.* NODELIST.%d  U$VSM  MM  MfM  fMM  M1ۍuj VSEPg   E       EPhM  V詿_} ~1E 	`B$t EB$tEB$t
Eƀx  } ue[^  US]} uhL  uu  hL  2  tL   hL  Si_1]%d:%d/%d %d/%d    UWVS}]uVSWhN  u_t(Xp  VShN  u¾_tt  e[^_ Network Size Report:

 Total Nodes Processed        = %d
 Nodes Deleted (Down)         = %d
 Nodes ReDirected to Host/Hub = %d
 ---------------------------------------
 Total Nodes Open for mail    = %d
 Zone Coordinators Listed     = %d
 Regional Coordinators Listed = %d
 Network Coordinators Listed  = %d
 Hub Coordinators Listed      = %d
 =======================================
 Total Independent Nodes      = %d
 Total Points                 = %d
 
    Uh(O  _5  h?O  _5@  hbO  ٸ_5xx  hO  Ƹ_hO  蹸_  +@  +xx    PhO  蕸_5t  hO  肸_5`v  hP  o_5T  h:P  \_5D  h]P  I_hP  <_  +t  +`v  +T  +D    PhP  _=L   t5L  hP  _hP  _ÐSorting SysOp Name Data

 qsort Fidouser.$$1 /+1:41 /-61:5 /-41:13 /+55:6 r FIDOUSER.$$1 w FIDOUSER.LST 
Deleting Duplicate SysOp Names
 %d %d Unique SysOp Names Found in Network
   U<WVSh R  _h:R  _hjR  hlR  f_hyR  h{R  R_E       hR  Ŷ_]̐Wjh  _ttj(Sh  _t    MȋEȹd   uuhR  i_  
   Vh  _j(h  S襺_y5  hR  $_W_V_hlR  _e[^_CM XP WZ MO WK WE DA UVS]uUu} u  p  
  @  =Xp   ~Xp  9
t
  Hzc~%z      B   zc       E}  hT  S̹_u$hT  S躹_uh	T  S訹_t
  	  h	T  S茹_t  dhT  Ss_t  hT  SZ_t  hT  SA_t  hT  S(_t  t   )))  e[^   UVSu]S;   ; t(%   1Edp  1C; uډe[^
   UWSU0׹ЍD8
uH8uH8 t@fU  fU  XЀ8 t8v ?@8 ue[_   Uhdr  #  h~r  V  uh~r  hdr  P     u     Ð
	I don't understand this line.
 ;A This nodelist does not have the proper CRC!
 This nodelist does not have the proper CRC %u/%u!
 Please check out the problem and correct it.

 %c  U  WVSǅ   h   (_  5hv  h   W賬_  Wl_ <C   <;t<AtMT  <DL  j
j @P軶_19}5tx  h   B_C9|qj
j @P{_19P5hv  h   W_ u5r  W3r  -ǅ    j:W_t@j
j P_r  5v  W_C9|j
j @Pߵ_195tx  h   b_5r  r  5v  }_C9|dhV  ΰ_Rr  9r  t95v  hV  >_5r  5r  hV  荰_hW  耰_jhLW  5v  _[^_U=tx   t5tx  1_=v   t5v  _=hv   t5hv  _Ðnewname = %s
 %s already exists.
 rb Error opening old nodelist file!
 Error opening nodediff file!
 NodeDiff doesn't match to existing Nodelist file! Skipping...
 wb Can't open new nodelist file!
 Applying '%s' to '%s'
    U  WVSu}1hqr  hY  _Pj hqr    uhqr  hY  _H  h
Z  VE_tx  uhZ     h
Z  W!_hv  uh/Z     5hv  h    PѨ_1Ҁ* :uBO~1ҍ*B	~j
j P_r  1ҍ *B~ƅ j
j P覲_j.Vi_@j
j P苲_9t
hMZ  4hZ  hqr  1_v  tVWhZ  詭_1hZ  蚭_   [^_  U   WVS]1j_ Pj Sj  ǅ    j.S踱_B 	`A$t6BA$t+BA$t j
j R貱_Shdr  _S  ǅt    S  j.S9_B 	`A$tQBA$tFBA$t;j
j R3_9}	)=+  ~9})=,  ~Shdr  }_t[^_   U   WVS]1jPȪ_ Pj S*  ƅt-   $  j
j R覰_Sh~r  _Pj. SR_B 	`A$tBA$tBA$u Pr  ƅtu SX  j.S_B 	`A$tWBA$tLBA$tAj
j R_9}	)=+  ~9}!)=,  ~׍ Ph~r  1_rj.h~r  r_BRhqr  _1[^_UME9 tNA.t$
*t)3?t\u& /# . \@ . .@ *@9 u $@ ÐUWVSu} U j/V_ÅuV Vu\_CSWQ_e[^_ US]hDu  褪_
S]S$_S裪_]  U   VSu SVhpw  VSVShDu  ܭ_=r   t5r  _hpw  H_r  u!1KC
Pu蜭_1;SJu5r  @_Åu5r  褡_r         [^   US=r   u$1NC
Pu0_1;Su5r  ԩ_Åu5r  8_r         ]UVSu1ۀ> t$<3`~<3z3P^_3C<3 uݍe[^  UVSu1ۀ> t$<3@~<3Z3P
_3C<3 uݍe[^  UVSDv  u1҃<Hv   tHv  B8 uӅt4Dv  ЃKue[^   USPv  =Pv   tЃ; uha  r_] U=r   ur     Ðr  S   L$T$\$̀}أr  [ÐVSt$\$T$t'Ѐ: t@8 u)PRVSu[^'
	 : can't load library ' Incompatible version.
 Too many libraries.
 No such library.
 Permission denied.
 Exec format error.
 Unspecified error.
 )
  ( 	    UWVSl$|$   r  =r     PV   >̀}ىr     r  j hb  0hb  u j   9   $c  <d  xd  Td  xd  xd  xd  xd  xd  ld  xd  xd  xd  xd  `d  xd  xd  xd  xd  xd  xd  xd  xd  Hd  j hb  :j hb  .j hb  "j hc  j h!c  
j h5c  j      ̀򐐋H%   t93D$    ځ  %  9u
9}D$   T$t;j hb  0hb  u juj hb  jd      ̀򐐃> L[^_]þr  =r   t.j hIc  phLc  0hOc  j> u֐1۸   ̀[^_]/lib/libc.so.4 Jump table 4.1   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      @                                       %                                                 !B c0@P`p)Jk1s2R"RBrb9{ZӜb$C4 dtDTjK(	ōS6r&0vfVF[z8׼HXhx@a(#8َHi
+ZJzjqP
3:*˿yX;l|L\",<`A*hI~n^N>2.Qp:Yxʱ-No 0 P%@Fpg`ڳ=^"25BRwbVr˥nO,4$ftGd$TDۧ_~<&6WfvvF4VLm/ș鉊DXeHx'h8(}\?؛uJTZ7jz
*:.lMͪɍ&|ld\EL<,>]|ߛُn6~UNt^.>NODELIST.*   NODELIST.    NODEDIFF.*                r                  e  e     `     o  r      _v4                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @         @   .   d   @   E   d   @   P          r                                                                     <         _         |                                                                        %         X                                                                                                            "         ,         7         B         M         V         a         l         u                                                                                                   
         9         g                                    $         [                           	         2         d                                             ,         R         \                                                                        4         b         k         u                                                      .	         7	         A	         g	         	         	         	         	         	         
         
         <
         P
         Z
         e
         
         
         
         
         
                           #         P                                             6         g                                             R                                             B         o                                             .         Y                                    *         ;         h         x                                                      A         I         i          q              D \ H      D ] V      D ^ V      D _ ]      D ` k      D c u      D d       D e       D f       D g       D i       D j       D k       D l       D m        D p       D q       D t       D u       D v       D w       D y       D z       D {       D }       D ~       D        D        D        D        D        D        D        D        D        D j       D        D        D        D        D  %      D  (      D  -      D  ;      D  E      D  K      D  Q      D  W      D  \      D  j      D  v      D  }      D        D        D        D        D        D        D        D        D        D        D        D        D        D        D  $      D  .      D  7  |     r      D  @      D  N       r      D  W      D  e       r      D  n      D  |       r      D        D        D         r      D        D        D         r      D        D        D         r      D        D        D         r      D        D         r      D        D         r      D        D        D          s      D  &      D  4      D  4       s      D  =      D  K      D  K        r      D  X      D  a      D  v      D  v      D       D       D       D       D   -     r      D 	      D       D       D       D !      D !      D .      D .      D .      D ;      D D      D !I      D #R      D %W      D &Y  8  $   H  @        H        U     ^     g  @      m     |            @                  @                  @                            E       S       \       j       s                                                                             !       6       Q                                                       D *
      D +
      D -
      D /
      D 1
      D 2
      D 7      D ;      D ='      D ?B      D AO      D DT      D H^      D Jg      D L      D N      D Q      D T      D U      D W      D Y      D Z      D \      D ]      D `      D a	      D c'      D d4      D eB      D fL      D jT      D kh      D lq      D mz      D n      D o      D r      D s      D t      D u      D v      D x      D {      D |      D       D       D '      D 4      D R      D _      D d      D q      D ~      D       D       D       D       D       D       D       D       D       D       D       D       D       D =      D N      D c      D c      D h      D r      D |      D       D       D       D       D       D       D       D        D       D       D %      D (      D .      D B      D H      D Y      D Y      D j      D       D       D       D       D       D       D       D       D       D       D 	      D '      D 4      D B      D L      D V      D X      D i      D ~      D ~       @       D  ~      D  ~      D  ~      D         @       D       D       D       D       D       D       D       D       D       D       D        D       D       D       D )      D 	G      D 
T      D b      D b      D d      D n      D x      D       D       D       D       D       D     $   
            
                                                        $       \                            #       #       I                 !       "       #       $     c  %     c  &       '       (       )       *     >  +     >  ,     M  -     |  .       /       0     "  1     "  2           D "      D #      D F      D G&      D II      D J]      D Md      D Os      D Q}      D R      D S      D T      D U      D V      D X      D Y      D Z      D [      D ^      D _      D b&      D d8      D e>      D h\      D jn      D kt      D m      D o      D p      D s      D u      D w      D y      D |4      D }>      D ~H      D R      D \      D f      D m      D w      D       D       D       D       D       D       D       D       D       D       D       D       D       D       D       D       D 0      D J      D ]      D d      D j      D {      D       D       D       D       D       D       D       D       D       D       D '      D 0      D :      D K      D Q      D Z      D c      D       D       D       D       D       D       D       D       D       D       D       D       D       D        D 7      D =      D K      D U      D b      D l      D t      D       D       D       D       D       D       D       D       D       D       D       D        D       D       D       D $      D +      D 0      D G      D M      D [      D e      D n      D x      D       D 	      D       D       D       D       D       D       D       D       D       D       D        D !      D #      D $'      D !'      D %8      D &D      D (I      D )_      D *l      D +v      D .x      D 0      D h      D j      D ~      D       D       D 3      D 7      D 9      D :      D <      D ?#      D BL      D Cq      D Et      D F      D H      D I      D K      D N      D O      D Q      D R      D V      D Y      D \      D _/      D `@      D cU      D d_      D fh      D l      D m      D p      D s      D w      D x      D y      D {      D ;      D H      D Q      D Z      D w      D       D       D       D       D       D       D       D       D       D 5      D <      D D      D L      D U      D t\      D up      D x      D       D       D       D       D       D       D       D       D       D       D       D       D        D        D '       D *       D /       D 0       D 6       D 8       D >       D S       D V       D [       D \       D b       D d       D j       D        D        D        D        D        D        D        D        D        D        D        D        D        D        D 	!      D !      D W!      D {!      D !      D !      D !      D !      D !      D !      D 
!      D !      D !      D "      D "      D #"      D ,"      D ["      D h"      D !q"      D #"      D '"      D ("      D *"      D +"      D ,"      D ."      D 0"      D 1"      D 2"      D 5"      D 7"      D 8"      D 9	#      D =#      D @"#      D B+#      D D4#      D GB#      D K#      D N#      D Q#      D T#      D V#      D X#      D Y#      D Z$      D [$      D \%$      D ]E$      D ^S$      D _h$      D `m$      D b$      D c$      D e$      D f$      D g$      D h$      D j$      D k$      D n$      D o$      D q$      D w%      D x %      D z)%      D |2%      D }<%      D @%      D I%      D P%      D b%      D i%      D {%      D %      D %      D %      D %      D %      D %      D %      D %      D &      D &      D &      D &      D  &      D '&      D ,&      D 3&      D 8&      D ?&      D D&      D M&      D _&      D f&      D p&      D |&      D &      D &      D &      D &      D &      D &      D &      D &      D '      D '      D $'      D 6'      D D'      D Y'      D b'      D j'      D v'      D '      D '      D '      D '      D '      D '      D '      D '      D '      D '      D 	(      D (      D (      D 8(      D <(      D C(      D X(      D (      D (      D (      D (      D (      D (      D (      D )      D )      D   )      D $)      D 1)      D >)      D H)      D x)      D )      D )      D )      D )      D )      D ))      D *)      D @)      D A)      D )      D )      D )      D #)      D $)      D &)      D ,'*      D -4*      D /=*      D 0H*      D 2T*      D 3l*      D 5l*      D 7y*      D :*      D ;*      D =*      D C*      D D*      D F*      D H*      D N +      D O'+      D R,+      D S3+      D V8+      D W?+      D jD+      D kK+      D ZP+      D ^W+      D `i+      D dp+      D e|+      D g+      D m+      D n+      D p+      D q+      D s+      D u+      D w+      D y,      D z,      D {,      D },      D ~.,      D 7,      D L,      D Q,      D e,      D h,      D l,      D ,      D ,      D ,      D ,      D ,      D ,      D ,      D ,      D ,      D ,      D ,      D ,      D ,      D ,      D -      D -      D "-      D 3-      D ?-      D T-      D Y-      D m-      D p-      D t-      D -      D -      D -      D -      D -      D -      D -      D -      D -      D -      D -      D .      D 
.      D .      D .      D .      D $.      D 5.      D A.      D I.      D U.      D `.      D u.      D z.      D .      D .      D .      D .      D .      D .      D .      D .      D .      D .      D .      D #/      D 0/      D 9/      D N/      D N/      D [/      D m/      D /      D /      D /      D /      D /      D /      D /      D /      D /      D /      D /      D /      D 0      D  0      D $0      D K0      D 	Q0      D l0      D v0      D 0      D 0      D 0      D 0      D 0      D 1      D 1      D !&1      D "01      D %:1      D 'C1      D (M1      D +W1      D 11      D 41      D 91      D <1      D =1      D ?2      D @2      D A$2      D B*2      D D<2      D EB2      D FL2      D HO2      D IT2      D KU2      D L[2      D N`2      D Of2      D Pp2      D Rs2      D Sx2      D Uy2      D V2      D X2      D Y2      D Z2      D \2      D ]2      D _2      D `2      D a2      D c2      D f2      D g2      D h2      D i2      D j3      D k3      D l 3      D m/3      D n>3      D pG3      D qt3      D s|3      D u3      D v3      D x3      D z3      D {3      D }3      D 3      D 4      D 4      D 04      D 44      D J4      D v4      D v4      D wv4      D |4      D 4      D 4      D 4  3  $     D        M     PU     L^     Hg     Dn                    l     @     <     8     4     T     V           l     0  @        @        @            ,)     8:     K     \     m     h~     4                    x     X     (     $                                 I#       #       #       &       &       ,*       9*       +       +       +       +       -       -       /        /       /       ]1       64       ]4      D @6      D F6      D K6      D T6      D g6      D m6      D 6      D 6      D 6      D 6      D 6      D 6      D 6      D 6      D 6      D 7      D 7    $   @6            @       "          /          <          G          S          _          n          y                                                                                                                        #  (   r  4  (   r  E  (   r  T  (   r  d  (   r  t  (   r    (   r    (   r    (   r    (   r    (   r    (   r    (    s    (   s        7       7    d   7  1  d   7  <         ^         p                                                      (         K         h                                                                                 D         w                                                                                                                     #         .         9         B         M         X         a         k         v                                                                                          %         P                                    %         ^                                    )         =         H         n         x                                                      "         ,         P         ~                                                                        J         S         ]                                                                $          .          X          l          v                                                            !         ,!         5!         ?!         l!         !         !         !         $"         R"         "         "         "         "         6#         n#         #         #         #         '$         ^$         $         $         $         %         +%         J%         u%         %         %         &         F&         W&         &         &         &         &         &         '         7'         ]'         e'             D 2 T:      D 3 ]:      D A ]:      D D x:      D F :      D H :      D I :      D J :      D K :      D L :      D M :      D N :      D O :      D P :      D Q :      D S :      D U :      D V :      D W :      D X :      D Y  ;      D Z ;      D [ ;      D \ ;      D ] ;      D ^ #;      D ` #;  '     s      D b >;      D c Q;      D e T;      D f Y;      D h x;      D i y;      D k ;      D n ;      D p ;      D q ;      D s ;      D u ;      D v ;      D x ;      D z ;      D { ;      D } ;      D  <      D  <      D  <      D  ,<      D  1<      D  4<      D  H<      D  M<      D  P<      D  d<      D  q<      D  x<      D  <      D  <      D  <      D  <      D  <      D  <      D  <      D  <      D  <      D  <      D  =      D  =      D  =      D  (=      D  2=      D  8=      D  `=      D  j=      D  p=      D  =      D  =      D  =      D  =      D  =      D  =      D  >      D  &>      D  ,>      D  T>      D  ^>      D  d>      D  x>      D  >      D  >      D  >      D  >      D  >      D  >      D  >      D  >      D  >      D  >      D  ?      D  	?      D  ?      D  ?      D  $?      D  8?      D  D?      D  Y?      D  ]?      D  `?      D  t?      D  ?      D  ?      D 	?      D ?      D ?      D ?      D ?      D ?      D ?      D ?      D ?      D ?      D ?      D @      D @      D @      D @      D !8@      D "9@      D $H@      D %J@      D '`@      D (a@      D )p@      D +s@      D ,@      D -@      D /@      D 1@      D 2@      D 4@      D 6@      D 7@      D 9@      D ;@      D <@      D >@      D @A      D AA      D C A      D E4A      D F>A      D HDA      D JXA      D KbA      D MhA      D O|A      D PA      D RA      D TA      D UA      D WA      D YA      D ZA      D \A      D ^A      D _A      D aA      D cB      D dB      D fB      D h0B      D i:B      D k@B      D mTB      D o}B      D pB      D uB      D wB      D yB      D zB      D |B      D ~B      D B      D B      D  C      D C      D C      D 0C      D <C      D HC      D ZC      D dC      D kC      D rC      D xC      D xC      D C      D C      D C      D C      D C      D C      D C      D C      D C      D C      D D      D D      D )D      D LD      D TD      D iD      D pD      D yD      D D      D D      D D      D D      D D      D D      D D      D D      D D      D E      D E      D E      D E      D $E      D -E      D 3E      D 8E      D @E      D FE      D LE      D LE      D `E      D lE      D E      D E      D E      D E      D E      D E      D E      D E      D E      D E      D E      D F      D F      D !F      D *F      D 0F      D 4F      D <F      D BF      D HF      D `F      D qF      D F      D F      D F      D F      D F      D F      D F      D F      D 
F      D F      D G      D G      D *G      D 6G      D CG      D PG      D RG      D TG      D ZG      D oG      D rG      D  G      D !G      D #G      D $G      D &G      D 'G      D (G      D *G      D +G      D 1G      D 3G      D 5G      D 6G      D 7G      D :G      D ;H      D <H      D >!H      D ?'H      D B,H      D D4H      D E:H      D G@H      D HLH      D IRH      D JhH      D KoH      D L|H      D NH      D OH      D QH      D RH      D TH      D UH      D WH      D XH      D YH      D ZH      D \H      D ]H      D cI      D eI      D gI      D hI      D i/I      D l2I      D nHI      D oII      D qXI      D r]I      D t`I      D ufI      D vI      D xI      D yI      D I      D I      D I      D I      D I      D I      D I      D I      D I      D I      D I      D I      D I      D 
J      D %J      D >J      D MJ      D PJ      D hJ      D jJ      D J      D J      D J      D J      D J      D J      D J      D J      D J      D J      D J      D J      D K      D K      D K      D K      D K      D "K      D (K      D 4K      D :K      D PK      D kK      D rK      D yK      D K      D K      D K      D K      D K      D K      D K      D K      D K  '  $   T:  '        '        '        '     '  @      '  @      '  @      '  @      '  @      '  @      '  @      (  @      (     (  @      (  @       (  @      '(  @       .(     A  /(     r  0(       1(       2(       3(       4(     \  5(     p  6(       7(       8(     0  9(       :(  (   s  Q(     K  X(     K  g(  d   K  ~(  d   K  (         (         (         (         (         )         5)         O)         q)         )         )         )         )         )         
*         *          *         **         Z*         *         *         *         *         +         +         +         *+         3+         <+         E+         N+         W+         a+         l+         w+         +         +         +         +         +         +         +         +         +         +         +         +         +         ,         ,         ?,         n,         ,         ,         ,         4-         n-         -         -         .         ?.         h.         .         .         .         .         /         F/         Z/         e/         /         /         /         /         /         0         60         ?0         I0         m0         0         0         0         0         1         
1         1         81         g1         p1         z1         1         1         1         1         	2         82         A2         K2         u2         2         2         2         2         2         2         3         (3         I3         R3         \3         3         3         3         4         A4         o4         4         4         4         5         S5         5         5         5         6         D6         {6         6         6         7         "7         H7         g7         7         7         7         +8         c8         t8         8         8         8             D 6 K      D 7 K      D 9 K      D ; K      D = K      D A K      D C K  8  $   K  8        8        8  @      8  @           D G K      D H K      D J  L      D K L      D L L      D M L      D N L  8  $   K  8        9        9  @       9  @          D R L      D S $L      D U $L      D V *L      D W =L      D X @L      D Y DL  9  $   L  %9        ,9  @      39  @       :9     `   ;9            D ] lL      D ^ rL      D a rL  <9     K      D  rL      D  rL      D  rL      D  L  R9     K      D b L      D d L      D e L      D g L      D h L  Y9  $   lL  f9        k9  @       q9        r9        s9        t9            D l L      D m L      D r L      D s L      D v M      D x M      D z M      D  M      D x M      D   M      D  ,M      D  5M      D  5M      D  ;M      D  @M      D  IM      D  IM      D  RM      D  _M      D  hM      D  hM      D | hM      D } tM      D ~ M      D  M  u9  $   L  9        9  @      9  @      9     9  @      9     ,  9           D  M      D  M      D  M      D  M      D  M      D  M      D  M      D  M      D  M      D  M  9  $   M  9        9  @       9  @      9       9           D  M      D  M      D  M      D  M      D  M      D  M      D  N      D  N      D  N      D  *N      D  WN      D  aN      D  gN  9  $   M  9     9     	:     :  @      :       :           D  pN      D  wN      D  }N      D  N      D  N      D  N      D  N      D  N      D  N      D  N  :  $   pN  :        (:        1:        =:        E:  @      Q:       R:       S:       T:       U:       V:           D  N      D  N      D  N      D  N      D  O      D  O      D  O  W:  $   N  d:        j:        s:        {:        :  @      :  @      :  @      :          :     (O  :     (O  :  d   (O  :  d   (O  :         :         ;         3;         L;         j;         ;         ;         ;         ;         <          <         2<         E<         ]<         i<         s<         }<         <         <         =         G=         P=         t=         =         =         =         =         >         >         >         B>         q>         z>         >         >         >         >         >         ?         @?         I?         S?         y?         ?         ?         ?         ?         ?         @         @         2@         a@         j@         t@         @         @         @         @         @         0A         ^A         A         A         A         B         ?B         dB         B         B         B         1C         EC         xC         C         C         D         MD         D         D         D         D         E         8E         kE         E         E         E         F         +F         7F         HF          TF          `F          lF          xF          F          F          F          F          F          F          F          F          F          F          F          F          	G          G          !G          ,G          6G          AG          MG          YG          `G          gG          nG          uG          |G          G          G          G          G          G          G          G          G          G          G          H          H          H          !H          *H          7H          AH          LH          VH          aH          lH          wH          H          H          H     (O  H     (O  H  d   (O  H  d   (O  H         H         I         6I         OI         mI         I         I         I         I         J         #J         5J         HJ         `J         lJ         vJ         J         J         J         K         JK         SK         ^K         hK         sK         K         K         K         K         K         K         K         K         K         K         K         K         K          L         
L         L         L         'L         0L         <L         EL         PL         \L         fL         L         L         L         !M         SM         M         M         M         8N         aN         N         N         N          O         2O         ;O         EO         iO         O         O         O         O         O         P         P         4P         cP         lP         vP         P         P         P         P         Q         4Q         =Q         GQ         qQ         Q         Q         Q         Q         Q         Q          R         $R         ER         NR         XR         R         R         R         S         =S         kS         S         S         S         T         OT         T         T         T         U         @U         wU         U         U         V         V         DV         cV         V         V         V         'W         _W         pW         W         W         W         W         W         'X         PX         vX         ~X             D . P      D / P      D 0 Q      D 1 Q      D 2 *Q      D 3 =Q      D 4 JQ      D 5 `Q      D 6 nQ      D 7 Q      D 8 Q      D 9 Q      D : Q      D ; Q      D < Q      D = Q      D >  R      D ? R      D @ R  X  $   P  X      R  X      R  X  d    R  X  d    R  X         Y         Y         ?Y         XY         vY         Y         Y         Y         Y         Z         ,Z         >Z         QZ         iZ         uZ         Z         Z         Z         Z         [         S[         \[         g[         q[         |[         [         [         [         [         [         [         [         [         [         [         [         [          \         	\         \         \         (\         0\         9\         E\         N\         Y\         e\         o\         \         \         \         *]         \]         ]         ]         ^         A^         j^         ^         ^         ^         ^         _          _         G_         R_         k_         _         _         _         _         _         &`         /`         9`         ]`         `         `         `         `         `         `         a         +a         [a         da         na         a         a         a         a          b         b         b         )b         Mb         |b         b         b         b         b         b         b         c         Kc         yc         c         c         c         +d         Zd         d         d         d         e         Le         `e         e         e         f         3f         hf         f         f         f         f         g         Ig         |g         g         g         g         ,h         <h         Hh         Yh         h         h         h         i         i             D 0 R      D 1 R      D 4 R      D 6 R      D : R      D = S      D @ #S      D A 'S      D B 1S      D C >S      D E XS      D I lS      D J rS      D K S      D L S      D M S      D N S      D O S      D P S      D Q S      D R S      D S S      D T S      D U S  -i  $   R  :i  @      Ei  @      Li     ]i        ^i           D [ T      D ] &T      D _ 0T      D ` :T      D c <T      D g FT      D h YT      D k cT      D l rT      D n T      D o T      D r T      D u T      D x T      D | T      D  T      D  T      D  T      D  U      D  U      D  $U      D  +U      D  =U      D  DU      D  VU      D  ]U      D  lU      D  sU      D  wU      D  U  _i  $   T  ni        ti        ~i        i        i        i  @      i  @      i  @      i     U  i     U  i  d   U  i  d   U  i         j         j         Fj         _j         }j         j         j         j         j         k         3k         Ek         Xk         pk         |k         k         k         k         k         l         l         Ll         l         l         l         l         m         m         Fm         Qm         jm         um         m         m         m         m         m         m         m         m         m         m         m         m         m         n         
n         n         n         )n         1n         :n         Fn         On         Zn         fn         pn         n         n         n         +o         To         zo         o         o         o         o         p         p         /p         ]p         fp         pp         p         p         p         p         p         )q         2q         <q         bq         q         q         q         q         q         r         r         7r         Kr         Ur         `r         r         r         r         r         r         s         s         s         Ks         s         s         s         t         1t         bt         t         t         t         u         Mu         u         u         u         v         =v         jv         v         v         v         
w         )w         Tw         w         w         w         %x         6x         cx         sx         x         x  &   dp  x     dp  x          x          x          x          x              D W U      D X U      D Z U      D [ U      D ] U      D _ U      D ` U      D b U      D c U  x  $   U  y        y        y  @      y  @      $y        %y     @       D f U      D g U      D i U      D j U      D k V      D l V      D o V      D p V      D s &V      D t (V      D v 0V      D w 5V      D y 8V      D z 9V      D { >V  &y  $   U  1y        9y  @      Ay  @       Gy     T   Hy            D  HV      D  KV      D  KV      D  XV      D  iV      D  {V      D  V      D  V      D  V      D  V      D  V  Iy  $   HV  Ry  @       ]y        ^y            D  PW      D  \W      D  \W      D  fW  _y     U      D  fW      D  fW      D  fW      D  yW  uy     U      D  yW      D  W      D  W      D  W      D  W      D  W      D  W      D  X      D  X      D  X      D  X      D  2X      D  <X      D  PX      D  YX      D  pX      D  zX      D  X      D  X      D  X      D  X      D  X      D  X      D  X      D  X      D  X      D  X      D  X      D  
Y      D  Y      D  Y      D  #Y      D  (Y      D  5Y      D  <Y      D  JY      D  ]Y      D  vY      D  Y      D  Y  |y  $   PW  y      y      y     y  @       y  @       y  @       y  @      y  @      y     y       y       y       y           D  Y      D  Y      D  Y      D  Y      D  Y      D  Y      D  Y      D  Y  y  $   Y      D  Z      D  Z      D  Z      D  Z      D  Z      D  [      D  
[      D  [      D  [      D 7[      D <[      D 	D[      D [[      D `[      D h[      D [      D [      D [      D [      D [      D [      D [      D [      D [      D [      D [      D [      D [      D [      D  \      D !\      D "\      D #"\      D %&\      D &+\      D (0\      D )G\      D +K\      D .K\      D /W\      D -\\      D ,f\      D 0k\   z  $   Z  z        z        *z  @      7z  @      Dz      Rz  @       ]z     pz  @      uz  @      zz     z     B  z           D 3x\      D 4\      D 5\      D 8\  z     U      D  \      D  \      D  \      D  \  z     U      D ;\      D @\      D B\      D C\      D D\      D F\      D G\      D H	]      D M]      D Q]      D R]      D T]      D W,]      D [7]      D \D]      D ]E]      D _k]      D az]      D d]      D e]      D h]      D j]  z  $   x\  z        z  @      z  @      z  @      z  @      z  @      z      z       z       z       z     t  z       z       z       z           D m]      D n]      D o]      D r]  z     U      D  ]      D  ]      D  ]      D  ]  {     U      D t]      D x]      D z]      D ]      D ^      D ^      D ^      D +^      D ,^      D R^      D c^      D c^      D g^      D l^      D }^      D ^      D ^      D ^      D ^      D ^      D ^      D ^      D ^      D _      D _      D _      D _  {  $   ]  ({        6{  @      D{  @      M{  @      R{  @      W{  @      \{      f{     /  g{     1  h{     ;  i{       j{       k{       l{     Z	  m{     	  n{          {          {          {     $_  {     $_  {  d   $_  {  d   $_  {         {         |         /|         H|         f|         |         |         |         |          }         }         .}         A}         Y}         e}         o}         z}         }         }         }         }         }         }         }         }         }         }         }         }         }         ~         ~         ~         &~         1~         ;~         C~         L~         [~         d~         o~         {~         ~         ~         ~                  @         i                                         D  $_      D  '_      D  '_      D  *_      D  -_      D  4_      D  7_      D  R_      D  U_      D  X_      D  [_      D  `_      D  d_      D  g_      D  l_      D  p_      D   s_      D " x_      D % {_      D & _      D ' _      D ( _    $   $_                    @        @         @                   c       D + _      D , _      D . _      D / _      D 1 _      D 2 _      D 4 _      D 5 _      D 7 _      D 8 _      D 9 _      D : _      D < _    $   _          
                  @      $  @      -  @      5     t   6            D @ _      D A _      D E _      D G _      D I _      D M `      D N `  7  $   _  D        K  @      R     e  @       l        m            D Q `      D R `      D T `      D U *`      D W 9`      D Y G`      D Z P`      D \ ^`      D ] p`      D ^ t`      D a x`      D b `      D ` `      D c `      D _ `      D d `      D e `      D f `      D g `  n  $   `  x                          @              @                         D j `      D k `      D m `      D n `      D r `      D s `      D q `      D t a      D p a      D u a      D v  a      D w *a      D x /a    $   `            @      ƀ       ǀ       Ȁ          ڀ               4a       4a    d   4a    d   4a           @         R         y                           ΁                  
         -         J         f         x                               D  4a      D  <a      D  <a      D  Da      D  Pa      D  `a      D  ga    $   4a          ł  @      ͂  @      ҂        ӂ     3       D  pa      D  xa      D  xa      D  a      D  a      D  a      D  a  Ԃ  $   pa  ߂          @        @           D        o        a       a    d   a  )  d   a  5         W         i                           ǃ                           !         D         a         }                                    Ƅ                  4         o                                             υ                             $   a  .          E  $   a  [     r  j  $   ,b  u     Lb  }     Lb    d   Lb    d   Lb           Ն                           '         E         c         }                           ߇                                     8         D         {                                                      $         M         s                                      ǉ          ى     Lb       Pb       e       e       e       e       e       e  +     e  3     e  <     e  F     e  M     e  V     e  _     e  g     e  o     e  y     e       e       e       e       e       e       e       e        f  Ɗ     f  ӊ     f       f       f       f       f       f        f       $f       (f  &  	   s  .     	 `4  	   s  9     HV  ?  	   t  H      		`Z     $p  e  	   t  s     `  z  	   t       r       U    	   t        `  	   t    	   t       r  Ջ     $_  ދ  	   t        `     r        Z       0 `     <	`"      `+      	`<  	   t  E     `p  O      `W  	   Du  f     
 `o      `x     \p        `      `     ( `     
 `      `      `     4a       PW  ˌ     Y  ،      `     a    	   Dv       M       p         `!     r  )      `2     
 `<  	   Lv  K  	   Tv  T      `\      `e     P  r     pa  z     ]        `     H `       `     a        `     p  ƍ     x\  ԍ     pN  ݍ  	   `v       qr        `  	   dv    	   hv       P `     
 `$  	   lv  .      
 `6     Tc  O      p  W     Dp  a     	`o      `w     
 `  	   v       
 `     x `     p `      `  	   v       ,p  Ď      `Ύ     h `׎     ~r       <p    	   v       p       N  	  	   pw       ` `!     _  ,     ( `5     dr  ?  	   px  J     l
	`a      `i  	   tx  s  	   xx  ~  	   |x    	   x        `     p    	   h|    	   l|    	   p|    	   t|       
 `     h `  	   x|  Ə  	   ||  ӏ  	   |  ׏  	   |    	   |        	`     p    	   |        `     M    	   |  "  	   |  2     X `<     	`H     #	`Y      ``     \	`m  	   X  s     	`  	   }        `      p    	   }    	   }    	   ~       @ `Ɛ     (p  ϐ      `א  	   ~  ߐ     h
 `  	   ~        `     r        `     R    	     (      `0     T:  >     K  I     T  U     4p  \     	 `d  	     n      `v       `      `      `      `     Pp       Lp       Hp    	     Ñ     lL  ͑     
 `     L        `     @6    	          0p        `      `!  	     )      p  0     	 `9     4	`B      `J     U  R  	     Y     r  i     @p  q     	`}  	   @    	   D        	`     x `     r       _        p         ʒ  	   H  Ւ  	   L  ے  	   L        `     Tp       @ `     8p    	   P  	     Xp       
 `      `#     
 `7      `@     p  I  	   T  P      `V     H  \      `d     p  m     P `t       `|       `     p `     r    	   X        `     ,b       `       L       K       P `ȓ     
  ד     r  ݓ  /usr/lib/crt0.o parselst.o gcc2_compiled. /home/louis/parselist/ parselst.c int:t1=r1;-2147483648;2147483647; char:t2=r2;0;127; long int:t3=r1;-2147483648;2147483647; unsigned int:t4=r1;0;-1; long unsigned int:t5=r1;0;-1; short int:t6=r1;-32768;32767; long long int:t7=r1;0;-1; short unsigned int:t8=r1;0;65535; long long unsigned int:t9=r1;0;-1; signed char:t10=r1;-128;127; unsigned char:t11=r1;0;255; float:t12=r1;4;0; double:t13=r1;8;0; long double:t14=r1;8;0; void:t15=15 size_t:t4 fpos_t:t3 __FILE:T16=s40_flags:1,0,32;_gptr:17=*2,32,32;\ _egptr:17,64,32;_eback:17,96,32;_pbase:17,128,32;\ _pptr:17,160,32;_epptr:17,192,32;_base:17,224,32;\ _ebuf:17,256,32;_chain:18=*19=xsstreambuf:,288,32;; FILE:t16 ssize_t:t1 time_t:t3 clock_t:t3 ptrdiff_t:t1 pid_t:t1 uid_t:t8 gid_t:t8 dev_t:t8 ino_t:t5 mode_t:t8 umode_t:t8 nlink_t:t8 daddr_t:t1 off_t:t3 u_char:t11 u_short:t8 u_int:t4 u_long:t5 unchar:t11 ushort:t8 uint:t4 ulong:t5 caddr_t:t17 cc_t:t11 speed_t:t4 tcflag_t:t5 fd_set:t5 ustat:T20=s20f_tfree:1,0,32;f_tinode:5,32,32;\ f_fname:21=ar1;0;5;2,64,48;f_fpack:21,112,48;; flock:T22=s16l_type:6,0,16;l_whence:6,16,16;\ l_start:3,32,32;l_len:3,64,32;l_pid:1,96,32;; stat:T23=s64st_dev:8,0,16;__pad1:8,16,16;\ st_ino:5,32,32;st_mode:8,64,16;st_nlink:8,80,16;\ st_uid:8,96,16;st_gid:8,112,16;st_rdev:8,128,16;\ __pad2:8,144,16;st_size:3,160,32;st_blksize:5,192,32;\ st_blocks:5,224,32;st_atime:3,256,32;__unused1:5,288,32;\ st_mtime:3,320,32;__unused2:5,352,32;st_ctime:3,384,32;\ __unused3:5,416,32;__unused4:5,448,32;__unused5:5,480,32;; tm:T24=s36tm_sec:1,0,32;tm_min:1,32,32;\ tm_hour:1,64,32;tm_mday:1,96,32;tm_mon:1,128,32;\ tm_year:1,160,32;tm_wday:1,192,32;tm_yday:1,224,32;\ tm_isdst:1,256,32;; wchar_t:t3 mstats:T25=s20bytes_total:4,0,32;chunks_used:4,32,32;\ bytes_used:4,64,32;chunks_free:4,96,32;bytes_free:4,128,32;; div_t:T26=s8quot:1,0,32;rem:1,32,32;; div_t:t26 ldiv_t:T27=s8quot:3,0,32;rem:3,32,32;; ldiv_t:t27 __compar_fn_t:t28=*29=f1 SC:T30=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;script:17,96,32;next:31=*30,128,32;; SCTR:t30 SCTRP:t31 PW:T32=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;pw:17,96,32;next:33=*32,128,32;; PWTR:t32 PWTRP:t33 PH:T34=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;num:17,96,32;next:35=*34,128,32;; PHTR:t34 PHTRP:t35 BD:T36=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;baud:1,96,32;next:37=*36,128,32;; BDTR:t36 BDTRP:t37 DL:T38=s20mstr:17,0,32;mlen:1,32,32;\ pre:17,64,32;post:17,96,32;next:39=*38,128,32;; DLTR:t38 DLTRP:t39 CO:T40=s20mstr:17,0,32;mlen:1,32,32;\ cost:1,64,32;baud:1,96,32;next:41=*40,128,32;; COTR:t40 COTRP:t41 FN:T42=s12fname:17,0,32;private:1,32,32;\ next:43=*42,64,32;; FNLST:t42 FNLSTP:t43 ET:T44=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;etype:2,96,8;next:45=*44,128,32;; ETTR:t44 ETTRP:t45 CM:T46=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;next:47=*46,96,32;; CMTR:t46 CMTRP:t47 _oldnode:T48=s116number:1,0,32;net:1,32,32;\ cost:1,64,32;rate:1,96,32;name:49=ar1;0;19;2,128,160;\ phone:50=ar1;0;39;2,288,320;city:50,608,320;; _node:T51=s128net:6,0,16;number:6,16,16;\ cost:6,32,16;name:52=ar1;0;33;2,48,272;\ phone:50,320,320;city:53=ar1;0;29;2,640,240;\ password:54=ar1;0;7;2,880,64;realcost:6,944,16;\ hubnode:6,960,16;rate:11,976,8;modem:2,984,8;\ flags1:8,992,16;reserved:6,1008,16;; _ndi:T55=s8node:1,0,32;net:1,32,32;; netls:T56=s84netnum:1,0,32;netname:57=ar1;0;13;2,32,112;\ netcity:50,144,320;havehost:1,480,32;nethost:1,512,32;\ havegate:1,544,32;netgate:1,576,32;nodeptr:3,608,32;\ numnodes:1,640,32;; nodels:T58=s116nodenum:1,0,32;nodename:57,32,112;\ nodecity:50,144,320;nodephone:50,464,320;havehub:1,800,32;\ nodehub:1,832,32;nodecost:1,864,32;nodebaud:1,896,32;; nidxs:T59=s20idxnet:1,0,32;idxnode:1,32,32;\ netlptr:3,64,32;nodelptr:3,96,32;idxspace:3,128,32;; extrastuff:T60=s20password:54,0,64;flags1:4,64,32;\ extra:21,96,48;; qidx:T61=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;nodetype:2,96,8;; qdat:T62=s140nodetype:2,0,8;zone:1,32,32;\ net:1,64,32;node:1,96,32;namesize:2,128,8;\ name:49,136,160;citysize:2,296,8;city:50,304,320;\ phonesize:2,624,8;phone:50,632,320;passwordsize:2,952,8;\ password:54,960,64;flags:4,1024,32;baudrate:1,1056,32;\ cost:1,1088,32;; WBUFFER:T63=s12wbuff:17,0,32;wptr:17,32,32;\ wsize:4,64,32;; WBUFFER:t63 WBUFFPTR:t64=*63 direct:T65=s268d_ino:3,0,32;d_off:3,32,32;\ d_reclen:8,64,16;d_name:66=ar1;0;255;2,80,2048;; DIR:T67=s16dd_fd:1,0,32;dd_loc:1,32,32;\ dd_size:1,64,32;dd_buf:68=*65,96,32;; DIR:t67 find_t:T69=s256name:66,0,2048;; REV:G17 cmdbaud:G1 _nodelist_bbs _nodelist_fon _fidouser_1 _nodelist_dat _nodelist_sys _nodelist_idx _nodelist_ext _nodelist_prn _nodelist_txt _nodelist_dog _qnl_idx_bbs _qnl_dat_bbs _netlist_dog _index_dog main:F1 argc:p1 argv:p70=*17 buff1:49 buff2:49 s:r17 config_file:17 mylist:17 pvtlist:17 nodelist:r17 editnl:2 cl_nodelist:2 i:r1                               /usr/include/stdlib.h parselst.c open_outfiles:F15 i:6                                     process_file:F15 times:p1 n_num:1 n_cost:1 n_baud:1 node:1 addrs:71=ar1;0;4;1 this_file:72=ar1;0;63;2 def_phone:53 def_flags:53 def_cost:1 def_baud:1 cur_addr_lev:1 did_cost:1 i:6 n_out:6 did_phone:1 buff:66 f:73=*16 p:r17 p1:r17 p2:r17 dphone:1 b1:74=ar1;0;49;2 b2:75=ar1;0;49;2 b3:76=ar1;0;49;2 b4:77=ar1;0;49;2 b5:78=ar1;0;49;2 b6:79=ar1;0;49;2 b7:80=ar1;0;127;2 pn1:49 pn2:49 pn3:49 orig_phone:53 pvt:1 hold:1 skip:1 def:1 this_list:1 ntyp:2                     header:F15 which:p1 which:r1 new_node:G51 old_node:G48 seanet:G56 seanode:G58 bt_node:G60 seaidx:G81=*59 seaptr:G81 qbbsidx:G61 qbbsnode:G62 seanodecnt:G3 seacnt:G1 seanetcnt:G3 buf:G66 prn_first_line:G66 txt_first_line:G66 prn_pg_lines:G1 txt_pg_lines:G1 prn_pagenum:G1 txt_pagenum:G1 nodelist_bbs:S73 nodelist_fon:S73 fidouser_1:S73 nodelist_dat:S1 nodelist_idx:S1 nodelist_sys:S1 nodelist_prn:S73 nodelist_txt:S73 netlist_dog:S1 nodelist_dog:S1 index_dog:S1 nodelist_ext:S1 qnl_idx_bbs:S1 qnl_dat_bbs:S1 parsecfg.o gcc2_compiled. /home/louis/parselist/ parsecfg.c int:t1=r1;-2147483648;2147483647; char:t2=r2;0;127; long int:t3=r1;-2147483648;2147483647; unsigned int:t4=r1;0;-1; long unsigned int:t5=r1;0;-1; short int:t6=r1;-32768;32767; long long int:t7=r1;0;-1; short unsigned int:t8=r1;0;65535; long long unsigned int:t9=r1;0;-1; signed char:t10=r1;-128;127; unsigned char:t11=r1;0;255; float:t12=r1;4;0; double:t13=r1;8;0; long double:t14=r1;8;0; void:t15=15 size_t:t4 fpos_t:t3 __FILE:T16=s40_flags:1,0,32;_gptr:17=*2,32,32;\ _egptr:17,64,32;_eback:17,96,32;_pbase:17,128,32;\ _pptr:17,160,32;_epptr:17,192,32;_base:17,224,32;\ _ebuf:17,256,32;_chain:18=*19=xsstreambuf:,288,32;; FILE:t16 ssize_t:t1 time_t:t3 clock_t:t3 ptrdiff_t:t1 pid_t:t1 uid_t:t8 gid_t:t8 dev_t:t8 ino_t:t5 mode_t:t8 umode_t:t8 nlink_t:t8 daddr_t:t1 off_t:t3 u_char:t11 u_short:t8 u_int:t4 u_long:t5 unchar:t11 ushort:t8 uint:t4 ulong:t5 caddr_t:t17 cc_t:t11 speed_t:t4 tcflag_t:t5 fd_set:t5 ustat:T20=s20f_tfree:1,0,32;f_tinode:5,32,32;\ f_fname:21=ar1;0;5;2,64,48;f_fpack:21,112,48;; stat:T22=s64st_dev:8,0,16;__pad1:8,16,16;\ st_ino:5,32,32;st_mode:8,64,16;st_nlink:8,80,16;\ st_uid:8,96,16;st_gid:8,112,16;st_rdev:8,128,16;\ __pad2:8,144,16;st_size:3,160,32;st_blksize:5,192,32;\ st_blocks:5,224,32;st_atime:3,256,32;__unused1:5,288,32;\ st_mtime:3,320,32;__unused2:5,352,32;st_ctime:3,384,32;\ __unused3:5,416,32;__unused4:5,448,32;__unused5:5,480,32;; tm:T23=s36tm_sec:1,0,32;tm_min:1,32,32;\ tm_hour:1,64,32;tm_mday:1,96,32;tm_mon:1,128,32;\ tm_year:1,160,32;tm_wday:1,192,32;tm_yday:1,224,32;\ tm_isdst:1,256,32;; wchar_t:t3 div_t:T24=s8quot:1,0,32;rem:1,32,32;; div_t:t24 ldiv_t:T25=s8quot:3,0,32;rem:3,32,32;; ldiv_t:t25 __compar_fn_t:t26=*27=f1 SC:T28=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;script:17,96,32;next:29=*28,128,32;; SCTR:t28 SCTRP:t29 PW:T30=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;pw:17,96,32;next:31=*30,128,32;; PWTR:t30 PWTRP:t31 PH:T32=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;num:17,96,32;next:33=*32,128,32;; PHTR:t32 PHTRP:t33 BD:T34=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;baud:1,96,32;next:35=*34,128,32;; BDTR:t34 BDTRP:t35 DL:T36=s20mstr:17,0,32;mlen:1,32,32;\ pre:17,64,32;post:17,96,32;next:37=*36,128,32;; DLTR:t36 DLTRP:t37 CO:T38=s20mstr:17,0,32;mlen:1,32,32;\ cost:1,64,32;baud:1,96,32;next:39=*38,128,32;; COTR:t38 COTRP:t39 FN:T40=s12fname:17,0,32;private:1,32,32;\ next:41=*40,64,32;; FNLST:t40 FNLSTP:t41 ET:T42=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;etype:2,96,8;next:43=*42,128,32;; ETTR:t42 ETTRP:t43 CM:T44=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;next:45=*44,96,32;; CMTR:t44 CMTRP:t45 _oldnode:T46=s116number:1,0,32;net:1,32,32;\ cost:1,64,32;rate:1,96,32;name:47=ar1;0;19;2,128,160;\ phone:48=ar1;0;39;2,288,320;city:48,608,320;; _node:T49=s128net:6,0,16;number:6,16,16;\ cost:6,32,16;name:50=ar1;0;33;2,48,272;\ phone:48,320,320;city:51=ar1;0;29;2,640,240;\ password:52=ar1;0;7;2,880,64;realcost:6,944,16;\ hubnode:6,960,16;rate:11,976,8;modem:2,984,8;\ flags1:8,992,16;reserved:6,1008,16;; _ndi:T53=s8node:1,0,32;net:1,32,32;; netls:T54=s84netnum:1,0,32;netname:55=ar1;0;13;2,32,112;\ netcity:48,144,320;havehost:1,480,32;nethost:1,512,32;\ havegate:1,544,32;netgate:1,576,32;nodeptr:3,608,32;\ numnodes:1,640,32;; nodels:T56=s116nodenum:1,0,32;nodename:55,32,112;\ nodecity:48,144,320;nodephone:48,464,320;havehub:1,800,32;\ nodehub:1,832,32;nodecost:1,864,32;nodebaud:1,896,32;; nidxs:T57=s20idxnet:1,0,32;idxnode:1,32,32;\ netlptr:3,64,32;nodelptr:3,96,32;idxspace:3,128,32;; extrastuff:T58=s20password:52,0,64;flags1:4,64,32;\ extra:21,96,48;; qidx:T59=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;nodetype:2,96,8;; qdat:T60=s140nodetype:2,0,8;zone:1,32,32;\ net:1,64,32;node:1,96,32;namesize:2,128,8;\ name:47,136,160;citysize:2,296,8;city:48,304,320;\ phonesize:2,624,8;phone:48,632,320;passwordsize:2,952,8;\ password:52,960,64;flags:4,1024,32;baudrate:1,1056,32;\ cost:1,1088,32;; WBUFFER:T61=s12wbuff:17,0,32;wptr:17,32,32;\ wsize:4,64,32;; WBUFFER:t61 WBUFFPTR:t62=*61 direct:T63=s268d_ino:3,0,32;d_off:3,32,32;\ d_reclen:8,64,16;d_name:64=ar1;0;255;2,80,2048;; DIR:T65=s16dd_fd:1,0,32;dd_loc:1,32,32;\ dd_size:1,64,32;dd_buf:66=*63,96,32;; DIR:t65 find_t:T67=s256name:64,0,2048;; _t_buff parse_config:F15 filename:p17 mylist:p17 pvtlist:p17 f1:68=*16 tpw:r31 tph:r33 tbd:r35 tdl:r37 tco:r39 tet:r43 tcm:r45 tfn:r41 foo1:1 p:r17 p1:r17 p2:r17 p3:r17             t_buff:S69=ar1;0;127;2 misc.o gcc2_compiled. /home/louis/parselist/ misc.c int:t1=r1;-2147483648;2147483647; char:t2=r2;0;127; long int:t3=r1;-2147483648;2147483647; unsigned int:t4=r1;0;-1; long unsigned int:t5=r1;0;-1; short int:t6=r1;-32768;32767; long long int:t7=r1;0;-1; short unsigned int:t8=r1;0;65535; long long unsigned int:t9=r1;0;-1; signed char:t10=r1;-128;127; unsigned char:t11=r1;0;255; float:t12=r1;4;0; double:t13=r1;8;0; long double:t14=r1;8;0; void:t15=15 size_t:t4 fpos_t:t3 __FILE:T16=s40_flags:1,0,32;_gptr:17=*2,32,32;\ _egptr:17,64,32;_eback:17,96,32;_pbase:17,128,32;\ _pptr:17,160,32;_epptr:17,192,32;_base:17,224,32;\ _ebuf:17,256,32;_chain:18=*19=xsstreambuf:,288,32;; FILE:t16 ssize_t:t1 time_t:t3 clock_t:t3 ptrdiff_t:t1 pid_t:t1 uid_t:t8 gid_t:t8 dev_t:t8 ino_t:t5 mode_t:t8 umode_t:t8 nlink_t:t8 daddr_t:t1 off_t:t3 u_char:t11 u_short:t8 u_int:t4 u_long:t5 unchar:t11 ushort:t8 uint:t4 ulong:t5 caddr_t:t17 cc_t:t11 speed_t:t4 tcflag_t:t5 fd_set:t5 ustat:T20=s20f_tfree:1,0,32;f_tinode:5,32,32;\ f_fname:21=ar1;0;5;2,64,48;f_fpack:21,112,48;; stat:T22=s64st_dev:8,0,16;__pad1:8,16,16;\ st_ino:5,32,32;st_mode:8,64,16;st_nlink:8,80,16;\ st_uid:8,96,16;st_gid:8,112,16;st_rdev:8,128,16;\ __pad2:8,144,16;st_size:3,160,32;st_blksize:5,192,32;\ st_blocks:5,224,32;st_atime:3,256,32;__unused1:5,288,32;\ st_mtime:3,320,32;__unused2:5,352,32;st_ctime:3,384,32;\ __unused3:5,416,32;__unused4:5,448,32;__unused5:5,480,32;; direct:T23=s268d_ino:3,0,32;d_off:3,32,32;\ d_reclen:8,64,16;d_name:24=ar1;0;255;2,80,2048;; DIR:T25=s16dd_fd:1,0,32;dd_loc:1,32,32;\ dd_size:1,64,32;dd_buf:26=*23,96,32;; DIR:t25 find_t:T27=s256name:24,0,2048;; tm:T28=s36tm_sec:1,0,32;tm_min:1,32,32;\ tm_hour:1,64,32;tm_mday:1,96,32;tm_mon:1,128,32;\ tm_year:1,160,32;tm_wday:1,192,32;tm_yday:1,224,32;\ tm_isdst:1,256,32;; wchar_t:t3 div_t:T29=s8quot:1,0,32;rem:1,32,32;; div_t:t29 ldiv_t:T30=s8quot:3,0,32;rem:3,32,32;; ldiv_t:t30 __compar_fn_t:t31=*32=f1 SC:T33=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;script:17,96,32;next:34=*33,128,32;; SCTR:t33 SCTRP:t34 PW:T35=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;pw:17,96,32;next:36=*35,128,32;; PWTR:t35 PWTRP:t36 PH:T37=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;num:17,96,32;next:38=*37,128,32;; PHTR:t37 PHTRP:t38 BD:T39=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;baud:1,96,32;next:40=*39,128,32;; BDTR:t39 BDTRP:t40 DL:T41=s20mstr:17,0,32;mlen:1,32,32;\ pre:17,64,32;post:17,96,32;next:42=*41,128,32;; DLTR:t41 DLTRP:t42 CO:T43=s20mstr:17,0,32;mlen:1,32,32;\ cost:1,64,32;baud:1,96,32;next:44=*43,128,32;; COTR:t43 COTRP:t44 FN:T45=s12fname:17,0,32;private:1,32,32;\ next:46=*45,64,32;; FNLST:t45 FNLSTP:t46 ET:T47=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;etype:2,96,8;next:48=*47,128,32;; ETTR:t47 ETTRP:t48 CM:T49=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;next:50=*49,96,32;; CMTR:t49 CMTRP:t50 _oldnode:T51=s116number:1,0,32;net:1,32,32;\ cost:1,64,32;rate:1,96,32;name:52=ar1;0;19;2,128,160;\ phone:53=ar1;0;39;2,288,320;city:53,608,320;; _node:T54=s128net:6,0,16;number:6,16,16;\ cost:6,32,16;name:55=ar1;0;33;2,48,272;\ phone:53,320,320;city:56=ar1;0;29;2,640,240;\ password:57=ar1;0;7;2,880,64;realcost:6,944,16;\ hubnode:6,960,16;rate:11,976,8;modem:2,984,8;\ flags1:8,992,16;reserved:6,1008,16;; _ndi:T58=s8node:1,0,32;net:1,32,32;; netls:T59=s84netnum:1,0,32;netname:60=ar1;0;13;2,32,112;\ netcity:53,144,320;havehost:1,480,32;nethost:1,512,32;\ havegate:1,544,32;netgate:1,576,32;nodeptr:3,608,32;\ numnodes:1,640,32;; nodels:T61=s116nodenum:1,0,32;nodename:60,32,112;\ nodecity:53,144,320;nodephone:53,464,320;havehub:1,800,32;\ nodehub:1,832,32;nodecost:1,864,32;nodebaud:1,896,32;; nidxs:T62=s20idxnet:1,0,32;idxnode:1,32,32;\ netlptr:3,64,32;nodelptr:3,96,32;idxspace:3,128,32;; extrastuff:T63=s20password:57,0,64;flags1:4,64,32;\ extra:21,96,48;; qidx:T64=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;nodetype:2,96,8;; qdat:T65=s140nodetype:2,0,8;zone:1,32,32;\ net:1,64,32;node:1,96,32;namesize:2,128,8;\ name:52,136,160;citysize:2,296,8;city:53,304,320;\ phonesize:2,624,8;phone:53,632,320;passwordsize:2,952,8;\ password:57,960,64;flags:4,1024,32;baudrate:1,1056,32;\ cost:1,1088,32;; WBUFFER:T66=s12wbuff:17,0,32;wptr:17,32,32;\ wsize:4,64,32;; WBUFFER:t66 WBUFFPTR:t67=*66 cmp:F1 a:p68=*62 b:p68 a:r68 b:r68 nextfield:F17 p:p17 s:p17 p:r17 s:r17 spec_word:F15 b1:p17 b1:r17 p1:r17   /usr/include/stdlib.h misc.c mymalloc:F17 s:p4 p:r17     nfile_name:F15 fn:p69=*17 fn:r69 i:r1 t:3 tm1:r70=*28   undash:F15 str:p17 p:r17 p1:r17   get_nl_list:F15 str:71=ar1;0;12;2 init_name:72=ar1;0;12;2 i:1 d:r1   filedir:F2 name:p17 times:p1 ret_str:p17 mode:p1 ret_str:r17       get_addr:F15 s:p17 z:p73=*1 net:p73 node:p73 z:r73 net:r73 node:r73 sbuf:G27 data.o gcc2_compiled. /home/louis/parselist/ data.c int:t1=r1;-2147483648;2147483647; char:t2=r2;0;127; long int:t3=r1;-2147483648;2147483647; unsigned int:t4=r1;0;-1; long unsigned int:t5=r1;0;-1; short int:t6=r1;-32768;32767; long long int:t7=r1;0;-1; short unsigned int:t8=r1;0;65535; long long unsigned int:t9=r1;0;-1; signed char:t10=r1;-128;127; unsigned char:t11=r1;0;255; float:t12=r1;4;0; double:t13=r1;8;0; long double:t14=r1;8;0; void:t15=15 size_t:t4 fpos_t:t3 __FILE:T16=s40_flags:1,0,32;_gptr:17=*2,32,32;\ _egptr:17,64,32;_eback:17,96,32;_pbase:17,128,32;\ _pptr:17,160,32;_epptr:17,192,32;_base:17,224,32;\ _ebuf:17,256,32;_chain:18=*19=xsstreambuf:,288,32;; FILE:t16 SC:T20=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;script:17,96,32;next:21=*20,128,32;; SCTR:t20 SCTRP:t21 PW:T22=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;pw:17,96,32;next:23=*22,128,32;; PWTR:t22 PWTRP:t23 PH:T24=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;num:17,96,32;next:25=*24,128,32;; PHTR:t24 PHTRP:t25 BD:T26=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;baud:1,96,32;next:27=*26,128,32;; BDTR:t26 BDTRP:t27 DL:T28=s20mstr:17,0,32;mlen:1,32,32;\ pre:17,64,32;post:17,96,32;next:29=*28,128,32;; DLTR:t28 DLTRP:t29 CO:T30=s20mstr:17,0,32;mlen:1,32,32;\ cost:1,64,32;baud:1,96,32;next:31=*30,128,32;; COTR:t30 COTRP:t31 FN:T32=s12fname:17,0,32;private:1,32,32;\ next:33=*32,64,32;; FNLST:t32 FNLSTP:t33 ET:T34=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;etype:2,96,8;next:35=*34,128,32;; ETTR:t34 ETTRP:t35 CM:T36=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;next:37=*36,96,32;; CMTR:t36 CMTRP:t37 _oldnode:T38=s116number:1,0,32;net:1,32,32;\ cost:1,64,32;rate:1,96,32;name:39=ar1;0;19;2,128,160;\ phone:40=ar1;0;39;2,288,320;city:40,608,320;; _node:T41=s128net:6,0,16;number:6,16,16;\ cost:6,32,16;name:42=ar1;0;33;2,48,272;\ phone:40,320,320;city:43=ar1;0;29;2,640,240;\ password:44=ar1;0;7;2,880,64;realcost:6,944,16;\ hubnode:6,960,16;rate:11,976,8;modem:2,984,8;\ flags1:8,992,16;reserved:6,1008,16;; _ndi:T45=s8node:1,0,32;net:1,32,32;; netls:T46=s84netnum:1,0,32;netname:47=ar1;0;13;2,32,112;\ netcity:40,144,320;havehost:1,480,32;nethost:1,512,32;\ havegate:1,544,32;netgate:1,576,32;nodeptr:3,608,32;\ numnodes:1,640,32;; nodels:T48=s116nodenum:1,0,32;nodename:47,32,112;\ nodecity:40,144,320;nodephone:40,464,320;havehub:1,800,32;\ nodehub:1,832,32;nodecost:1,864,32;nodebaud:1,896,32;; nidxs:T49=s20idxnet:1,0,32;idxnode:1,32,32;\ netlptr:3,64,32;nodelptr:3,96,32;idxspace:3,128,32;; extrastuff:T50=s20password:44,0,64;flags1:4,64,32;\ extra:51=ar1;0;5;2,96,48;; qidx:T52=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;nodetype:2,96,8;; qdat:T53=s140nodetype:2,0,8;zone:1,32,32;\ net:1,64,32;node:1,96,32;namesize:2,128,8;\ name:39,136,160;citysize:2,296,8;city:40,304,320;\ phonesize:2,624,8;phone:40,632,320;passwordsize:2,952,8;\ password:44,960,64;flags:4,1024,32;baudrate:1,1056,32;\ cost:1,1088,32;; WBUFFER:T54=s12wbuff:17,0,32;wptr:17,32,32;\ wsize:4,64,32;; WBUFFER:t54 WBUFFPTR:t55=*54 pw_head:G23 ph_head:G25 bd_head:G27 dl_head:G29 co_head:G31 et_head:G35 cm_head:G37 intl_cost:G1 maxbaud:G1 out_type:G1 rdata:G1 udata:G1 nlist:G1 doreport:G1 nodash:G1 comments:G1 version7:G1 version6:G1 version5:G1 binkley:G1 myzone:G1 sealist:G1 quickbbs:G1 fn_head:G32 pw:G23 ph:G25 bd:G27 dl:G29 co:G31 et:G35 cm:G37 fn:G33 tfn:G33 intl_pre_dl:G43 intl_post_dl:G43 t_str:G56=ar1;0;127;2 country:G57=ar1;0;9;2 mynet:G1 mynode:G1 nzones:G1 nregions:G1 nnets:G1 nhubs:G1 ndown:G1 nredirect:G1 nnodes:G1 npoints:G1 likely:G1 usezone:G1 fidoprn:G1 fidotxt:G1 do_index:G1 do_points:G1 nl:G58=ar1;0;999;2 report.o gcc2_compiled. /home/louis/parselist/ report.c int:t1=r1;-2147483648;2147483647; char:t2=r2;0;127; long int:t3=r1;-2147483648;2147483647; unsigned int:t4=r1;0;-1; long unsigned int:t5=r1;0;-1; short int:t6=r1;-32768;32767; long long int:t7=r1;0;-1; short unsigned int:t8=r1;0;65535; long long unsigned int:t9=r1;0;-1; signed char:t10=r1;-128;127; unsigned char:t11=r1;0;255; float:t12=r1;4;0; double:t13=r1;8;0; long double:t14=r1;8;0; void:t15=15 size_t:t4 fpos_t:t3 __FILE:T16=s40_flags:1,0,32;_gptr:17=*2,32,32;\ _egptr:17,64,32;_eback:17,96,32;_pbase:17,128,32;\ _pptr:17,160,32;_epptr:17,192,32;_base:17,224,32;\ _ebuf:17,256,32;_chain:18=*19=xsstreambuf:,288,32;; FILE:t16 ssize_t:t1 time_t:t3 clock_t:t3 ptrdiff_t:t1 pid_t:t1 uid_t:t8 gid_t:t8 dev_t:t8 ino_t:t5 mode_t:t8 umode_t:t8 nlink_t:t8 daddr_t:t1 off_t:t3 u_char:t11 u_short:t8 u_int:t4 u_long:t5 unchar:t11 ushort:t8 uint:t4 ulong:t5 caddr_t:t17 cc_t:t11 speed_t:t4 tcflag_t:t5 fd_set:t5 ustat:T20=s20f_tfree:1,0,32;f_tinode:5,32,32;\ f_fname:21=ar1;0;5;2,64,48;f_fpack:21,112,48;; stat:T22=s64st_dev:8,0,16;__pad1:8,16,16;\ st_ino:5,32,32;st_mode:8,64,16;st_nlink:8,80,16;\ st_uid:8,96,16;st_gid:8,112,16;st_rdev:8,128,16;\ __pad2:8,144,16;st_size:3,160,32;st_blksize:5,192,32;\ st_blocks:5,224,32;st_atime:3,256,32;__unused1:5,288,32;\ st_mtime:3,320,32;__unused2:5,352,32;st_ctime:3,384,32;\ __unused3:5,416,32;__unused4:5,448,32;__unused5:5,480,32;; tm:T23=s36tm_sec:1,0,32;tm_min:1,32,32;\ tm_hour:1,64,32;tm_mday:1,96,32;tm_mon:1,128,32;\ tm_year:1,160,32;tm_wday:1,192,32;tm_yday:1,224,32;\ tm_isdst:1,256,32;; SC:T24=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;script:17,96,32;next:25=*24,128,32;; SCTR:t24 SCTRP:t25 PW:T26=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;pw:17,96,32;next:27=*26,128,32;; PWTR:t26 PWTRP:t27 PH:T28=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;num:17,96,32;next:29=*28,128,32;; PHTR:t28 PHTRP:t29 BD:T30=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;baud:1,96,32;next:31=*30,128,32;; BDTR:t30 BDTRP:t31 DL:T32=s20mstr:17,0,32;mlen:1,32,32;\ pre:17,64,32;post:17,96,32;next:33=*32,128,32;; DLTR:t32 DLTRP:t33 CO:T34=s20mstr:17,0,32;mlen:1,32,32;\ cost:1,64,32;baud:1,96,32;next:35=*34,128,32;; COTR:t34 COTRP:t35 FN:T36=s12fname:17,0,32;private:1,32,32;\ next:37=*36,64,32;; FNLST:t36 FNLSTP:t37 ET:T38=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;etype:2,96,8;next:39=*38,128,32;; ETTR:t38 ETTRP:t39 CM:T40=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;next:41=*40,96,32;; CMTR:t40 CMTRP:t41 _oldnode:T42=s116number:1,0,32;net:1,32,32;\ cost:1,64,32;rate:1,96,32;name:43=ar1;0;19;2,128,160;\ phone:44=ar1;0;39;2,288,320;city:44,608,320;; _node:T45=s128net:6,0,16;number:6,16,16;\ cost:6,32,16;name:46=ar1;0;33;2,48,272;\ phone:44,320,320;city:47=ar1;0;29;2,640,240;\ password:48=ar1;0;7;2,880,64;realcost:6,944,16;\ hubnode:6,960,16;rate:11,976,8;modem:2,984,8;\ flags1:8,992,16;reserved:6,1008,16;; _ndi:T49=s8node:1,0,32;net:1,32,32;; netls:T50=s84netnum:1,0,32;netname:51=ar1;0;13;2,32,112;\ netcity:44,144,320;havehost:1,480,32;nethost:1,512,32;\ havegate:1,544,32;netgate:1,576,32;nodeptr:3,608,32;\ numnodes:1,640,32;; nodels:T52=s116nodenum:1,0,32;nodename:51,32,112;\ nodecity:44,144,320;nodephone:44,464,320;havehub:1,800,32;\ nodehub:1,832,32;nodecost:1,864,32;nodebaud:1,896,32;; nidxs:T53=s20idxnet:1,0,32;idxnode:1,32,32;\ netlptr:3,64,32;nodelptr:3,96,32;idxspace:3,128,32;; extrastuff:T54=s20password:48,0,64;flags1:4,64,32;\ extra:21,96,48;; qidx:T55=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;nodetype:2,96,8;; qdat:T56=s140nodetype:2,0,8;zone:1,32,32;\ net:1,64,32;node:1,96,32;namesize:2,128,8;\ name:43,136,160;citysize:2,296,8;city:44,304,320;\ phonesize:2,624,8;phone:44,632,320;passwordsize:2,952,8;\ password:48,960,64;flags:4,1024,32;baudrate:1,1056,32;\ cost:1,1088,32;; WBUFFER:T57=s12wbuff:17,0,32;wptr:17,32,32;\ wsize:4,64,32;; WBUFFER:t57 WBUFFPTR:t58=*57 direct:T59=s268d_ino:3,0,32;d_off:3,32,32;\ d_reclen:8,64,16;d_name:60=ar1;0;255;2,80,2048;; DIR:T61=s16dd_fd:1,0,32;dd_loc:1,32,32;\ dd_size:1,64,32;dd_buf:62=*59,96,32;; DIR:t61 find_t:T63=s256name:60,0,2048;; size_report:F15 names.o gcc2_compiled. /home/louis/parselist/ names.c int:t1=r1;-2147483648;2147483647; char:t2=r2;0;127; long int:t3=r1;-2147483648;2147483647; unsigned int:t4=r1;0;-1; long unsigned int:t5=r1;0;-1; short int:t6=r1;-32768;32767; long long int:t7=r1;0;-1; short unsigned int:t8=r1;0;65535; long long unsigned int:t9=r1;0;-1; signed char:t10=r1;-128;127; unsigned char:t11=r1;0;255; float:t12=r1;4;0; double:t13=r1;8;0; long double:t14=r1;8;0; void:t15=15 size_t:t4 fpos_t:t3 __FILE:T16=s40_flags:1,0,32;_gptr:17=*2,32,32;\ _egptr:17,64,32;_eback:17,96,32;_pbase:17,128,32;\ _pptr:17,160,32;_epptr:17,192,32;_base:17,224,32;\ _ebuf:17,256,32;_chain:18=*19=xsstreambuf:,288,32;; FILE:t16 ssize_t:t1 time_t:t3 clock_t:t3 ptrdiff_t:t1 pid_t:t1 uid_t:t8 gid_t:t8 dev_t:t8 ino_t:t5 mode_t:t8 umode_t:t8 nlink_t:t8 daddr_t:t1 off_t:t3 u_char:t11 u_short:t8 u_int:t4 u_long:t5 unchar:t11 ushort:t8 uint:t4 ulong:t5 caddr_t:t17 cc_t:t11 speed_t:t4 tcflag_t:t5 fd_set:t5 ustat:T20=s20f_tfree:1,0,32;f_tinode:5,32,32;\ f_fname:21=ar1;0;5;2,64,48;f_fpack:21,112,48;; stat:T22=s64st_dev:8,0,16;__pad1:8,16,16;\ st_ino:5,32,32;st_mode:8,64,16;st_nlink:8,80,16;\ st_uid:8,96,16;st_gid:8,112,16;st_rdev:8,128,16;\ __pad2:8,144,16;st_size:3,160,32;st_blksize:5,192,32;\ st_blocks:5,224,32;st_atime:3,256,32;__unused1:5,288,32;\ st_mtime:3,320,32;__unused2:5,352,32;st_ctime:3,384,32;\ __unused3:5,416,32;__unused4:5,448,32;__unused5:5,480,32;; tm:T23=s36tm_sec:1,0,32;tm_min:1,32,32;\ tm_hour:1,64,32;tm_mday:1,96,32;tm_mon:1,128,32;\ tm_year:1,160,32;tm_wday:1,192,32;tm_yday:1,224,32;\ tm_isdst:1,256,32;; wchar_t:t3 div_t:T24=s8quot:1,0,32;rem:1,32,32;; div_t:t24 ldiv_t:T25=s8quot:3,0,32;rem:3,32,32;; ldiv_t:t25 __compar_fn_t:t26=*27=f1 SC:T28=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;script:17,96,32;next:29=*28,128,32;; SCTR:t28 SCTRP:t29 PW:T30=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;pw:17,96,32;next:31=*30,128,32;; PWTR:t30 PWTRP:t31 PH:T32=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;num:17,96,32;next:33=*32,128,32;; PHTR:t32 PHTRP:t33 BD:T34=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;baud:1,96,32;next:35=*34,128,32;; BDTR:t34 BDTRP:t35 DL:T36=s20mstr:17,0,32;mlen:1,32,32;\ pre:17,64,32;post:17,96,32;next:37=*36,128,32;; DLTR:t36 DLTRP:t37 CO:T38=s20mstr:17,0,32;mlen:1,32,32;\ cost:1,64,32;baud:1,96,32;next:39=*38,128,32;; COTR:t38 COTRP:t39 FN:T40=s12fname:17,0,32;private:1,32,32;\ next:41=*40,64,32;; FNLST:t40 FNLSTP:t41 ET:T42=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;etype:2,96,8;next:43=*42,128,32;; ETTR:t42 ETTRP:t43 CM:T44=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;next:45=*44,96,32;; CMTR:t44 CMTRP:t45 _oldnode:T46=s116number:1,0,32;net:1,32,32;\ cost:1,64,32;rate:1,96,32;name:47=ar1;0;19;2,128,160;\ phone:48=ar1;0;39;2,288,320;city:48,608,320;; _node:T49=s128net:6,0,16;number:6,16,16;\ cost:6,32,16;name:50=ar1;0;33;2,48,272;\ phone:48,320,320;city:51=ar1;0;29;2,640,240;\ password:52=ar1;0;7;2,880,64;realcost:6,944,16;\ hubnode:6,960,16;rate:11,976,8;modem:2,984,8;\ flags1:8,992,16;reserved:6,1008,16;; _ndi:T53=s8node:1,0,32;net:1,32,32;; netls:T54=s84netnum:1,0,32;netname:55=ar1;0;13;2,32,112;\ netcity:48,144,320;havehost:1,480,32;nethost:1,512,32;\ havegate:1,544,32;netgate:1,576,32;nodeptr:3,608,32;\ numnodes:1,640,32;; nodels:T56=s116nodenum:1,0,32;nodename:55,32,112;\ nodecity:48,144,320;nodephone:48,464,320;havehub:1,800,32;\ nodehub:1,832,32;nodecost:1,864,32;nodebaud:1,896,32;; nidxs:T57=s20idxnet:1,0,32;idxnode:1,32,32;\ netlptr:3,64,32;nodelptr:3,96,32;idxspace:3,128,32;; extrastuff:T58=s20password:52,0,64;flags1:4,64,32;\ extra:21,96,48;; qidx:T59=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;nodetype:2,96,8;; qdat:T60=s140nodetype:2,0,8;zone:1,32,32;\ net:1,64,32;node:1,96,32;namesize:2,128,8;\ name:47,136,160;citysize:2,296,8;city:48,304,320;\ phonesize:2,624,8;phone:48,632,320;passwordsize:2,952,8;\ password:52,960,64;flags:4,1024,32;baudrate:1,1056,32;\ cost:1,1088,32;; WBUFFER:T61=s12wbuff:17,0,32;wptr:17,32,32;\ wsize:4,64,32;; WBUFFER:t61 WBUFFPTR:t62=*61 direct:T63=s268d_ino:3,0,32;d_off:3,32,32;\ d_reclen:8,64,16;d_name:64=ar1;0;255;2,80,2048;; DIR:T65=s16dd_fd:1,0,32;dd_loc:1,32,32;\ dd_size:1,64,32;dd_buf:66=*63,96,32;; DIR:t65 find_t:T67=s256name:64,0,2048;; do_names:F15 o1:r68=*16 o2:r68 b1:69=ar1;0;49;2   how_likely:F15 p:p17 dphone:p1 addrs:p70=*1 node:p1 n_baud:p1 p:r17 dphone:r1 addrs:r70 edit.o gcc2_compiled. /home/louis/parselist/ edit.c int:t1=r1;-2147483648;2147483647; char:t2=r2;0;127; long int:t3=r1;-2147483648;2147483647; unsigned int:t4=r1;0;-1; long unsigned int:t5=r1;0;-1; short int:t6=r1;-32768;32767; long long int:t7=r1;0;-1; short unsigned int:t8=r1;0;65535; long long unsigned int:t9=r1;0;-1; signed char:t10=r1;-128;127; unsigned char:t11=r1;0;255; float:t12=r1;4;0; double:t13=r1;8;0; long double:t14=r1;8;0; void:t15=15 ptrdiff_t:t1 size_t:t4 wchar_t:t3 mstats:T16=s20bytes_total:4,0,32;chunks_used:4,32,32;\ bytes_used:4,64,32;chunks_free:4,96,32;bytes_free:4,128,32;; fpos_t:t3 __FILE:T17=s40_flags:1,0,32;_gptr:18=*2,32,32;\ _egptr:18,64,32;_eback:18,96,32;_pbase:18,128,32;\ _pptr:18,160,32;_epptr:18,192,32;_base:18,224,32;\ _ebuf:18,256,32;_chain:19=*20=xsstreambuf:,288,32;; FILE:t17 div_t:T21=s8quot:1,0,32;rem:1,32,32;; div_t:t21 ldiv_t:T22=s8quot:3,0,32;rem:3,32,32;; ldiv_t:t22 __compar_fn_t:t23=*24=f1 ssize_t:t1 time_t:t3 clock_t:t3 pid_t:t1 uid_t:t8 gid_t:t8 dev_t:t8 ino_t:t5 mode_t:t8 umode_t:t8 nlink_t:t8 daddr_t:t1 off_t:t3 u_char:t11 u_short:t8 u_int:t4 u_long:t5 unchar:t11 ushort:t8 uint:t4 ulong:t5 caddr_t:t18 cc_t:t11 speed_t:t4 tcflag_t:t5 fd_set:t5 ustat:T25=s20f_tfree:1,0,32;f_tinode:5,32,32;\ f_fname:26=ar1;0;5;2,64,48;f_fpack:26,112,48;; direct:T27=s268d_ino:3,0,32;d_off:3,32,32;\ d_reclen:8,64,16;d_name:28=ar1;0;255;2,80,2048;; DIR:T29=s16dd_fd:1,0,32;dd_loc:1,32,32;\ dd_size:1,64,32;dd_buf:30=*27,96,32;; DIR:t29 find_t:T31=s256name:28,0,2048;; SC:T32=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;script:18,96,32;next:33=*32,128,32;; SCTR:t32 SCTRP:t33 PW:T34=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;pw:18,96,32;next:35=*34,128,32;; PWTR:t34 PWTRP:t35 PH:T36=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;num:18,96,32;next:37=*36,128,32;; PHTR:t36 PHTRP:t37 BD:T38=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;baud:1,96,32;next:39=*38,128,32;; BDTR:t38 BDTRP:t39 DL:T40=s20mstr:18,0,32;mlen:1,32,32;\ pre:18,64,32;post:18,96,32;next:41=*40,128,32;; DLTR:t40 DLTRP:t41 CO:T42=s20mstr:18,0,32;mlen:1,32,32;\ cost:1,64,32;baud:1,96,32;next:43=*42,128,32;; COTR:t42 COTRP:t43 FN:T44=s12fname:18,0,32;private:1,32,32;\ next:45=*44,64,32;; FNLST:t44 FNLSTP:t45 ET:T46=s20zone:1,0,32;net:1,32,32;\ node:1,64,32;etype:2,96,8;next:47=*46,128,32;; ETTR:t46 ETTRP:t47 CM:T48=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;next:49=*48,96,32;; CMTR:t48 CMTRP:t49 _oldnode:T50=s116number:1,0,32;net:1,32,32;\ cost:1,64,32;rate:1,96,32;name:51=ar1;0;19;2,128,160;\ phone:52=ar1;0;39;2,288,320;city:52,608,320;; _node:T53=s128net:6,0,16;number:6,16,16;\ cost:6,32,16;name:54=ar1;0;33;2,48,272;\ phone:52,320,320;city:55=ar1;0;29;2,640,240;\ password:56=ar1;0;7;2,880,64;realcost:6,944,16;\ hubnode:6,960,16;rate:11,976,8;modem:2,984,8;\ flags1:8,992,16;reserved:6,1008,16;; _ndi:T57=s8node:1,0,32;net:1,32,32;; netls:T58=s84netnum:1,0,32;netname:59=ar1;0;13;2,32,112;\ netcity:52,144,320;havehost:1,480,32;nethost:1,512,32;\ havegate:1,544,32;netgate:1,576,32;nodeptr:3,608,32;\ numnodes:1,640,32;; nodels:T60=s116nodenum:1,0,32;nodename:59,32,112;\ nodecity:52,144,320;nodephone:52,464,320;havehub:1,800,32;\ nodehub:1,832,32;nodecost:1,864,32;nodebaud:1,896,32;; nidxs:T61=s20idxnet:1,0,32;idxnode:1,32,32;\ netlptr:3,64,32;nodelptr:3,96,32;idxspace:3,128,32;; extrastuff:T62=s20password:56,0,64;flags1:4,64,32;\ extra:26,96,48;; qidx:T63=s16zone:1,0,32;net:1,32,32;\ node:1,64,32;nodetype:2,96,8;; qdat:T64=s140nodetype:2,0,8;zone:1,32,32;\ net:1,64,32;node:1,96,32;namesize:2,128,8;\ name:51,136,160;citysize:2,296,8;city:52,304,320;\ phonesize:2,624,8;phone:52,632,320;passwordsize:2,952,8;\ password:56,960,64;flags:4,1024,32;baudrate:1,1056,32;\ cost:1,1088,32;; WBUFFER:T65=s12wbuff:18,0,32;wptr:18,32,32;\ wsize:4,64,32;; WBUFFER:t65 WBUFFPTR:t66=*65 crctab:S67=ar1;0;255;8 _crctab old_name:G68=ar1;0;12;2 new_name:G68 diff_name:G68 official_crc:G4 calc_crc:G4 crcstr:F4 buf:p18 crc:p4 crc:r4 p:r18   fix_up:F15 buf:p18 buf:r18 p:r18   edit:F15 results:r1   /usr/include/stdlib.h edit.c add_files:F15 old_line:28 diff_line:28 pnt_line:18 first_char:r2 diff_result:r18 ptr:r18 i:r1 j:r1 first_diff:1     close_files:F15 open_infiles:F1 nodelist:p18 difflist:p18 nodelist:r18 difflist:r18 first_line:28 result:r18 temp:69=ar1;0;10;2 i:r1 j:r1 c_file:31   /usr/include/stdlib.h edit.c get_old_name:F15 temp_name:p18 temp_name:r18 temp:r18 i:r1 j:r1 k:r1 c_file:31         /usr/include/stdlib.h edit.c get_diff_name:F1 temp_name:p18 temp_name:r18 temp:r18 i:r1 j:r1 k:r1 c_file:31         old_file:G70=*17 diff_file:G70 new_file:G70 dirfind.o gcc2_compiled. /home/louis/parselist/ dirfind.c int:t1=r1;-2147483648;2147483647; char:t2=r2;0;127; long int:t3=r1;-2147483648;2147483647; unsigned int:t4=r1;0;-1; long unsigned int:t5=r1;0;-1; short int:t6=r1;-32768;32767; long long int:t7=r1;0;-1; short unsigned int:t8=r1;0;65535; long long unsigned int:t9=r1;0;-1; signed char:t10=r1;-128;127; unsigned char:t11=r1;0;255; float:t12=r1;4;0; double:t13=r1;8;0; long double:t14=r1;8;0; void:t15=15 size_t:t4 ssize_t:t1 time_t:t3 clock_t:t3 ptrdiff_t:t1 pid_t:t1 uid_t:t8 gid_t:t8 dev_t:t8 ino_t:t5 mode_t:t8 umode_t:t8 nlink_t:t8 daddr_t:t1 off_t:t3 u_char:t11 u_short:t8 u_int:t4 u_long:t5 unchar:t11 ushort:t8 uint:t4 ulong:t5 caddr_t:t16=*2 cc_t:t11 speed_t:t4 tcflag_t:t5 fd_set:t5 ustat:T17=s20f_tfree:1,0,32;f_tinode:5,32,32;\ f_fname:18=ar1;0;5;2,64,48;f_fpack:18,112,48;; direct:T19=s268d_ino:3,0,32;d_off:3,32,32;\ d_reclen:8,64,16;d_name:20=ar1;0;255;2,80,2048;; DIR:T21=s16dd_fd:1,0,32;dd_loc:1,32,32;\ dd_size:1,64,32;dd_buf:22=*19,96,32;; DIR:t21 find_t:T23=s256name:20,0,2048;; dirp:G24=*21 unixize:F15 dos:p16 un:p16 s:r16 d:r16 ch:r2   splitpath:F15 path:p16 file:p16 dir:p16 path:r16 file:r16 pos:r16   checkfile:F1 dp:p22 dp:r22 name:25=ar1;0;19;2 res:r1   ffirst:F1 name:p16 plouf:p1 fin:p26=*23 name:r16 un:20 dp:r22   fnext:F1 fin:p26 dp:r22   curr_filename:G20 curr_pathname:G20 str.o gcc2_compiled. /home/louis/parselist/ str.c int:t1=r1;-2147483648;2147483647; char:t2=r2;0;127; long int:t3=r1;-2147483648;2147483647; unsigned int:t4=r1;0;-1; long unsigned int:t5=r1;0;-1; short int:t6=r1;-32768;32767; long long int:t7=r1;0;-1; short unsigned int:t8=r1;0;65535; long long unsigned int:t9=r1;0;-1; signed char:t10=r1;-128;127; unsigned char:t11=r1;0;255; float:t12=r1;4;0; double:t13=r1;8;0; long double:t14=r1;8;0; void:t15=15 strupr:F16=*2 str:p16 str:r16 i:r1   strlwr:F16 str:p16 str:r16 i:r1   __main.o gcc2_compiled. /usr2/linux/src/gcc-2.2.2/ ./libgcc2.c int:t1=r1;-2147483648;2147483647; char:t2=r2;0;127; long int:t3=r1;-2147483648;2147483647; unsigned int:t4=r1;0;-1; long unsigned int:t5=r1;0;-1; short int:t6=r1;-32768;32767; long long int:t7=r1;0;-1; short unsigned int:t8=r1;0;65535; long long unsigned int:t9=r1;0;-1; signed char:t10=r1;-128;127; unsigned char:t11=r1;0;255; float:t12=r1;4;0; double:t13=r1;8;0; long double:t14=r1;8;0; void:t15=15 reg_class:T16=eNO_REGS:0,AREG:1,DREG:2,CREG:3,BREG:4,\ Q_REGS:5,SIREG:6,DIREG:7,INDEX_REGS:8,GENERAL_REGS:9,\ FP_TOP_REG:10,FP_SECOND_REG:11,FLOAT_REGS:12,ALL_REGS:13,\ LIM_REG_CLASSES:14,; ptrdiff_t:t1 size_t:t4 wchar_t:t3 longlong:T17=s8low:3,0,32;high:3,32,32;; long_long:T18=u8s:17,0,64;ll:7,0,64;; long_long:t18 func_ptr:t19=*20=f15 __do_global_dtors:F15 _exit_dummy_ref:G21=*1 __do_global_ctors:F15 _initialized.6 __main:F15 _exit.o gcc2_compiled. /usr2/linux/src/gcc-2.2.2/ ./libgcc2.c int:t1=r1;-2147483648;2147483647; char:t2=r2;0;127; long int:t3=r1;-2147483648;2147483647; unsigned int:t4=r1;0;-1; long unsigned int:t5=r1;0;-1; short int:t6=r1;-32768;32767; long long int:t7=r1;0;-1; short unsigned int:t8=r1;0;65535; long long unsigned int:t9=r1;0;-1; signed char:t10=r1;-128;127; unsigned char:t11=r1;0;255; float:t12=r1;4;0; double:t13=r1;8;0; long double:t14=r1;8;0; void:t15=15 reg_class:T16=eNO_REGS:0,AREG:1,DREG:2,CREG:3,BREG:4,\ Q_REGS:5,SIREG:6,DIREG:7,INDEX_REGS:8,GENERAL_REGS:9,\ FP_TOP_REG:10,FP_SECOND_REG:11,FLOAT_REGS:12,ALL_REGS:13,\ LIM_REG_CLASSES:14,; ptrdiff_t:t1 size_t:t4 wchar_t:t3 longlong:T17=s8low:3,0,32;high:3,32,32;; long_long:T18=u8s:17,0,64;ll:7,0,64;; long_long:t18 func_ptr:t19=*20=f15 _exit_dummy_decl:G1 __CTOR_LIST__:G21=ar1;0;1;19 __DTOR_LIST__:G21 __brk_addr.o __load.o __shared.o atexit.o bsdtime.o calloc.o close.o ctype-info.o ctype.o dirent.o environ.o exit.o fclose.o fflush.o fgets.o fopen.o fprintf.o fputs.o malloc.o open.o printf.o qsort.o regex.o rindex.o sprintf.o sscanf.o stdstrbufs.o strcasecmp.o string.o strncpy.o strstr.o strtol.o system.o time.o unlink.o write.o _mynode _open _buf _edit _qbbsidx _not_open_filebuf _intl_cost _intl_post_dl _fnext _txt_pagenum _official_crc _fix_up _mynet _isgraph _fidotxt _fidoprn ___SHARED_LIBRARIES__ _unixize _nzones _calloc __exit_dummy_decl _open_infiles _regfree __cin_sbuf _islower ___ctype_toupper _seanode _quickbbs _strtol _curr_filename _readdir _isdigit _sealist _strstr _isalpha _regexec _re_match_2 _strspn _tolower _strupr _add_files _close_files _iscntrl ___do_global_dtors ___DTOR_LIST__ _get_nl_list _et_head _strcat __edata _seekdir _re_match ___CTOR_LIST__ _country _strcmp _regcomp _size_report _strlwr _get_diff_name _strchr _strlen _strcpy ___do_global_ctors _isalnum _bd_head _get_old_name _filedir _nregions _new_name _sprintf _usezone _diff_file _strncasecmp _re_exec _new_node _printf ___load_shared_libraries __etext _comments ___exit_funcs _sscanf _re_search_2 _fn_head _re_comp _strrchr _strpbrk _system _new_file _out_type _isxdigit _strncpy _diff_name _doreport _old_node _dl_head _get_addr _curr_pathname _strncmp _checkfile _strcspn _old_name _do_points __9streambuf$_list_all _rindex _old_file _nredirect _et _nl _memmove _ph_head _co _cm _dl _bd _re_set_syntax _localtime _fn _prn_pagenum _pw _prn_pg_lines _ph ___ctype_b _co_head _seaptr _asctime _undash _seanodecnt _txt_first_line _closedir __cout_sbuf _re_max_failures _tzset ____brk_addr __end __cerr_sbuf _txt_pg_lines _fprintf _cm_head _seacnt _prn_first_line _seaidx _write _maxbaud _unlink _seanet _qsort _intl_pre_dl _malloc __exit_dummy_ref _memset _do_names _do_index _memcpy _parse_config _nextfield _how_likely _udata _mktime _qbbsnode _memchr _ispunct _memcmp _isupper _strcasecmp _version5 _version6 _version7 _bt_node _mymalloc _re_compile_fastmap _nfile_name _isspace _header _nnodes _rdata _isprint _rewinddir _likely _etext _opendir _environ _atexit _crcstr _t_str ___jump_libc_v4 _nodash ___morecore _ndown _nhubs ___ctype_tolower _time _calc_crc _splitpath _REV _process_file _seanetcnt _sbuf _npoints _fputs _binkley _telldir _nlist _tfn _myzone _re_search _ctime _re_compile_pattern _toupper _cmdbaud _nnets _exit _main _gmtime _pw_head _close _fflush _regerror _fopen _edata _end _fclose ___main _ffirst _spec_word _cmp _fgets _open_outfiles _dirp                                                                                                                                                                                                                                                                                                                                                                                                                                                    parselist/plst.tar                                                                                     644      62      62       360000  5263354677  13222  0                                                                                                    ustar   louis                           other                                                                                                                                                                                                                  data.c                                                                                                 664      50     144         4571  5246664512   5203                                                                                                                                                                                                                                                                                                                                                                      /*
                              Nodelist Parser

              This module was originally written by Bob Hartman
                       Sysop of FidoNet node 1:104/501

 This program source code is being released with the following provisions:

 1.  You are  free to make  changes to this source  code for use on your own
 machine,  however,  altered source files may not be distributed without the
 consent of Spark Software.

 2.  You may distribute "patches"  or  "diff" files for any changes that you
 have made, provided that the "patch" or "diff" files are also sent to Spark
 Software for inclusion in future releases of the entire package.   A "diff"
 file for the source archives may also contain a compiled version,  provided
 it is  clearly marked as not  being created  from the original source code.
 No other  executable  versions may be  distributed without  the  consent of
 Spark Software.

 3.  You are free to include portions of this source code in any program you
 develop, providing:  a) Credit is given to Spark Software for any code that
 may is used, and  b) The resulting program is free to anyone wanting to use
 it, including commercial and government users.

 4.  There is  NO  technical support  available for dealing with this source
 code, or the accompanying executable files.  This source  code  is provided
 as is, with no warranty expressed or implied (I hate legalease).   In other
 words, if you don't know what to do with it,  don't use it,  and if you are
 brave enough to use it, you're on your own.

*/

#include <stdio.h>
#include "types.h"

PWTRP pw_head = NULL;
PHTRP ph_head = NULL;
BDTRP bd_head = NULL;
DLTRP dl_head = NULL;
COTRP co_head = NULL;
ETTRP et_head = NULL;
CMTRP cm_head = NULL;
FNLST fn_head;
PWTRP pw;
PHTRP ph;
BDTRP bd;
DLTRP dl;
COTRP co;
ETTRP et;
CMTRP cm;
FNLSTP fn;
FNLSTP tfn;

char intl_pre_dl[30];
char intl_post_dl[30];
char t_str[128];
char country[10];
int intl_cost = 0;
int maxbaud = 9600;
int out_type = -1;
int rdata = 1;
int udata = 0;
int nlist = 1;
int doreport = 1;
int nodash = 0;
int comments = 0;
int version7 = 0;
int version6 = 0;
int version5 = 0;
int binkley = 0;
int myzone = -1;
int mynet;
int mynode;
int nzones;
int nregions;
int nnets;
int nhubs;
int ndown;
int nredirect;
int nnodes;
int npoints;
int likely;
int usezone;
int fidoprn;
int fidotxt;
int do_index;
int do_points;
int sealist = 0;
int quickbbs = 0;
char nl[1000];

                                                                                                                                       dirfind.c                                                                                              664      50     144         4011  5246664512   5676                                                                                                                                                                                                                                                                                                                                                                      #include "dos.h"

char curr_filename[256], curr_pathname[256];
DIR *dirp=NULL;

#define FILENAMELEN 13
#define ffirst _dos_findfirst
#define fnext _dos_findnext

void unixize(char *dos, char *un)
{
	char *s, *d, ch;

	s = dos;	/* source */
	d = un;		/* dest */
	while(*s) {
		ch = *s++;
		switch(ch) {
			case '\\':
				*d++ = '/';		/* first change all \ into / */
				break;
			case '?':
				*d++ = '.';		/* any char as ? */
				break;
			case '.':
				*d++ = '\\';	/* dot as \. */
				*d++ = '.';
				break;
			case '*':
				*d++ = '.';		/* any seq of char as .* */
				*d++ = '*';
				break;
			default:
				*d++ = ch;
				break;
		}
	}
	*d++ = '$';	/* end of line marker */
	*d = '\0';
}

void splitpath(char *path, char *file, char *dir)
{
	char *pos;

	file[0] = '\0';
	dir[0] = '\0';

	pos = rindex(path, '/');
	if (pos == 0)
		strcpy(file, path);
	else {
		*pos = '\0';
		strcpy(dir, path);
		pos++;
		strcpy(file, pos);
	}
}

/* checkfile returns TRUE when filename is correct */
int checkfile(struct direct *dp)
{
	char name[20];
	int res;

#ifdef BSD
	re_comp(curr_filename);
#endif

	if(dp->d_namlen > FILENAMELEN)
		res = 0;
	else {
		strncpy(name, dp->d_name, dp->d_namlen);
		name[dp->d_namlen] = '\0';
#ifdef BSD
		res = re_exec(name);
#else
		res = !recmp(curr_filename, name);
#endif
	}
	return res;
}

int ffirst(char *name, int plouf, struct find_t *fin)
{
	char un[256];
	struct direct *dp;

	unixize(name, un);
	splitpath(name, un, curr_pathname);
	unixize (un, curr_filename);

	if(dirp)
		closedir(dirp); /* cleanup for previous usage */

	dirp = opendir(curr_pathname);
	if (!dirp)
		return NULL;
	for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp))
		if (checkfile(dp)) {
			strcpy (fin->name, dp->d_name);
			return 0;
		}
	closedir(dirp);
	dirp = NULL;
	return 1;
}

int fnext(struct find_t *fin)
{
	struct direct *dp;

	if(!dirp)
		return NULL;

	for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp))
		if (checkfile(dp)) {
			strcpy (fin->name, dp->d_name);
			return 0;
		}
	closedir(dirp);
	dirp = NULL;
	return 1;
}
ash = 0;
int comments = 0;
int version7 = 0;
int version6 = 0;
int version5 = 0;
int binkley = 0;
int myzone = -1;
int mynet;
int mynode;
int nzones;
int nregions;
int nnets;
int nhubs;
int ndown;
int nredirect;
int nnodes;
int npoints;
int likely;
int usezone;
int fidoprn;
int fidotxt;
int do_index;
int do_points;
int sealist = 0;
int quickbbs = 0;
char nl[1000];

                                                                                                                                       dos.h                                                                                                  664      50     144           72  5246664514   5016                                                                                                                                                                                                                                                                                                                                                                      #include <sys/dir.h>

struct find_t {
	char name[256];
};
56];
DIR *dirp=NULL;

#define FILENAMELEN 13
#define ffirst _dos_findfirst
#define fnext _dos_findnext

void unixize(char *dos, char *un)
{
	char *s, *d, ch;

	s = dos;	/* source */
	d = un;		/* dest */
	while(*s) {
		ch = *s++;
		switch(ch) {
			case '\\':
				*d++ = '/';		/* first change all \ into / */
				break;
			case '?':
				*d++ = '.';		/* any char as ? */
				break;
			case '.':
				*d++ = '\\';	/* dot as \. */
				*d++ = '.';
				break;
		edit.c                                                                                                 664      50     144        25426  5246664512   5241                                                                                                                                                                                                                                                                                                                                                                      #include    "dos.h"
#include    <stdio.h>
#include    <ctype.h>
#include    <stdlib.h>
#include    <math.h>
#include    <malloc.h>
#include    <string.h>

#include    "types.h"
#include    "externs.h"

#ifndef OS2
#define dir_findfirst(a,b,c) _dos_findfirst(a,b,c)
#define dir_findnext(a) _dos_findnext(a)
#endif

#ifdef BSD
#define _A_NORMAL 0
#endif
/*
 *
 * -rev 04-16-87  (abbreviated)
 *  The CRC-16 routines used by XMODEM, YMODEM, and ZMODEM
 *  are also in this file, a fast table driven macro version
 */


/* crctab calculated by Mark G. Mendel, Network Systems Corporation */
static unsigned short crctab[256] = {
             0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,
             0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,
             0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,
             0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,
             0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,
             0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,
             0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,
             0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,
             0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,
             0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,
             0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,
             0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,
             0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,
             0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,
             0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,
             0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,
             0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,
             0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,
             0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,
             0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,
             0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,
             0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,
             0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,
             0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,
             0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,
             0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,
             0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,
             0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,
             0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,
             0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,
             0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,
             0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0
};

/*
 * updcrc macro derived from article Copyright (C) 1986 Stephen Satchell.
 *  NOTE: First srgument must be in range 0 to 255.
 *        Second argument is referenced twice.
 *
 * Programmers may incorporate any or all code into their programs,
 * giving proper credit within the source. Publication of the
 * source routines is permitted so long as proper credit is given
 * to Stephen Satchell, Satchell Evaluations and Chuck Forsberg,
 * Omen Technology.
 */

#define updcrc(cp, crc) ( crctab[((crc >> 8) & 255) ^ cp] ^ (crc << 8))

char            old_name[13] = "NODELIST.*";
char            new_name[13] = "NODELIST.";
char            diff_name[13] = "NODEDIFF.*";
FILE           *old_file, *diff_file, *new_file;
unsigned        official_crc = 0;
unsigned        calc_crc = 0;   /* Until I find out how to do the CRC */

unsigned crcstr (char *buf,unsigned crc)
{
   char           *p;

   p = buf;
   fix_up (p);

   while (*p)
      {
      crc = updcrc (*p++, crc);
      }

   return (crc);
}

void fix_up (char *buf)
{
   char           *p;

   p = buf + strlen (buf) - 1;
   if (*p == '\n')
      --p;
   if (*p == '\r')
      --p;
   while (*p == ' ')
      --p;
   strcpy (++p, "\r\n");

   /* Now get rid of rotten chars */
   p = buf;
   while (*p)
      {
      if ((unsigned char) *p >= 128)
         *p = '?';

      ++p;
      }
}

/* Add NODEDIFF to NODELIST */
void edit ()
{
   int             results;

   get_old_name (old_name);
   if (!get_diff_name (diff_name))
   {
      results = open_infiles (old_name, diff_name);
   }
   else
   {
      results = 1;
   }
   if (results == 0)
      add_files ();
   close_files ();
   return;
}

void add_files ()                    /* Actually put the new lines in here */
{
   char            old_line[256];
   char            diff_line[256];
   char           *pnt_line;
   char            first_char;
   char           *diff_result;
   char           *old_result;
   char           *ptr;
   int             i, j, k;
   int             first_diff;

   first_diff = 1;

   pnt_line = (char *) _nmalloc (256);

   while ((diff_result = fgets (diff_line, 256, diff_file)) != NULL)
   {
      strcpy (pnt_line, diff_line);
      first_char = diff_line[0];

      switch (first_char)
      {
         case ';':
            continue;

         case 'D':
            j = atoi (pnt_line + 1);
            for (i = 0; i < j; i++)
            {
               old_result = fgets (old_line, 256, old_file);
            }
            break;

         case 'A':
            j = atoi (pnt_line + 1);
            for (i = 0; i < j; i++)
            {
               diff_result = fgets (diff_line, 256, diff_file);
               if (!first_diff)
                  calc_crc = crcstr (diff_line, calc_crc);
               else
               {
                  first_diff = 0;
                  ptr = strrchr (diff_line, ':');
                  if (ptr != NULL)
                  {
                     ++ptr;
                     official_crc = atoi (ptr);
                  }
               }
               k = fputs (diff_line, new_file);
            }
            break;

         case 'C':
            j = atoi (pnt_line + 1);
            for (i = 0; i < j; i++)
            {
               diff_result = fgets (old_line, 256, old_file);
               calc_crc = crcstr (old_line, calc_crc);
               k = fputs (old_line, new_file);
            }
            break;

         default:
            printf ("\n\tI don't understand this line.\n");
            break;
      }
   }

   if (calc_crc != official_crc)
   {
      fputs (";A This nodelist does not have the proper CRC!\r\n", new_file);
      printf ("This nodelist does not have the proper CRC %u/%u!\n",
         calc_crc, official_crc);
      printf ("Please check out the problem and correct it.\n\n");
   }

   fprintf (new_file, "%c", '\032');

   return;
}

void close_files ()
{
   if (old_file != NULL)
      fclose (old_file);
   if (new_file != NULL)
      fclose (new_file);
   if (diff_file != NULL)
      fclose (diff_file);
   return;
}

int open_infiles (char *nodelist, char *difflist)
{
   char            first_line[256], *result;
   char            temp[11];
   int             i, j=0;
   struct find_t   c_file;

#ifndef OS2
   i = _dos_findfirst (new_name, _A_NORMAL, &c_file);
#else
   i = dir_findfirst (new_name, _A_NORMAL, &c_file);
#endif

   if (i == 0)
   {
      printf ("%s already exists.\n", new_name);
      return (1);
   }

   if (!(old_file = fopen (nodelist, "rb")))
   {
      printf ("Error opening old nodelist file!\n");
      return (1);
   }

   if (!(diff_file = fopen (difflist, "rb")))
   {
      printf ("Error opening nodediff file!\n");
      return (1);
   }

   result = fgets (first_line, 256, diff_file);

   for (i = 0; i < 80; i++)
      if (first_line[i] == ':')
         j = i;

   for (i = 0; i < 10; i++)
      temp[i] = first_line[i + j + 1];

   official_crc = atoi (temp);
   j -= 5;

   for (i = 0; i < 5; i++)
      temp[i] = first_line[i + j];

   temp[5] = '\0';
   j = atoi (temp);
   result = strrchr (nodelist, '.');
   result++;
   i = atoi (result);
   if (i != j)
   {
      printf ("NodeDiff doesn't match to existing Nodelist file! Skipping...\n");
      return (1);
   }
   new_file = fopen (new_name, "wb");
   if (new_file == NULL)
   {
      printf ("Can't open new nodelist file!\n");
      return (1);
   }
   printf ("Applying '%s' to '%s'\n", difflist, nodelist);
   return (0);
}

void get_old_name (char *temp_name)
{
   char           *temp;
   int             i=0, j, k;
   struct find_t   c_file;

   temp = (char *) _nmalloc (20);

#ifndef OS2
   j = _dos_findfirst (temp_name, _A_NORMAL, &c_file);
#else
   j = dir_findfirst (temp_name, _A_NORMAL, &c_file);
#endif

   while (j == 0)
   {
      temp = strrchr (c_file.name, '.');
      temp++;
      if (isdigit (*temp) && isdigit (*(temp+1)) && isdigit (*(temp+2)))
      {
         i = atoi (temp);
         strcpy (old_name, c_file.name);
         break;
      }
      else
      {
#ifndef OS2
         j = _dos_findnext (&c_file);
#else
         j = dir_findnext (&c_file);
#endif
      }
   }

   while (j == 0)
   {
#ifndef OS2
      j = _dos_findnext (&c_file);
#else
      j = dir_findnext (&c_file);
#endif
      temp = strrchr (c_file.name, '.');
      temp++;
      if (isdigit (*temp) && isdigit (*(temp+1)) && isdigit (*(temp+2)))
      {
         k = atoi (temp);

         if ((i < k && (k - i) < 300) ||
             (k < i && (k - i) > 300))
         {
            i = k;
            strcpy (old_name, c_file.name);
         }
      }
   }
   return;
}

int get_diff_name (char *temp_name)
{
   char           *temp;
   int             i=0, j, k;
   struct find_t   c_file;

   temp = (char *) _nmalloc (80);
#ifndef OS2
   j = _dos_findfirst (temp_name, _A_NORMAL, &c_file);
#else
   j = dir_findfirst (temp_name, _A_NORMAL, &c_file);
#endif
   if (j)
   {
      return (1);
   }

   while (j == 0)
   {
      temp = strrchr (c_file.name, '.');
      temp++;
      if (isdigit (*temp) && isdigit (*(temp+1)) && isdigit (*(temp+2)))
      {
         i = atoi (temp);
         strcpy (diff_name, c_file.name);
         break;
      }
      else
      {
#ifndef OS2
         j = _dos_findnext (&c_file);
#else
         j = dir_findnext (&c_file);
#endif
      }
   }

   if (j != 0)
      return (1);

   while (j == 0)
   {
#ifndef OS2
      j = _dos_findnext (&c_file);
#else
      j = dir_findnext (&c_file);
#endif
      temp = strrchr (c_file.name, '.');
      temp++;
      if (isdigit (*temp) && isdigit (*(temp+1)) && isdigit (*(temp+2)))
      {
         k = atoi (temp);
         if ((i < k && (k - i) < 300) ||
             (k < i && (k - i) > 300))
         {
            i = k;
            strcpy (diff_name, c_file.name);
         }
      }
   }

   temp = strrchr (diff_name, '.');
   temp++;
   strcat (new_name, temp);
   return (0);
}

8b, 0x9de8, 0x8dc9,
             0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,
             0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,
             0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2,externs.h                                                                                              664      50     144        11327  5246664512   6004                                                                                                                                                                                                                                                                                                                                                                      /*
                              Nodelist Parser

              This module was originally written by Bob Hartman
                       Sysop of FidoNet node 1:104/501

 This program source code is being released with the following provisions:

 1.  You are  free to make  changes to this source  code for use on your own
 machine,  however,  altered source files may not be distributed without the
 consent of Spark Software.

 2.  You may distribute "patches"  or  "diff" files for any changes that you
 have made, provided that the "patch" or "diff" files are also sent to Spark
 Software for inclusion in future releases of the entire package.   A "diff"
 file for the source archives may also contain a compiled version,  provided
 it is  clearly marked as not  being created  from the original source code.
 No other  executable  versions may be  distributed without  the  consent of
 Spark Software.

 3.  You are free to include portions of this source code in any program you
 develop, providing:  a) Credit is given to Spark Software for any code that
 may is used, and  b) The resulting program is free to anyone wanting to use
 it, including commercial and government users.

 4.  There is  NO  technical support  available for dealing with this source
 code, or the accompanying executable files.  This source  code  is provided
 as is, with no warranty expressed or implied (I hate legalease).   In other
 words, if you don't know what to do with it,  don't use it,  and if you are
 brave enough to use it, you're on your own.

*/

extern PWTRP pw_head;
extern PHTRP ph_head;
extern BDTRP bd_head;
extern DLTRP dl_head;
extern COTRP co_head;
extern ETTRP et_head;
extern CMTRP cm_head;
extern FNLST fn_head;
extern PWTRP pw;
extern PHTRP ph;
extern BDTRP bd;
extern DLTRP dl;
extern COTRP co;
extern ETTRP et;
extern CMTRP cm;
extern FNLSTP fn;

extern char intl_pre_dl[];
extern char intl_post_dl[];
extern char country[];
extern char t_str[];
extern int intl_cost;
extern int maxbaud;
extern int out_type;
extern int rdata;
extern int udata;
extern int nlist;
extern int doreport;
extern int nodash;
extern int comments;
extern int version7;
extern int version6;
extern int version5;
extern int myzone;
extern int mynet;
extern int mynode;
extern int nzones;
extern int nregions;
extern int nnets;
extern int nhubs;
extern int ndown;
extern int nredirect;
extern int nnodes;
extern int npoints;
extern int likely;
extern int usezone;
extern int fidoprn;
extern int fidotxt;
extern int do_index;
extern int do_points;
extern int sealist;
extern int binkley;
extern int quickbbs;
extern char nl[1000];

extern    char      *mymalloc(unsigned int s);
extern    char      *nextfield(char *p,char *s);
extern    void      add_files(void );
extern    void      close_files(void );
extern    int       cmp(struct nidxs *a,struct nidxs *b);
extern unsigned int crcstr(char *buf,unsigned int crc);
extern    int       dir_findfirst(char *filename,int attribute,struct find_t *dta);
extern    int       dir_findnext(struct find_t *dta);
extern    void      do_names(void );
extern    void      edit(void );
#ifndef OS2
extern    int       fast_close(int f);
extern    int       OFAST_CLOSE(int f);
extern    int       fast_open(char *name,int mode,int pmode);
extern    int       OFAST_OPEN(char *name,int mode);
extern    int       fast_read(int f,char *st,unsigned int l);
extern    int       OFAST_READ(int f,char *st,unsigned int l);
extern    int       O1FAST_READ(int f,char far *st,unsigned int l);
extern    int       fast_write(int f,char *st,unsigned int l);
extern    int       OFAST_WRITE(int f,char *st,unsigned int l);
extern    int       O1FAST_WRITE(int f,char far *st,unsigned int l);
extern    char far  *_FMALLOC1(unsigned int l);
extern    void      _FFREE1(char far *st);
#endif
extern    char      filedir(char *name,int times,char *ret_str,int mode);
extern    void      fix_up(char *buf);
extern    void      get_addr(char *s,int *z,int *net,int *node);
extern    int       get_diff_name(char *temp_name);
extern    void      get_nl_list(void );
extern    void      get_old_name(char *temp_name);
extern    void      header(int which);
extern    void      how_likely(char *p,int dphone,int *addrs,int node,int n_baud);
extern    int       main(int argc,char * *argv);
extern    void      MEM1CPY(char far *dest, char *src, int len);
extern    void      MEM2CPY(char *dest, char far *src, int len);
extern    void      nfile_name(char * *fn);
extern    int       open_infiles(char *nodelist,char *difflist);
extern    void      open_outfiles(void );
extern    void      parse_config(char *filename,char *mylist,char *pvtlist);
extern    void      process_file(int times);
extern    void      size_report(void );
extern    void      spec_word(char *b1);
extern    void      undash(char *str);

st_char)
      {
         case ';':
            continue;

         case 'D':
            j = atoi (pnt_line + 1);
            for (i = 0; i < j; i++)
            {
               old_result = fgets (old_line, 256, old_file);
            }
            break;

         case 'A':
            j = atfuncs.h                                                                                                664      50     144         5211  5246664512   5405                                                                                                                                                                                                                                                                                                                                                                      /*
                       Message Base Reply Chain Linker

              This module was originally written by Bob Hartman
                       Sysop of FidoNet node 1:104/501

 This program source code is being released with the following provisions:

 1.  You are  free to make  changes to this source  code for use on your own
 machine,  however,  altered source files may not be distributed without the
 consent of Spark Software.

 2.  You may distribute "patches"  or  "diff" files for any changes that you
 have made, provided that the "patch" or "diff" files are also sent to Spark
 Software for inclusion in future releases of the entire package.   A "diff"
 file for the source archives may also contain a compiled version,  provided
 it is  clearly marked as not  being created  from the original source code.
 No other  executable  versions may be  distributed without  the  consent of
 Spark Software.

 3.  You are free to include portions of this source code in any program you
 develop, providing:  a) Credit is given to Spark Software for any code that
 may is used, and  b) The resulting program is free to anyone wanting to use
 it, including commercial and government users.

 4.  There is  NO  technical support  available for dealing with this source
 code, or the accompanying executable files.  This source  code  is provided
 as is, with no warranty expressed or implied (I hate legalease).   In other
 words, if you don't know what to do with it,  don't use it,  and if you are
 brave enough to use it, you're on your own.

*/

extern  int get_word(char * *from,char *new);
extern  int compile_areas(char *fname);
extern  int get_fido_sys(char *s,int q);
extern void main(int argc,char * *argv);
extern  unsigned int calcrc(char *ptr);
extern  int compare(struct msgtyp *arg1,struct msgtyp *arg2);
extern void update(void);
extern void read_msg_data(void );
extern void fancy_str(char *value);
extern  int get_system(char *where,SYS *ret_system);
extern void relink(void );
extern  int go_directory(char *dir,char *save);
extern void msglink_usage(void );
extern  unsigned int xcrc(unsigned int crc, unsigned char r);
extern  int filedir(char *name,int times,char *ret_str,int mode);
#ifndef OS_2
extern int fast_open(char *path, int oflag);
extern int fast_read(int handle, char *buffer, unsigned int count);
extern int fast_write(int handle, char *buffer, unsigned int count);
extern long fast_lseek(int handle, long offset, int origin);
extern int fast_close(int handle);
#else
extern long filedir1(char *name,int times,char *ret_str);
extern  int dir_findfirst(char *filename,int attribute,struct find_t *dta);
extern  int dir_findnext(struct find_t *dta);
#endif

har *p,char *s);
extern    void      add_files(void );
extern    void      close_files(void );
extern    int       cmp(struct nidxs *a,struct nidxs *b);
extern unsigned int crcstr(char *buf,unsigned int crc);
extern    int       dir_findfirst(char *filename,int attribute,struct find_t *dta);
extern    int       dir_findnext(struct find_t *dta);
extern    void      do_namesmakefile                                                                                               664      50     144         1546  5246664514   5627                                                                                                                                                                                                                                                                                                                                                                      CC=gcc
CFLAGS=-g -O -c -Dfar= -DO_BINARY=0 -DBSD -D_nmalloc=malloc -Dstricmp=strcasecmp -Dstrnicmp=strncasecmp

OBJECT1 = parselst.o parsecfg.o misc.o data.o report.o
OBJECT2 = names.o edit.o dirfind.o

OBJECTS = $(OBJECT1) $(OBJECT2)

parselst: $(OBJECTS)
	$(CC) -o parselst $(OBJECTS) str.o strstr.o -lregexp
#
# Dependencies for .C files and compiler line to generate 'em.
#

parselst.o : parselst.c externs.h types.h 
	$(CC) $(CFLAGS) $*.c

parsecfg.o : parsecfg.c externs.h types.h 
	$(CC) $(CFLAGS) $*.c

misc.o : misc.c externs.h types.h 
	$(CC) $(CFLAGS) $*.c

data.o : data.c externs.h types.h 
	$(CC) $(CFLAGS) $*.c

report.o : report.c externs.h types.h 
	$(CC) $(CFLAGS) $*.c

names.o : names.c externs.h types.h 
	$(CC) $(CFLAGS) $*.c

edit.o : edit.c externs.h types.h 
	$(CC) $(CFLAGS) $*.c

dirfind.o : dirfind.c externs.h types.h 
	$(CC) $(CFLAGS) $*.c
uted without  the  consent of
 Spark Software.

 3.  You are free to include portions of this source code in any program you
 develop, providing:  a) Credmisc.c                                                                                                 664      50     144        12472  5246664514   5246                                                                                                                                                                                                                                                                                                                                                                      /*
                              Nodelist Parser

              This module was originally written by Bob Hartman
                       Sysop of FidoNet node 1:104/501

 This program source code is being released with the following provisions:

 1.  You are  free to make  changes to this source  code for use on your own
 machine,  however,  altered source files may not be distributed without the
 consent of Spark Software.

 2.  You may distribute "patches"  or  "diff" files for any changes that you
 have made, provided that the "patch" or "diff" files are also sent to Spark
 Software for inclusion in future releases of the entire package.   A "diff"
 file for the source archives may also contain a compiled version,  provided
 it is  clearly marked as not  being created  from the original source code.
 No other  executable  versions may be  distributed without  the  consent of
 Spark Software.

 3.  You are free to include portions of this source code in any program you
 develop, providing:  a) Credit is given to Spark Software for any code that
 may is used, and  b) The resulting program is free to anyone wanting to use
 it, including commercial and government users.

 4.  There is  NO  technical support  available for dealing with this source
 code, or the accompanying executable files.  This source  code  is provided
 as is, with no warranty expressed or implied (I hate legalease).   In other
 words, if you don't know what to do with it,  don't use it,  and if you are
 brave enough to use it, you're on your own.

*/

#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include "dos.h"
#include <time.h>
#include <stdlib.h>

#include "types.h"
#include "externs.h"

#ifndef OS2
#define dir_findfirst(a,b,c) _dos_findfirst(a,b,c)
#define dir_findnext(a) _dos_findnext(a)
#endif

int cmp (struct nidxs *a,struct nidxs *b)
{
   if (a->idxnet < b->idxnet)
      {
      return (-1);
      }
   else if (a->idxnet > b->idxnet)
      {
      return (1);
      }
   else
      {
      return (a->idxnode - b->idxnode);
      }
}

/* Returns the next field that ends with a comma or newline */
char *nextfield (char *p,char *s)
{
   while ((*p) && (*p != ',') && (*p != '\n'))
      {
      *s++ = *p++;
      }
   *s = '\0';
   return (++p);
}

/* Converts a "special" word to upper case and appends a space */
void spec_word (char *b1)
{
   char *p1;

   strupr (b1);
   p1 = b1 + strlen (b1);
   *p1++ = ' ';
   *p1 = '\0';
}

/* Uses malloc() to get memory, but exits on allocation error */
char *mymalloc(unsigned int s)
{
   char *p;
  /*  extern char *malloc(); */

   p = malloc (s);
   if (p == NULL)
      {
      printf ("\n\nNot Enough Memory - Exiting\n\n");
      exit (1);
      }
   return (p);
}

/* Gets the name of the nodelist that should be processed this run */
void nfile_name (char **fn)
{
   int i;
   long t;
   struct tm *tm1, *localtime();

   /* Get todays info */
   time (&t);
   tm1 = localtime (&t);

   /* find all NODELIST.* files and if end in number, put in array */
   get_nl_list ();

   for (i = tm1->tm_yday + 1; i >= 0; i--)
      {
      if (nl[i])
         {
         *fn = mymalloc (13);
         sprintf (*fn, "NODELIST.%03d", i);
         return;
         }
      }

   /* If no nodelist files, try last years */
   for (i = 366; i >= tm1->tm_yday; i--)
      {
      if (nl[i])
         {
         *fn = mymalloc (13);
         sprintf (*fn, "NODELIST.%03d", i);
         return;
         }
      }

   /* If still nothing, try the big numbers */
   for (i = 999; i >= 367; i--)
      {
      if (nl[i])
         {
         *fn = mymalloc (13);
         sprintf (*fn, "NODELIST.%03d", i);
         return;
         }
      }

   printf ("\n\nCannot find a valid NODELIST.xxx file - Exiting\n\n");
   exit (1);
}

/* Remove dashes from the string */
void undash (char *str)
{
   char *p, *p1;

   p = str;
   p1 = str;
   while (*p)
      {
      if (*p != '-')
         *p1++ = *p;
      ++p;
      }
   *p1 = '\0';
}

void
get_nl_list ()
{
   char str[13];
   char init_name[13];
   int i, d;

   /* Start out by initializing what we are looking for */
   strcpy (init_name, "NODELIST.*");
   d = 0;

   /* Now loop through getting each file name that matches,
      and copying the number into the array */
   do
      {
      (void) filedir (init_name, d, str, 0);
      i = 0;
      d = 1;
      sscanf (str, "NODELIST.%d", &i);

      if ((i > 0) &&
          (isdigit (str[9])) &&
          (isdigit (str[10])) &&
          (isdigit (str[11])))
         {
         nl[i] = 1;
         }
      }
   while (str[0] != '\0');
}

struct find_t sbuf;

char filedir (char *name,int times,char *ret_str,int mode)
{
    if (times == 0)
        {
#ifndef OS2
        if (_dos_findfirst (name, mode, &sbuf))
#else
        if (dir_findfirst (name, mode, &sbuf))
#endif
            sbuf.name[0] = '\0';
        strcpy (ret_str, sbuf.name);
        }
    else
        {
#ifndef OS2
        if (_dos_findnext (&sbuf))
#else
        if (dir_findnext (&sbuf))
#endif
            sbuf.name[0] = '\0';
        strcpy (ret_str, sbuf.name);
        }

    return 0;
    }

void get_addr (char *s,int *z,int *net,int *node)
{
   if (sscanf (s, "%d:%d/%d", z, net, node) != 3)
      {
      *z = myzone;
      if (sscanf (s, "%d/%d", net, node) != 2)
         {
         *node = *net;
         *net = mynet;
         }
      }
}

tr(char *buf,unsigned int crc);
extern    int       dir_findfirst(char *filename,int attribute,struct find_t *dta);
extern    int       dir_findnext(struct find_t *dta);
extern    void      do_namesnames.c                                                                                                664      50     144        10502  5246664514   5406                                                                                                                                                                                                                                                                                                                                                                      /*
                              Nodelist Parser

              This module was originally written by Bob Hartman
                       Sysop of FidoNet node 1:104/501

 This program source code is being released with the following provisions:

 1.  You are  free to make  changes to this source  code for use on your own
 machine,  however,  altered source files may not be distributed without the
 consent of Spark Software.

 2.  You may distribute "patches"  or  "diff" files for any changes that you
 have made, provided that the "patch" or "diff" files are also sent to Spark
 Software for inclusion in future releases of the entire package.   A "diff"
 file for the source archives may also contain a compiled version,  provided
 it is  clearly marked as not  being created  from the original source code.
 No other  executable  versions may be  distributed without  the  consent of
 Spark Software.

 3.  You are free to include portions of this source code in any program you
 develop, providing:  a) Credit is given to Spark Software for any code that
 may is used, and  b) The resulting program is free to anyone wanting to use
 it, including commercial and government users.

 4.  There is  NO  technical support  available for dealing with this source
 code, or the accompanying executable files.  This source  code  is provided
 as is, with no warranty expressed or implied (I hate legalease).   In other
 words, if you don't know what to do with it,  don't use it,  and if you are
 brave enough to use it, you're on your own.

*/

#include <stdio.h>
#include <ctype.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>

#include "types.h"
#include "externs.h"

void
do_names ()
{
   FILE *o1, *o2;
   char b1[50];

   printf ("Sorting SysOp Name Data\n\n");
#ifndef OS2
   (void) system ("qsort Fidouser.$$1 /+1:41 /-61:5 /-41:13 /+55:6");
#else
   (void) system ("QSort Fidouser.$$1 /+1:41 /-61:5 /-41:13 /+55:6");
#endif
   if ((o1 = fopen ("FIDOUSER.$$1", "r")) == NULL)
      {
      }
   if ((o2 = fopen ("FIDOUSER.LST", "w")) == NULL)
      {
      }
   b1[0] = '\0';
   nnodes = 0;
   printf ("\nDeleting Duplicate SysOp Names\n");
   while (fgets (t_str, 127, o1) != NULL)
      {
      if (strncmp (t_str, b1, 40) == 0)
         {
         continue;
         }
      ++nnodes;
      if (nnodes % 100 == 0)
         printf ("\r%d", nnodes);
      t_str[60] = '\n';
      t_str[61] = '\0';
      fputs (t_str, o2);
      strncpy (b1, t_str, 40);
      }
   printf ("\r%d Unique SysOp Names Found in Network\n", nnodes);
   fclose (o1);
   fclose (o2);
   unlink ("FIDOUSER.$$1");
}

/* Just some random equation to determine likelihood of current address
   being the correct default address for an individual (a good guess -
   at least I hope so <grin>).  */
void how_likely (char *p,int dphone,int *addrs,int node,int n_baud)
{
   /* It is less likely if it is a coordinator node */
   if (dphone || (node == 0))
      {
      likely = 6000;
      }
   else
      {
      likely = 8000;
      }

   /* If its not in my zone, punish it */
   if ((myzone > 0) && (addrs[0] != myzone))
      likely -= 3000;

   /* If it is a "normal" net number, add something to it */
   if ((addrs[2] >= 100) && (addrs[2] <= 999))
      likely += 2000 + addrs[2];
   /* If it is a region, that is better than a private net */
   else if (addrs[2] < 100)
      likely += 250;
   /* Otherwise, it is probably bad news */
   else
      likely -= 1000;

   /* Prefer the higher baud rate */
   likely += n_baud / 8;

   /* CM or XP or WZ is real nice */
   if (strstr (p, "CM"))
      {
      likely += 2500;
      }
   else if (strstr (p, "XP"))
      {
      likely += 2500;
      }
   else if (strstr (p, "WZ"))
      {
      likely += 2500;
      }

   /* Favor WZ a bit more */
   if (strstr (p, "WZ"))
      {
      likely += 100;
      }

   /* If it is mail only, then it is probably not his primary */
   if (strstr (p, "MO"))
      {
      likely -= 100;
      }

   /* Don't be fooled if has restricted hours, probably not primary */
   if (strstr (p, "WK"))
      {
      likely -= 100;
      }
   if (strstr (p, "WE"))
      {
      likely -= 100;
      }
   if (strstr (p, "DA"))
      {
      likely -= 100;
      }

   /* If it is a coordinator, punish it depending on what type of coord */
   if (dphone)
      likely -= (5 - dphone) * 75;
}

 int len);
extern    void      nfile_name(char * *fn);
extern    int       open_infiles(char *nodelist,char *difflist);
extern    void      open_outfiles(void );
extern    void      parse_coparsecfg.c                                                                                             664      50     144        47315  5246664514   6111                                                                                                                                                                                                                                                                                                                                                                      /*
                              Nodelist Parser

              This module was originally written by Bob Hartman
                       Sysop of FidoNet node 1:104/501

 This program source code is being released with the following provisions:

 1.  You are  free to make  changes to this source  code for use on your own
 machine,  however,  altered source files may not be distributed without the
 consent of Spark Software.

 2.  You may distribute "patches"  or  "diff" files for any changes that you
 have made, provided that the "patch" or "diff" files are also sent to Spark
 Software for inclusion in future releases of the entire package.   A "diff"
 file for the source archives may also contain a compiled version,  provided
 it is  clearly marked as not  being created  from the original source code.
 No other  executable  versions may be  distributed without  the  consent of
 Spark Software.

 3.  You are free to include portions of this source code in any program you
 develop, providing:  a) Credit is given to Spark Software for any code that
 may is used, and  b) The resulting program is free to anyone wanting to use
 it, including commercial and government users.

 4.  There is  NO  technical support  available for dealing with this source
 code, or the accompanying executable files.  This source  code  is provided
 as is, with no warranty expressed or implied (I hate legalease).   In other
 words, if you don't know what to do with it,  don't use it,  and if you are
 brave enough to use it, you're on your own.

*/

#include <stdio.h>
#include <ctype.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <time.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>

#include "types.h"
#include "externs.h"

static char t_buff[128];

void parse_config (char *filename,char *mylist,char *pvtlist)
{
   FILE *f1;
   PWTRP tpw;
   PHTRP tph;
   BDTRP tbd;
   DLTRP tdl;
   COTRP tco;
   ETTRP tet;
   CMTRP tcm;
   FNLSTP tfn;
   int foo1;
   char *p, *p1, *p2, *p3;
/* extern char *strchr(); */

   /* Need to read in the configuration options from control file */
   if ((f1 = fopen (filename, "r")) != NULL)
      {
      /*strupr (filename); nooo */
      printf ("Processing Configuration File '%s'\n", filename);

      if(mylist)
         {
         tfn = (FNLSTP) mymalloc (sizeof (FNLST));
         tfn->fname = mymalloc (64);
         tfn->fname=mylist;
         mylist=NULL;
         strupr (tfn->fname);
         tfn->next = NULL;
         tfn->private = 1;
         fn->next = tfn;
         fn = tfn;
         }

      if(pvtlist)
         {
         tfn = (FNLSTP) mymalloc (sizeof (FNLST));
         tfn->fname = mymalloc (64);
         tfn->fname=pvtlist;
         strupr (tfn->fname);
         pvtlist=NULL;
         tfn->next = NULL;
         tfn->private = 1;
         fn->next = tfn;
         fn = tfn;
         }

      while (fgets (t_buff, 127, f1) != NULL)
         {
         if ((p3 = strchr (t_buff, ';')) != NULL)
            *p3 = '\0';

         p2 = t_buff;
         while ((*p2) && (isspace (*p2)))
            {
            ++p2;
            }

         if ((*p2 == ';') || isspace (*p2) || (*p2 == '\0'))
            continue;

         if (strnicmp (p2, "publist", 7) == 0)
            {
            printf ("PUBLIST statement not supported\n");
            continue;
            }
         if (strnicmp (p2, "cleanup", 7) == 0)
            {
            printf ("CLEANUP statement not supported\n");
            continue;
            }
         if (strnicmp (p2, "ozone", 5) == 0)
            {
            printf ("OZONE statement not supported\n");
            continue;
            }
         if (strnicmp (p2, "addr", 4) == 0)
            {
            printf ("ADDR statement not supported\n");
            continue;
            }
         if (strnicmp (p2, "points", 6) == 0)
            {
            printf ("POINTS statement not supported\n");
            continue;
            }
         if (strnicmp (p2, "index", 5) == 0)
            {
            printf ("INDEX statement not supported\n");
            continue;
            }
         if (strnicmp (p2, "sindex", 6) == 0)
            {
            printf ("SINDEX statement not supported\n");
            continue;
            }

         if (strnicmp (p2, "fidoprn", 7) == 0)
            {
            fidoprn = 1;
            continue;
            }
         if (strnicmp (p2, "fidotxt", 7) == 0)
            {
            fidotxt = 1;
            continue;
            }
         if (strnicmp (p2, "nofidolist", 10) == 0)
            {
            fidoprn = 0;
            fidotxt = 0;
            continue;
            }
         if (strnicmp (p2, "noindex", 7) == 0)
            {
            do_index = 0;
            continue;
            }
         if (strnicmp (p2, "nopoints", 8) == 0)
            {
            do_points = 0;
            continue;
            }
         if ((strnicmp (p2, "seadog", 6) == 0) ||
             (strnicmp (p2, "gated", 5) == 0))
            {
            out_type = 1;
            continue;
            }
         if ((strnicmp (p2, "fido", 4) == 0) ||
             (strnicmp (p2, "opus", 4) == 0) ||
             (strnicmp (p2, "binkley", 7) == 0) ||
             (strnicmp (p2, "complete", 8) == 0))
            {
            out_type = 0;
            continue;
            }
         if (strnicmp (p2, "version7", 8) == 0)
            {
            version7 = 1;
            continue;
            }
         if ((strnicmp (p2, "newopus", 7) == 0) || (strnicmp (p2, "version6", 8) == 0))
            {
            version6 = 1;
            continue;
            }
         if ((strnicmp (p2, "oldopus", 7) == 0) || (strnicmp (p2, "version5", 8) == 0))
            {
            version5 = 1;
            continue;
            }
         if (strnicmp (p2, "tbbslist", 8) == 0)
            {
            sealist = 1;
            continue;
            }
         if (strnicmp (p2, "binklist", 8) == 0)
            {
            binkley = 1;
            continue;
            }
         if (strnicmp (p2, "quickbbslist", 12) == 0)
            {
            quickbbs = 1;
            continue;
            }
         if (strnicmp (p2, "igate", 5) == 0)
            {
            tet = (ETTRP) mymalloc (sizeof (ETTR));
            get_addr (&p2[5], &(tet->zone), &(tet->net), &(tet->node));
            tet->etype = 'I';
            tet->next = NULL;
            if (et_head == NULL)
               {
               et_head = tet;
               }
            else
               {
               et->next = tet;
               }
            et = tet;
            continue;
            }
         if (strnicmp (p2, "ogate", 5) == 0)
            {
            tet = (ETTRP) mymalloc (sizeof (ETTR));
            get_addr (&p2[5], &(tet->zone), &(tet->net), &(tet->node));
            tet->etype = 'O';
            tet->next = NULL;
            if (et_head == NULL)
               {
               et_head = tet;
               }
            else
               {
               et->next = tet;
               }
            et = tet;
            continue;
            }
         if (strnicmp (p2, "gate", 4) == 0)
            {
            tet = (ETTRP) mymalloc (sizeof (ETTR));
            get_addr (&p2[4], &(tet->zone), &(tet->net), &(tet->node));
            tet->etype = 'G';
            tet->next = NULL;
            if (et_head == NULL)
               {
               et_head = tet;
               }
            else
               {
               et->next = tet;
               }
            et = tet;
            continue;
            }
         if (strnicmp (p2, "hub", 3) == 0)
            {
            tet = (ETTRP) mymalloc (sizeof (ETTR));
            get_addr (&p2[3], &(tet->zone), &(tet->net), &(tet->node));
            tet->etype = 'H';
            tet->next = NULL;
            if (et_head == NULL)
               {
               et_head = tet;
               }
            else
               {
               et->next = tet;
               }
            et = tet;
            continue;
            }
         if (strnicmp (p2, "include", 7) == 0)
            {
            p = &p2[7];
            while ((*p) && isspace (*p))
               {
               ++p;
               }

            p1 = p;
            while ((*p) && (!isspace (*p)))
               {
               ++p;
               }
            *p = '\0';

            parse_config (p1, mylist, pvtlist);
            printf ("Continuing Processing on File '%s'\n", filename);
            continue;
            }
         if (strnicmp (p2, "comments", 8) == 0)
            {
            comments = 1;
            continue;
            }
         if (strnicmp (p2, "nocomments", 10) == 0)
            {
            comments = 0;
            continue;
            }
         if (strnicmp (p2, "usezone", 7) == 0)
            {
            usezone = 1;
            continue;
            }
         if (strnicmp (p2, "report", 6) == 0)
            {
            doreport = 1;
            continue;
            }
         if (strnicmp (p2, "noreport", 8) == 0)
            {
            doreport = 0;
            continue;
            }
         if (strnicmp (p2, "dash", 4) == 0)
            {
            nodash = 0;
            continue;
            }
         if (strnicmp (p2, "nodash", 6) == 0)
            {
            nodash = 1;
            continue;
            }
         if (strnicmp (p2, "nonodelist", 10) == 0)
            {
            nlist = 0;
            continue;
            }
         if (strnicmp (p2, "nodelist", 8) == 0)
            {
            nlist = 1;
            continue;
            }
         if (strnicmp (p2, "nouserlist", 10) == 0)
            {
            udata = 0;
            continue;
            }
         if (strnicmp (p2, "userlist", 8) == 0)
            {
            udata = 2;
            continue;
            }
         if (strnicmp (p2, "interlist", 9) == 0)
            {
            udata = 1;
            continue;
            }
         if (strnicmp (p2, "node", 4) == 0)
            {
            if (sscanf (&p2[4], "%d:%d/%d", &myzone, &mynet, &mynode) != 3)
               {
               myzone = -1;
               if (sscanf (&p2[4], "%d/%d", &mynet, &mynode) != 2)
                  {
                  continue;
                  }
               }
            continue;
            }
         if (strnicmp (p2, "route", 5) == 0)
            {
            rdata = 1;
            continue;
            }
         if (strnicmp (p2, "noroute", 7) == 0)
            {
            rdata = 0;
            continue;
            }
         if (strnicmp (p2, "country", 7) == 0)
            {
            sscanf (&p2[7], "%s", country);
            continue;
            }
         if (strnicmp (p2, "mylist", 6) == 0)
            {
            tfn = (FNLSTP) mymalloc (sizeof (FNLST));
            tfn->fname = mymalloc (64);
            sscanf (&p2[7], "%s", tfn->fname);
            strupr (tfn->fname);
            tfn->next = NULL;
            tfn->private = 0;
            fn->next = tfn;
            fn = tfn;
            continue;
            }
         if (strnicmp (p2, "pvtlist", 7) == 0)
            {
            tfn = (FNLSTP) mymalloc (sizeof (FNLST));
            tfn->fname = mymalloc (64);
            sscanf (&p2[7], "%s", tfn->fname);
            strupr (tfn->fname);
            tfn->next = NULL;
            tfn->private = 1;
            fn->next = tfn;
            fn = tfn;
            continue;
            }
         if (strnicmp (p2, "maxbaud", 7) == 0)
            {
            maxbaud = atoi (&p2[7]);
            continue;
            }
         if (strnicmp (p2, "phone", 5) == 0)
            {
            tph = (PHTRP) mymalloc (sizeof (PHTR));
            tph->num = mymalloc (30);
            if (sscanf (&p2[5], "%d:%d/%d %s", &(tph->zone), &(tph->net), &(tph->node), tph->num) != 4)
               {
               tph->zone = myzone;
               sscanf (&p2[5], "%d/%d %s", &(tph->net), &(tph->node), tph->num);
               }
            tph->next = NULL;
            if (ph_head == NULL)
               {
               ph_head = tph;
               }
            else
               {
               ph->next = tph;
               }
            ph = tph;
            continue;
            }
         if (strnicmp (p2, "password", 8) == 0)
            {
            tpw = (PWTRP) mymalloc (sizeof (PWTR));
            tpw->pw = mymalloc (30);
            if (sscanf (&p2[8], "%d:%d/%d %s", &(tpw->zone), &(tpw->net), &(tpw->node), &(tpw->pw[1])) != 4)
               {
               sscanf (&p2[8], "%d/%d %s", &(tpw->net), &(tpw->node), &(tpw->pw[1]));
               tpw->zone = myzone;
               }
            tpw->pw[0] = '!';
            strlwr (tpw->pw);
            tpw->next = NULL;
            if (pw_head == NULL)
               {
               pw_head = tpw;
               }
            else
               {
               pw->next = tpw;
               }
            pw = tpw;
            continue;
            }
         if (strnicmp (p2, "cm", 2) == 0)
            {
            tcm = (CMTRP) mymalloc (sizeof (CMTR));
            get_addr (&p2[2], &(tcm->zone), &(tcm->net), &(tcm->node));
            tcm->next = NULL;
            if (cm_head == NULL)
               {
               cm_head = tcm;
               }
            else
               {
               cm->next = tcm;
               }
            cm = tcm;
            continue;
            }
         if (strnicmp (p2, "baud", 4) == 0)
            {
            tbd = (BDTRP) mymalloc (sizeof (BDTR));
            if (sscanf (&p2[4], "%d:%d/%d %d", &(tbd->zone), &(tbd->net), &(tbd->node), &(tbd->baud)) != 4)
               {
               sscanf (&p2[4], "%d/%d %d", &(tbd->net), &(tbd->node), &(tbd->baud));
               tbd->zone = myzone;
               }
            tbd->next = NULL;
            if (bd_head == NULL)
               {
               bd_head = tbd;
               }
            else
               {
               bd->next = tbd;
               }
            bd = tbd;
            continue;
            }
         if (strnicmp (p2, "dial", 4) == 0)
            {
            /* Save the defaults */
            strcpy (t_str, &p2[4]);

            while (fgets (t_buff, 127, f1) != NULL)
               {
               p2 = t_buff;
               if ((p3 = strchr (p2, ';')) != NULL)
                  *p3 = '\0';

               while (isspace (*p2) && *p2)
                  ++p2;

               if (strnicmp (p2, "end", 3) == 0)
                  {
                  break;
                  }

               /* Process each line of dial */
               p = p2;
               while ((*p) && (isspace (*p)))
                  {
                  ++p;
                  }

               if ((*p == ';') || (*p == '\0'))
                  {
                  continue;
                  }

               tdl = (DLTRP) mymalloc (sizeof (DLTR));
               tdl->mstr = mymalloc (30);
               tdl->pre  = mymalloc (30);
               tdl->post = mymalloc (30);

               p1 = tdl->mstr;
               while ((*p) && (!isspace (*p)))
                  {
                  *p1++ = *p++;
                  }
               *p1 = '\0';

               while ((*p) && (isspace (*p)))
                  {
                  ++p;
                  }

               p1 = tdl->pre;
               while ((*p) && (*p != '/') && (!isspace(*p)))
                  {
                  *p1++ = *p++;
                  }
               *p1 = '\0';

               p1 = tdl->post;
               if ((*p == '\0') || (isspace (*p)))
                  {
                  *p1 = '\0';
                  }
               else
                  {
                  ++p;

                  while ((*p) && (!isspace (*p)))
                     {
                     *p1++ = *p++;
                     }
                  *p1 = '\0';
                  }

               tdl->mlen = strlen (tdl->mstr);
               tdl->next = NULL;
               if (dl_head == NULL)
                  {
                  dl_head = tdl;
                  }
               else
                  {
                  dl->next = tdl;
                  }
               dl = tdl;
               }

            tdl = (DLTRP) mymalloc (sizeof (DLTR));
            tdl->mstr = country;
            tdl->mlen = strlen (country);
            tdl->next = NULL;
            tdl->pre  = mymalloc (30);
            tdl->post = mymalloc (30);

            p = t_str;
            while ((*p) && (isspace (*p)))
               {
               ++p;
               }

            p1 = tdl->pre;
            while ((*p) && (*p != '/') && (!isspace(*p)))
               {
               *p1++ = *p++;
               }
            *p1 = '\0';
            strcat (tdl->pre, country);

            p1 = tdl->post;
            if ((*p == '\0') || (isspace (*p)))
               {
               *p1 = '\0';
               }
            else
               {
               ++p;

               while ((*p) && (!isspace (*p)))
                  {
                  *p1++ = *p++;
                  }
               *p1 = '\0';
               }

            while ((*p) && (isspace (*p)))
               {
               ++p;
               }

            p1 = intl_pre_dl;
            while ((*p) && (*p != '/') && (!isspace(*p)))
               {
               *p1++ = *p++;
               }
            *p1 = '\0';

            p1 = intl_post_dl;
            if ((*p == '\0') || (isspace (*p)))
               {
               *p1 = '\0';
               }
            else
               {
               ++p;

               while ((*p) && (!isspace (*p)))
                  {
                  *p1++ = *p++;
                  }
               *p1 = '\0';
               }

            if (dl_head == NULL)
               {
               dl_head = tdl;
               }
            else
               {
               dl->next = tdl;
               }
            dl = tdl;

            continue;
            }
         if (strnicmp (p2, "cost", 4) == 0)
            {
            /* Save the defaults */
            strcpy (t_str, p2);
            sscanf (&t_str[4], "%d %d", &foo1, &intl_cost);

            while (fgets (p2, 127, f1) != NULL)
               {
               if ((p3 = strchr (p2, ';')) != NULL)
                  *p3 = '\0';

               if (strnicmp (p2, "end", 3) == 0)
                  {
                  break;
                  }

               p = p2;
               while ((*p) && (isspace (*p)))
                  {
                  ++p;
                  }

               /* Process each line of cost */
               if ((*p == ';') || (*p == '\0'))
                  {
                  continue;
                  }

               tco = (COTRP) mymalloc (sizeof (COTR));
               tco->mstr = mymalloc (30);
               tco->cost = foo1;
               tco->baud = 0;

               if (sscanf (p, "%s %d %d\n", tco->mstr, &(tco->cost), &(tco->baud)) == 1)
                  {
                  tco->cost = foo1;
                  tco->baud = 0;
                  }

               tco->mlen = strlen (tco->mstr);
               tco->next = NULL;
               if (co_head == NULL)
                  {
                  co_head = tco;
                  }
               else
                  {
                  co->next = tco;
                  }
               co = tco;
               }

            tco = (COTRP) mymalloc (sizeof (COTR));
            tco->mstr = country;
            tco->mlen = strlen (country);
            sscanf (&t_str[4], "%d %d", &(tco->cost), &intl_cost);
            tco->baud = 0;
            tco->next = NULL;
            if (co_head == NULL)
               {
               co_head = tco;
               }
            else
               {
               co->next = tco;
               }
            co = tco;

            continue;
            }
         printf ("Cannot decipher line:\n%s", p2);
         }
      fclose (f1);
      }
}
e = myzone;
               sscanf (&p2[5], "%d/%d %s", &(tph->net), &(tph->node), tph->num);
               }
            tph->next = NULL;
            if (ph_head == NULL)
               {
               ph_head = tph;
               }
            else
               {
               ph->next = tph;
     parselst.c                                                                                             664      50     144       132476  5246664514   6177                                                                                                                                                                                                                                                                                                                                                                      /*
                              Nodelist Parser

              This module was originally written by Bob Hartman
                       Sysop of FidoNet node 1:104/501

 This program source code is being released with the following provisions:

 1.  You are  free to make  changes to this source  code for use on your own
 machine,  however,  altered source files may not be distributed without the
 consent of Spark Software.

 2.  You may distribute "patches"  or  "diff" files for any changes that you
 have made, provided that the "patch" or "diff" files are also sent to Spark
 Software for inclusion in future releases of the entire package.   A "diff"
 file for the source archives may also contain a compiled version,  provided
 it is  clearly marked as not  being created  from the original source code.
 No other  executable  versions may be  distributed without  the  consent of
 Spark Software.

 3.  You are free to include portions of this source code in any program you
 develop, providing:  a) Credit is given to Spark Software for any code that
 may is used, and  b) The resulting program is free to anyone wanting to use
 it, including commercial and government users.

 4.  There is  NO  technical support  available for dealing with this source
 code, or the accompanying executable files.  This source  code  is provided
 as is, with no warranty expressed or implied (I hate legalease).   In other
 words, if you don't know what to do with it,  don't use it,  and if you are
 brave enough to use it, you're on your own.

*/

#include <stdio.h>
#include <ctype.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <time.h>
#include <malloc.h>
#include <string.h>
#include <stdlib.h>

/* Should we generate an Opus style nodelist output */

#include "types.h"
#include "externs.h"

#ifndef OS2

char           *REV = "$Revision: 1.33 $";      /* Used in my code for my RCS
                                                 * program */
#else

char           *REV = "$Revision: 1.33-OS/2 $";      /* Used in my code for my RCS
                                                 * program */
#endif

struct _node    new_node;
struct _oldnode old_node;
struct netls    seanet;
struct nodels   seanode;
struct extrastuff bt_node;
struct nidxs   *seaidx;
struct nidxs   *seaptr;
struct qidx     qbbsidx;
struct qdat     qbbsnode;
long            seanodecnt;
int             seacnt;
long            seanetcnt;

char            buf[256];
char            prn_first_line[256];
char            txt_first_line[256];
int             prn_pg_lines;
int             txt_pg_lines;
int             prn_pagenum;
int             txt_pagenum;
int             cmdbaud = 0;

static FILE    *nodelist_bbs, *nodelist_fon, *fidouser_1;
static int     nodelist_dat, nodelist_idx, nodelist_sys;
static FILE    *nodelist_prn, *nodelist_txt;
static int     netlist_dog, nodelist_dog, index_dog;
static int     nodelist_ext;
static int     qnl_idx_bbs, qnl_dat_bbs;

/* extern int     *cmp(); */

main (int argc,char *argv[])
{
   char            buff1[20], buff2[20];        /* Junk buffers */
   char         *s,*config_file ="parselst.cfg";
   char         *mylist=NULL,*pvtlist=NULL;
   char         *nodelist=NULL,editnl=0,cl_nodelist=0;
   int           i;

   /*sscanf (REV, "$%s %s", buff1, buff2);*/ strcpy (buff1, "Revision"); strcpy (buff2, "1.33"); /* bug bug ??? */
   fprintf (stderr, "ParseLst - %s %s by Bob Hartman, SysOp of FidoNet Node 1:104/501\n", buff1, buff2);
   fprintf (stderr, "Modified by George Peace and Bill Andrus, FidoNet Nodes 1:13/13 & 1:13/0\n", buff1, buff2);
   fprintf (stderr, "This program is placed in the  Public Domain  as part of the BBS project.\n");
   fprintf (stderr, "For information on BBS (Bit Bucket Software), contact 104/501 or 343/491.\n\n");

   if (argc > 1){
       for (i=1;i<argc;i++) {
           s=argv[i];
           if ((s[0] == '/') || (s[0] == '-')) {
               switch(tolower(s[1])) {

#ifndef OS2
                   case 'e' :    editnl++;
                                 break;
#endif

                   case 'n' :    nodelist=(s+2);
                                 strupr(nodelist);
                                 cl_nodelist++;
                                 break;

                   case 'c' :    config_file=s+2;
                                 strupr (config_file);
                                 break;

                   case 'm' :   mylist=(s+2);
                                strupr(mylist);
                                break;

                   case 'p' :   pvtlist=s+2;
                                strupr(pvtlist);
                                break;

                   case 'b' :   cmdbaud=atoi(&s[2]);
                                break;

                   default:      printf("Don't understand %s\n\n",s);
                                 break;

                                 }
                             }
                         }
                     }
#ifndef OS2
      if (editnl > 0)
         {
         printf ("Using EditNL to update Nodelist\n");
         system ("EditNL");
         printf ("\n");
         }
     else   edit();
#else
     edit();
#endif

   strcpy (country, "1");

   /* Need to find the correct file to use */
   fn = &fn_head;
   if (cl_nodelist > 0)
      {
      fn->fname = nodelist;
      strupr (fn->fname);
      }
   else
      {
      nfile_name (&(fn->fname));
      }
   fn->next = NULL;
   fn->private = 0;

   ph = ph_head;
   bd = bd_head;
   dl = dl_head;
   co = co_head;
   et = et_head;

   /* Parse configuration file */
   parse_config (config_file,mylist,pvtlist);

   if (cmdbaud > 0)
      maxbaud = cmdbaud;

   /* Open output files */
   open_outfiles ();

   /* Set up the output type */
   if (out_type == -1)
      {
      if (myzone > 0)
         out_type = 0;
      else
         out_type = 1;
      }

   fn = &fn_head;
   while (fn != NULL)
      {
      process_file (1);
      }

   /* Close all the files */
   if (nodelist_bbs != NULL)
      {
      fclose (nodelist_bbs);
      }
   if (nodelist_fon != NULL)
      {
      fclose (nodelist_fon);
      }
   if (fidouser_1 != NULL)
      {
      fclose (fidouser_1);
      }
   if (nodelist_dat != -1)
      {
      close (nodelist_dat);
      }
   if (nodelist_sys != -1)
      {
      close (nodelist_sys);
      }
   if (nodelist_idx != -1)
      {
      close (nodelist_idx);
      }
   if (nodelist_ext != -1)
      {
      close (nodelist_ext);
      }
   if (nodelist_prn != NULL)
      {
      fclose (nodelist_prn);
      }
   if (nodelist_txt != NULL)
      {
      fclose (nodelist_txt);
      }
   if (nodelist_dog != -1)
      {
      close (nodelist_dog);
      }
   if (qnl_idx_bbs != -1)
      {
      close (qnl_idx_bbs);
      }
   if (qnl_dat_bbs != -1)
      {
      close (qnl_dat_bbs);
      }
   if (netlist_dog != -1)
      {
      if (seanet.numnodes)
         {
         write (netlist_dog, (char *) &seanet, sizeof (struct netls));
         }
      close (netlist_dog);

      if (seaidx != NULL)
         {
         printf ("\nSorting for INDEX.DOG\n");
         qsort (seaidx, seacnt, sizeof (struct nidxs), cmp);
         unlink ("INDEX.DOG");
         if ((index_dog = open ("INDEX.DOG", O_WRONLY|O_BINARY|O_CREAT, S_IREAD|S_IWRITE)) == -1)
            {
            printf ("Error opening INDEX.DOG - not generated\n");
            unlink ("INDEX.DOG");
            }
         else
            {
            write (index_dog, (char *) seaidx, sizeof (struct nidxs) * seacnt);
            close (index_dog);
            }
         }
      else
         {
         /* Have to get rid of this to make sure no one gets confused */
         unlink ("INDEX.DOG");
         }
      }

   printf ("\rProcessing Completed Without Errors.\n\n");

   /* Do any additional processing that might be needed */
   if (doreport)
      {
      size_report ();
      }

   if (fidouser_1 != NULL)
      {
      do_names ();
      }
   return (0);
}

void
open_outfiles ()
{
   short         i;

   if (nlist)
      {
      if ((nodelist_bbs = fopen ("NODELIST.BBS", "w")) == NULL)
         {
         printf ("Error opening output file\n");
         exit (1);
         }
      }
   else
      {
      nodelist_bbs = NULL;
      }

   /* Open the NODELIST.FON file? */
   if (rdata)
      {
      if ((nodelist_fon = fopen ("NODELIST.FON", "w")) == NULL)
         {
         printf ("Error opening NODELIST.FON - not generated\n");
         }
      }
   else
      {
      nodelist_fon = NULL;
      }

   /* Open the Fidouser.$$1 file */
   if (udata)
      {
      if ((fidouser_1 = fopen ("FIDOUSER.$$1", "w")) == NULL)
         {
         printf ("Error opening FIDOUSER.$$1 - not generated\n");
         }
      }
   else
      {
      fidouser_1 = NULL;
      }

   nodelist_dat = -1;
   nodelist_idx = -1;

   if (version6)
      {
      unlink ("NODELIST.DAT");
      if ((nodelist_dat = open ("NODELIST.DAT", O_WRONLY|O_BINARY|O_CREAT, S_IREAD|S_IWRITE)) == -1)
         {
         printf ("Error opening NODELIST.DAT - not generated\n");
         }
      else
         {
         unlink ("NODELIST.IDX");
         if ((nodelist_idx = open ("NODELIST.IDX", O_WRONLY|O_BINARY|O_CREAT, S_IREAD|S_IWRITE)) == -1)
            {
            printf ("Error opening NODELIST.IDX - NODELIST.DAT not generated\n");
            close (nodelist_dat);
            nodelist_dat = -1;
            }
         else
            {
            /* Write out the start of the .SYS file */
            memset (&new_node, 0, sizeof (struct _node));
            new_node.number = 6;
            new_node.net = -1;
            strcpy (new_node.name, "ParseLst");
            strcpy (new_node.city, "1:132/101 in Nashua, NH USA");
            write (nodelist_dat, (char *) &new_node, sizeof (struct _node));

            /* Write out the start of the .IDX file */
            i = 5;
            write (nodelist_idx, (char *) &i, sizeof (short));
            i = -1;
            write (nodelist_idx, (char *) &i, sizeof (short));
            }
         }
      }
   else
      {
      nodelist_dat = -1;
      nodelist_idx = -1;
      }

   nodelist_sys = -1;

   if (version5)
      {
      unlink ("NODELIST.SYS");
      if ((nodelist_sys = open ("NODELIST.SYS", O_WRONLY|O_BINARY|O_CREAT, S_IREAD|S_IWRITE)) == -1)
         {
         printf ("Error opening NODELIST.SYS - not generated\n");
         }
      else
         {
         if (nodelist_idx == -1)
            {
            unlink ("NODELIST.IDX");
            if ((nodelist_idx = open ("NODELIST.IDX", O_WRONLY|O_BINARY|O_CREAT, S_IREAD|S_IWRITE)) == -1)
               {
               printf ("Error opening NODELIST.IDX - NODELIST.SYS not generated\n");
               close (nodelist_sys);
               nodelist_sys = -1;
               }
            else
               {
               /* Write out the start of the .IDX file */
               i = 5;
               write (nodelist_idx, (char *) &i, sizeof (short));
               i = -1;
               write (nodelist_idx, (char *) &i, sizeof (short));
               }
            }

         /* Write out the start of the .SYS file */
         memset (&old_node, 0, sizeof (struct _oldnode));
         old_node.number = 5;
         old_node.net = -1;
         strcpy (old_node.name, "ParseLst");
         strcpy (old_node.city, "1:132/101 in Nashua, NH USA");
         write (nodelist_sys, (char *) &old_node, sizeof (struct _oldnode));
         }
      }
   else
      {
      nodelist_sys = -1;
      }

   nodelist_ext = -1;

   if (binkley)
      {
      unlink ("NODELIST.EXT");
      if ((nodelist_ext = open ("NODELIST.EXT", O_WRONLY|O_BINARY|O_CREAT, S_IREAD|S_IWRITE)) == -1)
         {
         printf ("Error opening NODELIST.EXT - not generated\n");
         }
      else
         {
         if (nodelist_idx == -1)
            {
            unlink ("NODELIST.IDX");
            if ((nodelist_idx = open ("NODELIST.IDX", O_WRONLY|O_BINARY|O_CREAT, S_IREAD|S_IWRITE)) == -1)
               {
               printf ("Error opening NODELIST.IDX - NODELIST.EXT not generated\n");
               close (nodelist_ext);
               nodelist_ext = -1;
               }
            else
               {
               /* Write out the start of the .IDX file */
               i = 7;
               write (nodelist_idx, (char *) &i, sizeof (short));
               i = -1;
               write (nodelist_idx, (char *) &i, sizeof (short));
               }
            }

         /* Write out the start of the .EXT file */
         memset (&bt_node, 0, sizeof (struct extrastuff));
         strcpy (bt_node.password, "ParseLst");
         write (nodelist_ext, (char *) &bt_node, sizeof (struct extrastuff));
         }
      }
   else
      {
      nodelist_ext = -1;
      }

   if (sealist)
      {
      unlink ("NODELIST.DOG");
      if ((nodelist_dog = open ("NODELIST.DOG", O_WRONLY|O_BINARY|O_CREAT, S_IREAD|S_IWRITE)) == -1)
         {
         printf ("Error opening NODELIST.DOG - not generated\n");
         }
      else
         {
         unlink ("NETLIST.DOG");
         if ((netlist_dog = open ("NETLIST.DOG", O_WRONLY|O_BINARY|O_CREAT, S_IREAD|S_IWRITE)) == -1)
            {
            printf ("Error opening NETLIST.DOG - NODELIST.DOG not generated\n");
            close (nodelist_dog);
            nodelist_dog = -1;
            seanetcnt = sizeof (struct netls);
            }
         else
            {
            /* Write out the start of the NETLIST.DOG file */
            memset (&seanet, 0, sizeof (struct netls));
            write (netlist_dog, (char *) &seanet, sizeof (struct netls));
            }
         }

      if ((seaidx = calloc (sizeof (struct nidxs), 4000)) == NULL)
         {
         printf ("Could not allocate space for INDEX.DOG - not generating\n");
         seaptr = NULL;
         }
      else
         {
         seaptr = seaidx;
         }
      }
   else
      {
      nodelist_dog = -1;
      netlist_dog = -1;
      }

   if (quickbbs)
      {
      unlink ("QNL_DAT.BBS");
      if ((qnl_dat_bbs = open ("QNL_DAT.BBS", O_WRONLY|O_BINARY|O_CREAT, S_IREAD|S_IWRITE)) == -1)
         {
         printf ("Error opening QNL_DAT.BBS - not generated\n");
         }
      else
         {
         unlink ("QNL_IDX.BBS");
         if ((qnl_idx_bbs = open ("QNL_IDX.BBS", O_WRONLY|O_BINARY|O_CREAT, S_IREAD|S_IWRITE)) == -1)
            {
            printf ("Error opening QNL_IDX.BBS - QNL_DAT.BBS not generated\n");
            close (qnl_dat_bbs);
            qnl_dat_bbs = -1;
            }
         }
      }
   else
      {
      qnl_idx_bbs = -1;
      qnl_dat_bbs = -1;
      }

   if (fidoprn)
      {
      if ((nodelist_prn = fopen ("NODELIST.PRN", "w")) != NULL)
         prn_pg_lines = 100;
      }
   if (fidotxt)
      {
      if ((nodelist_txt = fopen ("NODELIST.TXT", "w")) != NULL)
         txt_pg_lines = 100;
      }
}

void process_file (int times)
{
   int             n_num = 0;
   int             old_n_num;
   int             n_cost;
   int             n_baud;
   int             node;
   int             addrs[5];
   char            this_file[64];
   char            def_phone[30];
   char            def_flags[30];
   int             def_cost;
   int             def_baud;
   int             cur_addr_lev;
   int             did_cost;
   short           i,  n_out;
   int             did_phone;
   char            buff[256];	/* was 128, but mister Rudzinski cleverly overflows that */
   FILE           *f;
   char           *p, *p1, *p2;
   int             dphone;
   char            b1[50];
   char            b2[50];
   char            b3[50];
   char            b4[50];
   char            b5[50];
   char            b6[50];
   char            b7[128];
   char            pn1[20], pn2[20], pn3[20];
   char            orig_phone[30];
   int             pvt, hold, skip, def, this_list;
   char            ntyp;
   char           *mymalloc ();
   extern char    *strchr ();

   /* Open the next filename */
   f = NULL;
   cur_addr_lev = 0;
   if ((f = fopen (fn->fname, "r")) == NULL)
      {
      printf ("\rCould not open Nodelist File '%s' - Exiting\n", fn->fname);
      exit (1);
      }

   this_list = fn->private;

   if (times)
      {
      printf ("\nProcessing Nodelist File '%s'\n", fn->fname);
      fgets (buf,256, f);
      p1 = buf + strlen (buf) - 1;
      while ((p1 >= buf) && (*p1 != ':'))
         --p1;
      if (p1 >= buf)
         {
         strcpy (p1, "-- Page");
         sprintf (prn_first_line, "Bulletin Board Listing from %s", buf + 3);
         sprintf (txt_first_line, "%s", buf + 3);
         }
      else
         {
         prn_first_line[0] = '\0';
         txt_first_line[0] = '\0';
         }

      if ((nodelist_prn != NULL) && !this_list)
         {
         ++prn_pagenum;
         fprintf (nodelist_prn, "%s %d\n\n", prn_first_line, prn_pagenum);
         }

      if ((nodelist_txt != NULL) && !this_list)
         {
         ++txt_pagenum;
         fprintf (nodelist_txt, "%s %d\n\n", txt_first_line, txt_pagenum);
         }
      }
   else
      printf ("\nAdding Nodelist File '%s' to Zone %d\n", fn->fname, myzone);
   strcpy (this_file, fn->fname);

   /* Show that we are not skipping here */
   skip = -1;

   addrs[0] = addrs[1] = addrs[2] = addrs[3] = (myzone > 0) ? myzone : 1;

   for (;;)
      {
      if (fgets (buf, 256, f) == NULL)
         break;

      pvt = 0;
      dphone = 0;
      n_cost = 0;
      did_cost = 0;
      hold = 0;
      ntyp = 'L';
      def = 0;
      likely = 0;

      p = buff;
      p1 = buf;
      while (*p1)
         {
         if (!isspace (*p1))
            *p++ = *p1;
         ++p1;
         }
      *p++ = '\n';
      *p = '\0';
      p = buff;

      if (*p == ';')
         {
         if ((comments) && (p[1] != '\n'))
            {
            fputs (buf, stdout);
            }

         if ((!this_list) && (buf[1] == 'A'))
            {
            if ((nodelist_prn != NULL) && (prn_pg_lines == 100))
               fputs (buf + 2, nodelist_prn);
            if ((nodelist_txt != NULL) && (txt_pg_lines == 100))
               fputs (buf + 2, nodelist_txt);
            }
         continue;
         }

      nnodes++;

      /* Modifier (Host, Region, etc.) */
      p = nextfield (p, b1);

      /* Node number (or region or zone) */
      old_n_num = n_num;
      p = nextfield (p, b2);
      n_num = atoi (b2);

      /* Did we get anything? */
      if (b1[0] != '\0')
         {
         /* Is it something we need to worry about? */
         if (stricmp (b1, "zone") == 0)
            {
            if ((myzone > 0) && (addrs[0] == myzone) && nzones)
               {
               if (fn != NULL)
                  fn = fn->next;
               i = 0;
               while (fn != NULL)
                  {
                  process_file (0);
                  i = 1;
                  }
               if (i)
                  printf ("\nReturning to finish file '%s'\n", this_file);
               }

            ++nzones;
            if (out_type == 0)
               {
               if (usezone)
                  strcpy (b1, "ZONE ");
               else
                  strcpy (b1, "REGION ");
               dphone = 1;
               }
            else
               {
               if (usezone)
                  strcpy (b1, "ZONE ");
               else
                  strcpy (b1, "REGION ");
               dphone = 1;
               if (myzone > 0)
                  {
                  if (n_num != myzone)
                     {
                     skip = 1;
                     }
                  else
                     {
                     skip = 0;
                     }
                  }
               }
            ntyp = 'Z';
            }
         else
         if (stricmp (b1, "region") == 0)
            {
            ++nregions;
            spec_word (b1);
            dphone = 2;
            if (skip == 1)
               skip = 2;
            }
         else
         if (stricmp (b1, "host") == 0)
            {
            ++nnets;
            spec_word (b1);
            dphone = 3;
            if (skip == 1)
               skip = 2;
            ntyp = 'I';
            }
         else
         if (stricmp (b1, "hub") == 0)
            {
            ++nhubs;
            if (out_type)
               spec_word (b1);
            else
               b1[0] = '\0';
            dphone = 4;
            if (skip == 1)
               skip = 2;
            ntyp = 'H';
            }
         else
         if (stricmp (b1, "point") == 0)
            {
            ++npoints;
            spec_word (b1);
            dphone = 5;
            if (skip == 1)
               skip = 2;
            ntyp = 'P';
            }
         else
         if (stricmp (b1, "pvt") == 0)
            {
            /* It is just a private node */
            b1[0] = '\0';
            pvt = 1;
            }
         else
         if (stricmp (b1, "hold") == 0)
            {
            /* It is on hold */
            b1[0] = '\0';
            hold = 1;
            }
         else
            {
            ++ndown;
            /* It is something we don't understand, or the node is down */
            continue;
            }
         }

      if (dphone)
         {
         addrs[dphone - 1] = n_num;
         for (i = dphone; i < 5; i++)
            {
            addrs[i] = n_num;
            }
         cur_addr_lev = dphone;
         if (dphone < 4)
            {
            printf ("\rZone %2d, Region %2d, Net %5d", addrs[0], addrs[1], addrs[2]);
            fflush (stdout);
            node = 0;
            }
         else
            {
            node = n_num;
            }
         }
      else
         {
         node = n_num;
         }

      /* Translate the node type if necessary */
      if (b1[0] == '\0')
         {
         et = et_head;
         while (et != NULL)
            {
            if (((addrs[0] == et->zone) || (et->zone == -1)) &&
               (addrs[2] == et->net) && (node == et->node))
               {
               switch (et->etype)
                  {
                  case 'I':
                     strcpy (b1, "IGATE ");
                     break;
                  case 'O':
                     strcpy (b1, "OGATE ");
                     break;
                  case 'G':
                     strcpy (b1, "GATE ");
                     break;
                  case 'H':
                     strcpy (b1, "HUB ");
                     break;
                  }
               ntyp = et->etype;
               break;
               }
            et = et->next;
            }
         }

      /* Board name */
      p = nextfield (p, b2);

      /* Location */
      p = nextfield (p, b3);

      /* Sysop name */
      p = nextfield (p, b4);

      /* Phone number */
      p = nextfield (p, b5);
      strcpy (orig_phone, b5);

      /* Determine the cost for this node */
      co = co_head;
      while (co != NULL)
         {
         if (strnicmp (b5, co->mstr, co->mlen) == 0)
            {
            n_cost = co->cost;
            did_cost = 1;
            break;
            }
         co = co->next;
         }

      /* If we didn't get a match, then it gets intl cost */
      if ((!did_cost) && (co == NULL) &&
         (strnicmp (country, b5, strlen (country)) == 0))
         {
         did_cost = 1;
         }

      /* Translate the phone number if possible via phone translations */
      did_phone = 0;
      ph = ph_head;
      while (ph != NULL)
         {
         if (((addrs[0] == ph->zone) || (ph->zone == -1)) &&
            (addrs[2] == ph->net) && (node == ph->node))
            {
            did_phone = 1;
            strcpy (b5, ph->num);
            break;
            }
         ph = ph->next;
         }

      if (dphone)
         {
         if (isdigit (b5[0]) || (ph != NULL))
            {
            strcpy (def_phone, b5);
            }
         else
            {
            /* Bad news - an unlisted where we need a phone number */
            ++ndown;
            continue;
            }
         }

      /* If this guy is unpublished, put something in there */
      if (((!isdigit (b5[0])) || (hold)) && (ph == NULL))
         {
         if (cur_addr_lev >= 3)
            {
            strcpy (b5, def_phone);
            def = 1;
            ++nredirect;
            }
         else
            {
            /* No dice - he is unpublished in a region or zone */
            ++ndown;
            continue;
            }
         }

      /* Determine the cost for this node */
      if (!did_cost)
         {
         co = co_head;
         while (co != NULL)
            {
            if (strnicmp (b5, co->mstr, co->mlen) == 0)
               {
               n_cost = co->cost;
               did_cost = 1;
               break;
               }
            co = co->next;
            }
         }

      /* Determine some things from the phone number */
      p1 = b5;
      p2 = pn1;
      while ((*p1) && isdigit (*p1))
         {
         *p2++ = *p1++;
         }
      *p2 = '\0';

      if (*p1 != '\0')
         ++p1;

      p2 = pn2;
      while ((*p1) && isdigit (*p1))
         {
         *p2++ = *p1++;
         }
      *p2 = '\0';

      if (*p1 != '\0')
         ++p1;

      p2 = pn3;
      while ((*p1) && isdigit (*p1))
         {
         *p2++ = *p1++;
         }
      *p2 = '\0';

      if (*p1 != '\0')
         ++p1;

      if (pn1[0] == '\0')
         {
         pn1[0] = '1';
         pn1[1] = '\0';
         }

      if (pn2[0] == '\0')
         {
         pn2[0] = '1';
         pn2[1] = '\0';
         }

      if (pn3[0] == '\0')
         {
         pn3[0] = '1';
         pn3[1] = '\0';
         }

      /* Translate the number if possible via dial translations */
      dl = dl_head;
      while (dl != NULL)
         {
         if (strnicmp (b5, dl->mstr, dl->mlen) == 0)
            {
            strcpy (b7, &b5[dl->mlen]);
            sprintf (b5, "%s%s%s", dl->pre, b7, dl->post);
            break;
            }
         dl = dl->next;
         }

      if ((dl == NULL) && (!did_phone) && (strnicmp (country, b5, strlen (country)) != 0))
         {
         sprintf (b7, "%s%s%s", intl_pre_dl, b5, intl_post_dl);
         strcpy (b5, b7);
         }

      /* Determine the cost for this node */
      if (!did_cost)
         {
         co = co_head;
         while (co != NULL)
            {
            if (strnicmp (b5, co->mstr, co->mlen) == 0)
               {
               n_cost = co->cost;
               did_cost = 1;
               break;
               }
            co = co->next;
            }
         }

      /* If we didn't get a match, then it gets intl cost */
      if (!did_cost)
         {
         n_cost = intl_cost;
         }

      /* Baud rate */
      p = nextfield (p, b6);
      n_baud = atoi (b6);

      /* If necessary, translate the baud rate */
      bd = bd_head;
      while (bd != NULL)
         {
         if (((addrs[0] == bd->zone) || (bd->zone == -1)) &&
            (addrs[2] == bd->net) && (node == bd->node))
            {
            n_baud = bd->baud;
            break;
            }
         bd = bd->next;
         }

      /* Fix the baud rate downward if necessary */
      if (n_baud > maxbaud)
         {
         n_baud = maxbaud;
         }

      /* Get rid of the newline at the end */
      p1 = p;
      while ((*p1) && (!isspace (*p1)))
         {
         ++p1;
         }
      *p1 = '\0';

      if (dphone)
         {
         strcpy (def_flags, p);
         def_baud = n_baud;
         def_cost = n_cost;
         }

      if (def)
         {
         strcpy (p, def_flags);
         n_baud = def_baud;
         n_cost = def_cost;
         }

      /* Put the results into the proper files */
      if (skip < 2)
         {
         /* Print out the results in NODELIST.BBS format */
         if (nodelist_bbs != NULL)
            {
            if (nodash)
               {
               undash (b5);
               }

            fprintf (nodelist_bbs, "%s%d %d %d %s %s %s\n", b1, n_num, n_cost, n_baud, b2, b5, b3);
            }

         /* Output to NODELIST.FON */
         if (nodelist_fon != NULL)
            {
            /* Convert to upper case */
            strupr (p);

            /* Print it out in NODELIST.FON format */
            fprintf (nodelist_fon, "%4d %4d %3s %3s %3s %4d %c %s\n",
                     addrs[2], node, pn1, pn2, pn3, n_baud, ntyp,
                     (*p == '\0') ? "-" : p);
            }

         if (nodelist_dat != -1)
            {
            memset (&new_node, 0, sizeof (struct _node));
            new_node.number = node;
            new_node.net = addrs[2];
            new_node.cost = n_cost;
            new_node.rate = (unsigned char) (n_baud / 300);
            new_node.realcost = n_cost;
            strncpy (new_node.name, b2, 33);
            p1 = new_node.name;
            while ((p1 = strchr (p1, '_')) != NULL)
               {
               *p1 = ' ';
               }

            strncpy (new_node.phone, b5, 39);
            strncpy (new_node.city, b3, 29);
            p1 = new_node.city;
            while ((p1 = strchr (p1, '_')) != NULL)
               {
               *p1 = ' ';
               }

            /* Stick in a password if there is one */
            pw = pw_head;
            while (pw != NULL)
               {
               if (((addrs[0] == pw->zone) || (pw->zone == -1)) &&
                  (addrs[2] == pw->net) && (node == pw->node))
                  {
                  strncpy (new_node.password, &(pw->pw[1]), 8);
                  break;
                  }
               pw = pw->next;
               }

            if (cur_addr_lev == 4)
               {
               new_node.hubnode = addrs[3];
               }
            else
               {
               new_node.hubnode = 0;
               }

            new_node.modem = 0;
            if (strstr (p, "HST"))
               {
               new_node.modem |= M_HST;
               }
            if (strstr (p, "PEP"))
               {
               new_node.modem |= M_PEP;
               }
            if (strstr (p, "V32"))
               {
               new_node.modem |= M_V32;
               }
            if (strstr (p, "V32b"))
               {
               new_node.modem |= M_V32B;
               }
            if (strstr (p, "H96"))
               {
               new_node.modem |= M_H96;
               }

            new_node.flags1 = 0;

            switch (dphone)
               {
               case 0:
                  break;

               case 1:
                  new_node.flags1 |= B_zone;
                  break;

               case 2:
                  new_node.flags1 |= B_region;
                  break;

               case 3:
                  new_node.flags1 |= B_host;
                  break;

               case 4:
                  new_node.flags1 |= B_hub;
                  break;

               case 5:
                  new_node.flags1 |= B_point;
                  break;
               }

            if (strstr (p, "CM"))
               {
               new_node.flags1 |= B_CM;
               }

            /* Stick in a CM flag is there is one done manually */
            cm = cm_head;
            while (cm != NULL)
               {
               if (((addrs[0] == cm->zone) || (cm->zone == -1)) &&
                  (addrs[2] == cm->net) && (node == cm->node))
                  {
                  new_node.flags1 |= B_CM;
                  break;
                  }
               cm = cm->next;
               }

            write (nodelist_dat, (char *) &new_node, sizeof (struct _node));
            }

         if (qnl_dat_bbs != -1)
            {
            memset (&qbbsnode, 0, sizeof (struct qdat));
            qbbsidx.zone = addrs[0];
            qbbsidx.net = addrs[2];
            qbbsidx.node = node;
            qbbsidx.nodetype = qbbsnode.nodetype = (char) dphone;
            if ((dphone == 1) && (b1[0] == 'R'))
               {
               qbbsidx.nodetype = qbbsnode.nodetype = 2;
               }

            write (qnl_idx_bbs, (char *) &qbbsidx, sizeof (struct qidx));

            qbbsnode.zone = addrs[0];
            qbbsnode.net = addrs[2];
            qbbsnode.node = node;

            strncpy (qbbsnode.name, b2, 20);
            p1 = qbbsnode.name;
            while ((p1 = strchr (p1, '_')) != NULL)
               {
               *p1 = ' ';
               }
            qbbsnode.namesize = (char) strlen (b2);
            if (qbbsnode.namesize > 20)
               qbbsnode.namesize = 20;

            strncpy (qbbsnode.city, b3, 40);
            p1 = qbbsnode.city;
            while ((p1 = strchr (p1, '_')) != NULL)
               {
               *p1 = ' ';
               }
            qbbsnode.citysize = (char) strlen (b3);
            if (qbbsnode.citysize > 40)
               qbbsnode.citysize = 40;

            strncpy (qbbsnode.phone, b5, 40);
            qbbsnode.phonesize = (char) strlen (b5);
            if (qbbsnode.phonesize > 40)
               qbbsnode.phonesize = 40;

            /* Stick in a password if there is one */
            pw = pw_head;
            while (pw != NULL)
               {
               if (((addrs[0] == pw->zone) || (pw->zone == -1)) &&
                  (addrs[2] == pw->net) && (node == pw->node))
                  {
                  strncpy (qbbsnode.password, &(pw->pw[1]), 8);
                  qbbsnode.passwordsize = (char) strlen (&(pw->pw[1]));
                  if (qbbsnode.passwordsize > 8)
                     qbbsnode.passwordsize = 8;
                  break;
                  }
               pw = pw->next;
               }

            qbbsnode.flags = 0;

            switch (dphone)
               {
               case 0:
                  break;

               case 1:
                  qbbsnode.flags |= B_zone;
                  break;

               case 2:
                  qbbsnode.flags |= B_region;
                  break;

               case 3:
                  qbbsnode.flags |= B_host;
                  break;

               case 4:
                  qbbsnode.flags |= B_hub;
                  break;
               }

            if (strstr (p, "CM"))
               {
               qbbsnode.flags |= B_CM;
               }

            /* Stick in a CM flag is there is one done manually */
            cm = cm_head;
            while (cm != NULL)
               {
               if (((addrs[0] == cm->zone) || (cm->zone == -1)) &&
                  (addrs[2] == cm->net) && (node == cm->node))
                  {
                  qbbsnode.flags |= B_CM;
                  break;
                  }
               cm = cm->next;
               }

            qbbsnode.baudrate = n_baud;
            qbbsnode.cost = n_cost;

            write (qnl_dat_bbs, (char *) &qbbsnode, sizeof (struct qdat));
            }

         if (nodelist_ext != -1)
            {
            memset (&bt_node, 0, sizeof (struct extrastuff));

            /* Stick in a password if there is one */
            pw = pw_head;
            while (pw != NULL)
               {
               if (((addrs[0] == pw->zone) || (pw->zone == -1)) &&
                  (addrs[2] == pw->net) && (node == pw->node))
                  {
                  strncpy (bt_node.password, &(pw->pw[1]), 8);
                  break;
                  }
               pw = pw->next;
               }

            bt_node.flags1 = 0;

            switch (dphone)
               {
               case 0:
                  break;

               case 1:
                  bt_node.flags1 |= B_zone;
                  break;

               case 2:
                  bt_node.flags1 |= B_region;
                  break;

               case 3:
                  bt_node.flags1 |= B_host;
                  break;

               case 4:
                  bt_node.flags1 |= B_hub;
                  break;
               }

            if (strstr (p, "CM"))
               {
               bt_node.flags1 |= B_CM;
               }

            /* Stick in a CM flag is there is one done manually */
            cm = cm_head;
            while (cm != NULL)
               {
               if (((addrs[0] == cm->zone) || (cm->zone == -1)) &&
                  (addrs[2] == cm->net) && (node == cm->node))
                  {
                  bt_node.flags1 |= B_CM;
                  break;
                  }
               cm = cm->next;
               }

            write (nodelist_ext, (char *) &bt_node, sizeof (struct extrastuff));
            }

         if (nodelist_dog != -1)
            {
            if (node <= 0)
               {
               if (seanet.numnodes)
                  {
                  write (netlist_dog, (char *) &seanet, sizeof (struct netls));
                  seanetcnt += sizeof (struct netls);
                  }

               memset (&seanet, 0, sizeof (struct netls));
               seanet.netnum = addrs[2];
               strncpy (seanet.netname, b2, 13);
               p1 = seanet.netname;
               while ((p1 = strchr (p1, '_')) != NULL)
                  {
                  *p1 = ' ';
                  }

               strncpy (seanet.netcity, b3, 39);
               p1 = seanet.netcity;
               while ((p1 = strchr (p1, '_')) != NULL)
                  {
                  *p1 = ' ';
                  }

               seanet.nodeptr = seanodecnt;
               }

            if (seacnt < 4000)
               {
               if (seaptr != NULL)
                  {
                  seaptr->idxnet = addrs[2];
                  seaptr->idxnode = node;
                  seaptr->netlptr = seanetcnt;
                  seaptr->nodelptr = seanodecnt;
                  ++seaptr;
                  }
               }
            else
               {
               seacnt = 3999;
               }

            memset (&seanode, 0, sizeof (struct nodels));
            seanode.nodenum = node;
            strncpy (seanode.nodename, b2, 13);
            p1 = seanode.nodename;
            while ((p1 = strchr (p1, '_')) != NULL)
               {
               *p1 = ' ';
               }

            strncpy (seanode.nodecity, b3, 39);
            p1 = seanode.nodecity;
            while ((p1 = strchr (p1, '_')) != NULL)
               {
               *p1 = ' ';
               }

            strncpy (seanode.nodephone, b5, 39);
            if (cur_addr_lev == 4)
               {
               seanode.havehub = 1;
               seanode.nodehub = addrs[3];
               }
            seanode.nodecost = n_cost;
            seanode.nodebaud = n_baud;
            write (nodelist_dog, (char *) &seanode, sizeof (struct nodels));
            ++seanet.numnodes;
            seanodecnt += sizeof (struct nodels);
            ++seacnt;
            }

         if (nodelist_sys != -1)
            {
            memset (&old_node, 0, sizeof (struct _oldnode));
            old_node.number = node;
            old_node.net = addrs[2];
            old_node.cost = n_cost;
            old_node.rate = n_baud;
            strncpy (old_node.name, b2, 19);
            p1 = old_node.name;
            while ((p1 = strchr (p1, '_')) != NULL)
               {
               *p1 = ' ';
               }

            strncpy (old_node.phone, b5, 39);
            strncpy (old_node.city, b3, 39);
            p1 = old_node.city;
            while ((p1 = strchr (p1, '_')) != NULL)
               {
               *p1 = ' ';
               }

            /* Stick in a password if there is one */
            pw = pw_head;
            while (pw != NULL)
               {
               if (((addrs[0] == pw->zone) || (pw->zone == -1)) &&
                  (addrs[2] == pw->net) && (node == pw->node))
                  {
                  strncpy (&(old_node.city[strlen (old_node.city) + 1]), pw->pw, 8);
                  break;
                  }
               pw = pw->next;
               }

            write (nodelist_sys, (char *) &old_node, sizeof (struct _oldnode));
            }

         if (nodelist_idx != -1)
            {
            if ((node == 0) && (dphone <= 2))
               {
               if ((ntyp != 'Z') || (!usezone))
                  n_out = -1;
               else
                  n_out = -2;
               }
            else
               {
               n_out = node;
               }

            write (nodelist_idx, (char *) &n_out, sizeof (short));
            i=(short) addrs[2];
            write (nodelist_idx, (char *) &i, sizeof (short));
            }

         if (dphone == 3)
            {
            seanet.havehost = 1;
            seanet.nethost = 0;
            }

         if ((ntyp == 'G') || (ntyp == 'I'))
            {
            seanet.havegate = 1;
            seanet.netgate = node;
            }
         }

      /* Print out the Nodelist.Prn file */
      if ((!this_list) && (nodelist_prn != NULL) && !def)
         {
         ++prn_pg_lines;

         if (dphone && (dphone <= 3) && (prn_pg_lines >= 40))
            {
            header (1);
            prn_pg_lines = 4;
            }

         if (prn_pg_lines >= 60)
            {
            header (1);
            prn_pg_lines = 4;
            }

         fprintf (nodelist_prn,
                  "%-10.10s %4d %-20.20s %-20.20s %-25.25s %-20.20s %4d %-20.20s\n",
                  b1, n_num, b2, orig_phone, b3, b4, n_baud, p);
         }

      /* Print out the Nodelist.Txt file */
      if ((!this_list) && (nodelist_txt != NULL) && !def)
         {
         ++txt_pg_lines;

         if (dphone && (dphone <= 3) && (txt_pg_lines >= 40))
            {
            header (0);
            txt_pg_lines = 4;
            }

         if (txt_pg_lines >= 60)
            {
            header (0);
            txt_pg_lines = 4;
            }

         fprintf (nodelist_txt,
                  "%-10.10s %4d %-20.20s %-17.17s %-19.19s %4d\n",
                  b1, n_num, b2, orig_phone, b3, n_baud);
         }

      /* Print out the Fidouser.$$1 file */
      if (fidouser_1 != NULL)
         {
         /* Should we just be on our way? */
         if ((myzone > 0) && (myzone != addrs[0]) && (udata == 2))
            {
            continue;
            }

         how_likely (p, dphone, addrs, node, n_baud);

         /* If this is a bad place, make it horrible */
         if (hold || pvt || def)
            likely = 100;

         p = b4;
         b1[1] = b2[1] = b3[1] = b5[1] = '\0';
         p1 = b1;
         while ((*p) && (*p != '_'))
            {
            *p1++ = *p++;
            }
         *p1 = '\0';

         if (*p != '\0')
            ++p;

         p1 = b2;
         while ((*p) && (*p != '_'))
            {
            *p1++ = *p++;
            }
         *p1 = '\0';

         if (*p != '\0')
            ++p;

         p1 = b3;
         while ((*p) && (*p != '_'))
            {
            *p1++ = *p++;
            }
         *p1 = '\0';

         p1 = b5;
         while ((*p) && (*p != '_'))
            {
            *p1++ = *p++;
            }
         *p1 = '\0';

         if (*p == '_')
            continue;

         b5[0] = (char) toupper (b5[0]);
         b3[0] = (char) toupper (b3[0]);
         b2[0] = (char) toupper (b2[0]);
         b1[0] = (char) toupper (b1[0]);
         strlwr (&b5[1]);
         strlwr (&b3[1]);
         strlwr (&b2[1]);
         strlwr (&b1[1]);
         if (b5[0] != '\0')
            {
            sprintf (buff, "%s, %s %s %s", b5, b1, b2, b3);
            }
         else
         if (b3[0] != '\0')
            {
            sprintf (buff, "%s, %s %s", b3, b1, b2);
            }
         else
         if (b2[0] != '\0')
            {
            sprintf (buff, "%s, %s", b2, b1);
            }
         else
         if (b1[0] != '\0')
            {
            sprintf (buff, "%s", b1);
            }
         else
            {
            continue;
            }
         if ((myzone > 0) && (myzone != addrs[0]))
            {
            sprintf (b5, "%d:%d", addrs[0], addrs[2]);
            }
         else
            {
            sprintf (b5, "%d", addrs[2]);
            }

         fprintf (fidouser_1, "%-40.40s%13.13s/%-6d%5d\n", buff, b5, node, likely);
         }
      }

/*   close (f); */
   fclose (f);
   if (fn != NULL)
      fn = fn->next;
}

void header (int which)
{
   if (which == 1)
      {
      if (prn_pagenum != 0)
         {
         fprintf (nodelist_prn, "\n");
         }
      ++prn_pagenum;
      fprintf (nodelist_prn, "%s %d\n", prn_first_line, prn_pagenum);
      fprintf (nodelist_prn, "Type       Node Board's Name         Phone Number         City                      Sysop's Name         Baud Flags\n");
      fprintf (nodelist_prn, "====       ==== ============         ============         ====                      ============         ==== =====\n\n");
      }
   else if (which == 0)
      {
      if (txt_pagenum != 0)
         {
         fprintf (nodelist_txt, "\n");
         }
      ++txt_pagenum;
      fprintf (nodelist_txt, "%s %d\n", txt_first_line, txt_pagenum);
      fprintf (nodelist_txt, "Type       Node Board's Name         Phone Number      City                Baud\n");
      fprintf (nodelist_txt, "====       ==== ============         ============      ====                ====\n");
      }
}

/*
char mybuf[4097];
char *myptr = mybuf;
int got_tok;
get_data (buffer, f)
char *buffer;
int f;
{
   char *s;
   char *save;
   int n;

   s = NULL;
   if (got_tok)
      {
      s = strtok (NULL, "\n");
      }

   got_tok = 0;
   if (s != NULL)
      {
      save = myptr;
      myptr = s + strlen (s) + 1;
      if (myptr < mybuf + 4097)
         strcpy (buffer, s);
      else
         {
         s = NULL;
         myptr = save;
         }
      }

   if (s == NULL)
      {
      strcpy (buffer, myptr);
      if ((n = read (f, mybuf, 4096)) <= 0)
         return (1);

      mybuf[n] = '\0';

      myptr = mybuf;
      s = strtok (myptr, "\n");
      if (s == NULL)
         return (1);

      strcat (buffer, s);
      myptr = s + strlen (s) + 1;
      }

   got_tok = 1;
   return (0);
}
*/

enum = node;
            strncpy (seanode.nodename, b2, 13);
            p1 = seanode.nodename;
            while ((p1 = strchr (p1, '_')) != NULL)
               {
               *p1 = ' ';
   report.c                                                                                               664      50     144         5044  5246664514   5603                                                                                                                                                                                                                                                                                                                                                                      /*
                              Nodelist Parser

              This module was originally written by Bob Hartman
                       Sysop of FidoNet node 1:104/501

 This program source code is being released with the following provisions:

 1.  You are  free to make  changes to this source  code for use on your own
 machine,  however,  altered source files may not be distributed without the
 consent of Spark Software.

 2.  You may distribute "patches"  or  "diff" files for any changes that you
 have made, provided that the "patch" or "diff" files are also sent to Spark
 Software for inclusion in future releases of the entire package.   A "diff"
 file for the source archives may also contain a compiled version,  provided
 it is  clearly marked as not  being created  from the original source code.
 No other  executable  versions may be  distributed without  the  consent of
 Spark Software.

 3.  You are free to include portions of this source code in any program you
 develop, providing:  a) Credit is given to Spark Software for any code that
 may is used, and  b) The resulting program is free to anyone wanting to use
 it, including commercial and government users.

 4.  There is  NO  technical support  available for dealing with this source
 code, or the accompanying executable files.  This source  code  is provided
 as is, with no warranty expressed or implied (I hate legalease).   In other
 words, if you don't know what to do with it,  don't use it,  and if you are
 brave enough to use it, you're on your own.

*/

#include <stdio.h>
#include <ctype.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <time.h>

#include "types.h"
#include "externs.h"

void
size_report ()
{
   printf ("Network Size Report:\n\n");
   printf ("Total Nodes Processed        = %d\n", nnodes);
   printf ("Nodes Deleted (Down)         = %d\n", ndown);
   printf ("Nodes ReDirected to Host/Hub = %d\n", nredirect);
   printf ("---------------------------------------\n");
   nnodes = nnodes - ndown - nredirect;
   printf ("Total Nodes Open for mail    = %d\n", nnodes);
   printf ("Zone Coordinators Listed     = %d\n", nzones);
   printf ("Regional Coordinators Listed = %d\n", nregions);
   printf ("Network Coordinators Listed  = %d\n", nnets);
   printf ("Hub Coordinators Listed      = %d\n", nhubs);
   printf ("=======================================\n");
   nnodes = nnodes - nzones - nregions - nnets - nhubs;
   printf ("Total Independent Nodes      = %d\n", nnodes);
   if (npoints)
      printf ("Total Points                 = %d\n", npoints);
   printf ("\n");
}


seanode.nodecity, b3, 39);
            p1 = seanode.nodecity;
            while ((p1 = strchr (p1, '_')) != NULL)
               {
               *p1 = ' ';
               }

            strncpy (seanode.nodephone, b5, 39);
            if (cur_addr_lev == 4)
               {
               seanode.havehub = 1;
               seanode.nodehub = addrs[3];
               }
            seanode.nodecost = n_cost;
            seanode.nodebaud = n_baud;
            write (nodelistypes.h                                                                                                664      50     144        16434  5246664514   5466                                                                                                                                                                                                                                                                                                                                                                      /*
                              Nodelist Parser

              This module was originally written by Bob Hartman
                       Sysop of FidoNet node 1:104/501

 This program source code is being released with the following provisions:

 1.  You are  free to make  changes to this source  code for use on your own
 machine,  however,  altered source files may not be distributed without the
 consent of Spark Software.

 2.  You may distribute "patches"  or  "diff" files for any changes that you
 have made, provided that the "patch" or "diff" files are also sent to Spark
 Software for inclusion in future releases of the entire package.   A "diff"
 file for the source archives may also contain a compiled version,  provided
 it is  clearly marked as not  being created  from the original source code.
 No other  executable  versions may be  distributed without  the  consent of
 Spark Software.

 3.  You are free to include portions of this source code in any program you
 develop, providing:  a) Credit is given to Spark Software for any code that
 may is used, and  b) The resulting program is free to anyone wanting to use
 it, including commercial and government users.

 4.  There is  NO  technical support  available for dealing with this source
 code, or the accompanying executable files.  This source  code  is provided
 as is, with no warranty expressed or implied (I hate legalease).   In other
 words, if you don't know what to do with it,  don't use it,  and if you are
 brave enough to use it, you're on your own.

*/

typedef struct SC {
   int zone;
   int net;
   int node;
   char *script;
   struct SC *next;
} SCTR, *SCTRP;

typedef struct PW {
   int zone;
   int net;
   int node;
   char *pw;
   struct PW *next;
} PWTR, *PWTRP;

typedef struct PH {
   int zone;
   int net;
   int node;
   char *num;
   struct PH *next;
} PHTR, *PHTRP;

typedef struct BD {
   int zone;
   int net;
   int node;
   int baud;
   struct BD *next;
} BDTR, *BDTRP;

typedef struct DL {
   char *mstr;
   int mlen;
   char *pre;
   char *post;
   struct DL *next;
} DLTR, *DLTRP;

typedef struct CO {
   char *mstr;
   int mlen;
   int cost;
   int baud;
   struct CO *next;
} COTR, *COTRP;

typedef struct FN {
   char *fname;
   int private;
   struct FN *next;
} FNLST, *FNLSTP;

typedef struct ET {
   int zone;
   int net;
   int node;
   char etype;
   struct ET *next;
} ETTR, *ETTRP;

typedef struct CM {
   int zone;
   int net;
   int node;
   struct CM *next;
} CMTR, *CMTRP;

  struct _oldnode {
    int number;         /* node number */
    int net;            /* net number */
    int cost;           /* cost per minute to call */
    int rate;           /* baud rate */
    char name[20];          /* node name */
    char phone[40];         /* phone number */
    char city[40];          /* city and state */
   };

  struct _node {
    short  net;               /* net number */
    short  number;           /* node number, */
    short  cost;              /* cost per minute to call */
    char name[34];         /* node name */
    char phone[40];        /* phone number */
    char city[30];         /* city and state, */

    char password[8];      /* warning, not necessarily null terminated */
    short  realcost;        /* phone company's charge */
    short  hubnode;          /* node # of this node's hub or 0 if none */
    unsigned char rate;    /* actual baud rate divided by 300 */
    char modem;              /* modem type code (see below) */
    unsigned short flags1;   /* set of flags (see below) */
    short  reserved;         /* reserved */
   };

#ifndef OS2
#define BIGSIZE 8192
#endif

/*------------------------------------------------------------------------*/
/* Values for the `flags1' field                                          */
/*------------------------------------------------------------------------*/
#define B_hub      0x0001  /* node is a net hub       0000 0000 0000 0001 */
#define B_host     0x0002  /* node is a net host      0000 0000 0000 0010 */
#define B_region   0x0004  /* node is region coord    0000 0000 0000 0100 */
#define B_zone     0x0008  /* node is a zone coord    0000 0000 0000 1000 */
#define B_CM       0x0010  /* runs continuous mail    0000 0000 0001 0000 */
#define B_ores1    0x0020  /* reserved for Opus       0000 0000 0010 0000 */
#define B_ores2    0x0040  /* reserved for Opus       0000 0000 0100 0000 */
#define B_ores3    0x0080  /* reserved for Opus       0000 0000 1000 0000 */
#define B_ores4    0x0100  /* reserved for Opus       0000 0001 0000 0000 */
#define B_ores5    0x0200  /* reserved for Opus       0000 0010 0000 0000 */
#define B_res1     0x0400  /* reserved for non-Opus   0000 0100 0000 0000 */
#define B_res2     0x0800  /* reserved for non-Opus   0000 1000 0000 0000 */
#define B_point    0x1000  /* reserved for non-Opus   0001 0000 0000 0000 */
#define B_res4     0x2000  /* reserved for non-Opus   0010 0000 0000 0000 */
#define B_res5     0x4000  /* reserved for non-Opus   0100 0000 0000 0000 */
#define B_res6     0x8000  /* reserved for non-Opus   1000 0000 0000 0000 */

/*------------------------------------------------------------------------*/
/* Values for the `modem' field                                           */
/*------------------------------------------------------------------------*/
#define M_HST      0x01    /* node uses an HST                  0000 0001 */
#define M_PEP      0x02    /* node uses a PEP modem             0000 0010 */
#define M_V32      0x04    /* node uses a V.32 modem            0000 0100 */
#define M_V32B     0x08    /* node uses a V.32b modem           0000 1000 */
#define M_H96      0x10    /* node uses a Hayes V9600           0001 0000 */

/*--------------------------------------------------------------------------*/
/* Nodelist.Idx                                                             */
/* (File is terminated by EOF)                                              */
/*--------------------------------------------------------------------------*/
struct _ndi {
      int   node;          /* node number  */
      int   net;           /* net number   */
};

/* SEAdog NETLIST.DOG format */
struct netls {
   int netnum;
   char netname[14];
   char netcity[40];
   int havehost;
   int nethost;
   int havegate;
   int netgate;
   long nodeptr;
   int numnodes;
};

/* SEAdog NODELIST.DOG format */
struct nodels {
   int nodenum;
   char nodename[14];
   char nodecity[40];
   char nodephone[40];
   int havehub;
   int nodehub;
   int nodecost;
   int nodebaud;
};

/* SEAdog INDEX.DOG format */
struct nidxs {
   int idxnet;
   int idxnode;
   long netlptr;
   long nodelptr;
   long idxspace;
};

/* Things most nodelists don't contain, but Binkley likes to have */
struct extrastuff {
   char password[8];
   unsigned int flags1;
   char extra[6]; /* for future expansion */
};

/* QuickBBS v2.01 QNL_IDX.BBS format */
struct qidx {
   int zone;
   int net;
   int node;
   char nodetype;
};

/* QuickBBS v2.01 QNL_DAT.BBS format */
struct qdat {
   char nodetype;
   int zone;
   int net;
   int node;
   char namesize;
   char name[20];
   char citysize;
   char city[40];
   char phonesize;
   char phone[40];
   char passwordsize;
   char password[8];
   unsigned int flags;
   int baudrate;
   int cost;
};

/* Used for low-level I/O routines */
typedef struct {
   char far *wbuff;
   char far *wptr;
   unsigned int wsize;
} WBUFFER, *WBUFFPTR;

) && (nodelist_txt != NULL) && !def)
         {
         ++txt_pg_lines;

         if (dphone && (dphone <= 3) && (txt_pg_lines >= 40))
            {
            header (0);
            txt_pg_lines = 4;
            }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         made, provided that the "patch" or "diff" files are also sent to Spark
 Software for inclusion in future releases of the entire package.   A "diff"
 file for the source archives may also contain a compiled version,  provided
 it is  clearly marked as not  being created  from the original source code.
 No other  executable  versions may be  distributed without  the  consent of
 Spark Software.

 3.  You are free to include portions of this source code in any program you
 develop, providing:  a) Credit is given to Spark Software for any code that
 may is used, and  b) The resulting program is free to anyone wanting to use
 it, including commercial and government users.

 4.  There is  NO  technical support  available for dealing with this source
 code, or the accompanying executable files.  This source  code  is provided
 as is, with no warranty expressed or implied (I hate legalease).   In other
 words, if you don't know what to do with it,  don't use it,  and if you are
 brave enough to use it, you're on yourparselist/dirfind.o                                                                                    644       0       0        10630  5264157176  13257  0                                                                                                    ustar   root                            system                                                                                                                                                                                                                                         UME9 tNA.t$
*t)3?t\u& /# . \@ . .@ *@9 u $@ ÐUWVSu} U j/V{ÅuV Vu`CSWUe[^_ US]h    8
S]S(S]  U   VSu SVh    VSVSh    =   t5  h      u!1KC
Pu1;SJu5  Åu5  p         [^   US=   u$1NC
Pu41;Su5  Åu5           ]                          c                  x    s    \  c  H    @    ;    3    .    %      c    t         x     c     u     t     c     c     ]               d       *   d       4          V          h                                                                      C         `         |                                                                                                                               )         3         >         I         T         ]         h         s         |                                                                                                            C         o                                                       $       *             D          D         D         D         D  	       D         D         D  .       D  1       D  4       D  7       D  <       D  @       D  C       D  H       D  L       D   O       D " T       D % W       D & \       D ' _       D ( c   3  $       ?        G        N  @      T  @       Z  @      `        a     c   b     h       D + h       D , t       D . t       D / w       D 1 }   m             D 2        D 4        D 5        D 7        D 8    u             D 9        D :        D <    }  $   h                             @        @        @           t                       D @        D A        D E                         D G        D I                 D M        D N      $                @             @       "        #        $            D Q        D R        D T        D U   ,            D W       D Y #      D Z ,  ;             D \ :  E             D ] L      D ^ P      D a T      D b `      D ` d      D c q      D _ q  N             D d       D e       D f       D g   W  $      a        j        s          @              @                                D j       D k       D m       D n       D r       D s       D q       D t       D p       D u       D v       D w       D x     $               @                                          gcc2_compiled. /home/louis/parselist/ dirfind.c int:t1=r1;-2147483648;2147483647; char:t2=r2;0;127; long int:t3=r1;-2147483648;2147483647; unsigned int:t4=r1;0;-1; long unsigned int:t5=r1;0;-1; short int:t6=r1;-32768;32767; long long int:t7=r1;0;-1; short unsigned int:t8=r1;0;65535; long long unsigned int:t9=r1;0;-1; signed char:t10=r1;-128;127; unsigned char:t11=r1;0;255; float:t12=r1;4;0; double:t13=r1;8;0; long double:t14=r1;8;0; void:t15=15 size_t:t4 ssize_t:t1 time_t:t3 clock_t:t3 ptrdiff_t:t1 pid_t:t1 uid_t:t8 gid_t:t8 dev_t:t8 ino_t:t5 mode_t:t8 umode_t:t8 nlink_t:t8 daddr_t:t1 off_t:t3 u_char:t11 u_short:t8 u_int:t4 u_long:t5 unchar:t11 ushort:t8 uint:t4 ulong:t5 caddr_t:t16=*2 cc_t:t11 speed_t:t4 tcflag_t:t5 fd_set:t5 ustat:T17=s20f_tfree:1,0,32;f_tinode:5,32,32;\ f_fname:18=ar1;0;5;2,64,48;f_fpack:18,112,48;; direct:T19=s268d_ino:3,0,32;d_off:3,32,32;\ d_reclen:8,64,16;d_name:20=ar1;0;255;2,80,2048;; DIR:T21=s16dd_fd:1,0,32;dd_loc:1,32,32;\ dd_size:1,64,32;dd_buf:22=*19,96,32;; DIR:t21 find_t:T23=s256name:20,0,2048;; dirp:G24=*21 _dirp _unixize unixize:F15 dos:p16 un:p16 s:r16 d:r16 ch:r2   _splitpath _rindex _strcpy splitpath:F15 path:p16 file:p16 dir:p16 path:r16 file:r16 pos:r16   _checkfile _curr_filename _re_comp _re_exec checkfile:F1 dp:p22 dp:r22 name:25=ar1;0;19;2 res:r1   _ffirst _curr_pathname _closedir _opendir _readdir ffirst:F1 name:p16 plouf:p1 fin:p26=*23 name:r16 un:20 dp:r22   _fnext fnext:F1 fin:p26 dp:r22   curr_filename:G20 curr_pathname:G20                                                                                                         parselist/str.c                                                                                        644      62      62          435  5263367472  12424  0                                                                                                    ustar   louis                           other                                                                                                                                                                                                                  char *strupr(char *str)
	{
	int i;
	
	for (i=0; str[i] != '\0'; i++)
		if((str[i] >= 'a') && (str[i] <= 'z'))
			str[i] = toupper(str[i]);
	}

char *strlwr(char *str)
	{
	int i;

	for (i=0; str[i] != '\0'; i++)
		if ((str[i] >= 'A') && (str[i] <= 'Z'))
			str[i] = tolower(str[i]);
	}
                                                                                                                                                                                                                                   parselist/str.o                                                                                        644      62      62         2422  5263400221  12432  0                                                                                                    ustar   louis                           other                                                                                                                                                                                                                    x           @             UVSu1ۀ> t$<3`~<3z3P3C<3 uݍe[^  UVSu1ۀ> t$<3@~<3Z3P3C<3 uݍe[^  ^   '  "                  d       *   d       0          R          d                                                                     ?         \         x                                                 D          D         D         D         D                  D  ,       D  3     $                 @        @                   3        <       D  <       D  D       D  D       D  L       D  X                D  h       D  o     $   <             @      #  @      (     D   )     o   *  gcc2_compiled. /home/louis/parselist/ str.c int:t1=r1;-2147483648;2147483647; char:t2=r2;0;127; long int:t3=r1;-2147483648;2147483647; unsigned int:t4=r1;0;-1; long unsigned int:t5=r1;0;-1; short int:t6=r1;-32768;32767; long long int:t7=r1;0;-1; short unsigned int:t8=r1;0;65535; long long unsigned int:t9=r1;0;-1; signed char:t10=r1;-128;127; unsigned char:t11=r1;0;255; float:t12=r1;4;0; double:t13=r1;8;0; long double:t14=r1;8;0; void:t15=15 _strupr _toupper strupr:F16=*2 str:p16 str:r16 i:r1   _strlwr _tolower strlwr:F16 str:p16 str:r16 i:r1                                                                                                                                                                                                                                                 parselist/dirfind.c.org                                                                                644      62      62         4011  5246664512  14027  0                                                                                                    ustar   louis                           other                                                                                                                                                                                                                  #include "dos.h"

char curr_filename[256], curr_pathname[256];
DIR *dirp=NULL;

#define FILENAMELEN 13
#define ffirst _dos_findfirst
#define fnext _dos_findnext

void unixize(char *dos, char *un)
{
	char *s, *d, ch;

	s = dos;	/* source */
	d = un;		/* dest */
	while(*s) {
		ch = *s++;
		switch(ch) {
			case '\\':
				*d++ = '/';		/* first change all \ into / */
				break;
			case '?':
				*d++ = '.';		/* any char as ? */
				break;
			case '.':
				*d++ = '\\';	/* dot as \. */
				*d++ = '.';
				break;
			case '*':
				*d++ = '.';		/* any seq of char as .* */
				*d++ = '*';
				break;
			default:
				*d++ = ch;
				break;
		}
	}
	*d++ = '$';	/* end of line marker */
	*d = '\0';
}

void splitpath(char *path, char *file, char *dir)
{
	char *pos;

	file[0] = '\0';
	dir[0] = '\0';

	pos = rindex(path, '/');
	if (pos == 0)
		strcpy(file, path);
	else {
		*pos = '\0';
		strcpy(dir, path);
		pos++;
		strcpy(file, pos);
	}
}

/* checkfile returns TRUE when filename is correct */
int checkfile(struct direct *dp)
{
	char name[20];
	int res;

#ifdef BSD
	re_comp(curr_filename);
#endif

	if(dp->d_namlen > FILENAMELEN)
		res = 0;
	else {
		strncpy(name, dp->d_name, dp->d_namlen);
		name[dp->d_namlen] = '\0';
#ifdef BSD
		res = re_exec(name);
#else
		res = !recmp(curr_filename, name);
#endif
	}
	return res;
}

int ffirst(char *name, int plouf, struct find_t *fin)
{
	char un[256];
	struct direct *dp;

	unixize(name, un);
	splitpath(name, un, curr_pathname);
	unixize (un, curr_filename);

	if(dirp)
		closedir(dirp); /* cleanup for previous usage */

	dirp = opendir(curr_pathname);
	if (!dirp)
		return NULL;
	for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp))
		if (checkfile(dp)) {
			strcpy (fin->name, dp->d_name);
			return 0;
		}
	closedir(dirp);
	dirp = NULL;
	return 1;
}

int fnext(struct find_t *fin)
{
	struct direct *dp;

	if(!dirp)
		return NULL;

	for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp))
		if (checkfile(dp)) {
			strcpy (fin->name, dp->d_name);
			return 0;
		}
	closedir(dirp);
	dirp = NULL;
	return 1;
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       parselist/parselst.cfg                                                                                 644      62      62         1061  5263434562  13775  0                                                                                                    ustar   louis                           other                                                                                                                                                                                                                  ; ParseLst control file
;
Node 2:285/311  
Country 31
Complete
UseZone
MyList          pnnlist.199
Pvtlist         points.311
Version6        
Userlist
NoReport  
Password        2:281/202       Haar
Password        2:285/311       Geintje
NoNodelist          
Comments
MaxBaud 2400                           ;Baud rate limiter
Dial /          09-                           
     31-1804-   /
     31-        0 
End
Cost 22 250      ; charge a penny if it isn't local, $2.50 if it is international
    1-408- 0
    1-415- 0
    011-49- 182
    011-41  182
End

                                                                                                                                                                                                                                                                                                                                                                                                                                                                               parselist/makefile                                                                                     644      62      62         1626  5263400400  13146  0                                                                                                    ustar   louis                           other                                                                                                                                                                                                                  CC=gcc
CFLAGS=-g -O -c -Dfar= -DO_BINARY=0 -DBSD -D_nmalloc=malloc -Dstricmp=strcasecmp -Dstrnicmp=strncasecmp

OBJECT1 = parselst.o parsecfg.o misc.o data.o report.o
OBJECT2 = names.o edit.o dirfind.o str.o

OBJECTS = $(OBJECT1) $(OBJECT2)

parselst: $(OBJECTS)
	$(CC) -o parselst $(OBJECTS) 
#			str.o strstr.o -lregexp
#
# Dependencies for .C files and compiler line to generate 'em.
#

parselst.o : parselst.c externs.h types.h 
	$(CC) $(CFLAGS) $*.c

parsecfg.o : parsecfg.c externs.h types.h 
	$(CC) $(CFLAGS) $*.c

misc.o : misc.c externs.h types.h 
	$(CC) $(CFLAGS) $*.c

data.o : data.c externs.h types.h 
	$(CC) $(CFLAGS) $*.c

report.o : report.c externs.h types.h 
	$(CC) $(CFLAGS) $*.c

names.o : names.c externs.h types.h 
	$(CC) $(CFLAGS) $*.c

edit.o : edit.c externs.h types.h 
	$(CC) $(CFLAGS) $*.c

dirfind.o : dirfind.c externs.h types.h 
	$(CC) $(CFLAGS) $*.c

str.o : str.c
	$(CC) $(CFLAGS) $*.c
                                                                                                          parselist/makefile.org                                                                                 644      62      62         1546  5246664514  13760  0                                                                                                    ustar   louis                           other                                                                                                                                                                                                                  CC=gcc
CFLAGS=-g -O -c -Dfar= -DO_BINARY=0 -DBSD -D_nmalloc=malloc -Dstricmp=strcasecmp -Dstrnicmp=strncasecmp

OBJECT1 = parselst.o parsecfg.o misc.o data.o report.o
OBJECT2 = names.o edit.o dirfind.o

OBJECTS = $(OBJECT1) $(OBJECT2)

parselst: $(OBJECTS)
	$(CC) -o parselst $(OBJECTS) str.o strstr.o -lregexp
#
# Dependencies for .C files and compiler line to generate 'em.
#

parselst.o : parselst.c externs.h types.h 
	$(CC) $(CFLAGS) $*.c

parsecfg.o : parsecfg.c externs.h types.h 
	$(CC) $(CFLAGS) $*.c

misc.o : misc.c externs.h types.h 
	$(CC) $(CFLAGS) $*.c

data.o : data.c externs.h types.h 
	$(CC) $(CFLAGS) $*.c

report.o : report.c externs.h types.h 
	$(CC) $(CFLAGS) $*.c

names.o : names.c externs.h types.h 
	$(CC) $(CFLAGS) $*.c

edit.o : edit.c externs.h types.h 
	$(CC) $(CFLAGS) $*.c

dirfind.o : dirfind.c externs.h types.h 
	$(CC) $(CFLAGS) $*.c
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          