$ od -c -N 50000 [_CDCSL_93-16_]<1>Cedar>lib>cpp.c
0000000    /   *       c   p   p   .   c       *   /  \n   /   *       C
0000020    o   p   y   r   i   g   h   t       (   c   )       1   9   9
0000040    1       X   e   r   o   x       C   o   r   p   o   r   a   t
0000060    i   o   n   .           A   l   l       r   i   g   h   t   s
0000100        r   e   s   e   r   v   e   d       *   /  \n   /   *    
0000120    f   r   o   n   t       e   n   d       p   r   o   c   e   s
0000140    s   o   r       f   o   r       /   l   i   b   /   c   p   p
0000160        *   /  \n   /   *       c   c   c       -   B   s   t   a
0000200    t   i   c       -   g       -   o       c   p   p       c   p
0000220    p   .   c       *   /  \n   /   *       i   t   '   s       j
0000240    o   b       i   s       t   o       t   e   a   c   h       c
0000260    p   p       a   b   o   u   t       t   i   o   g   a       f
0000300    i   l   e   s   :       *   /  \n   /   *  \t   p   a   r   s
0000320    e   s       t   h   e       c   p   p       c   o   m   m   a
0000340    n   d       l   i   n   e       *   /  \n   /   *  \t   f   i
0000360    g   u   r   e   s       o   u   t       t   h   e       n   a
0000400    m   e       o   f       t   h   e       f   i   l   e       b
0000420    e   i   n   g       c   o   m   p   i   l   e   d       *   /
0000440   \n   /   *  \t   c   r   e   a   t   e   s       a       s   t
0000460    r   i   p   p   e   d       v   e   r   s   i   o   n       o
0000500    f       t   h   e       f   i   l   e       b   e   i   n   g
0000520        c   o   m   p   i   l   e   d       *   /  \n   /   *  \t
0000540    p   r   e   p   e   n   d   s       t   h   e       a   p   p
0000560    r   o   p   r   i   a   t   e       #   f   i   l   e       d
0000600    i   r   e   c   t   i   v   e       t   o       t   h   a   t
0000620        f   i   l   e       *   /  \n   /   *  \t   i   n   v   o
0000640    k   e   s       /   l   i   b   /   c   p   p       o   n    
0000660    t   h   i   s       t   e   m   p       f   i   l   e       *
0000700    /  \n   /   *       t   h   i   s       "   c   p   p   "    
0000720    i   s       n   o   r   m   a   l   l   y       i   n   v   o
0000740    k   e   d       f   r   o   m       c   c   c       *   /  \n
0000760   \n   /   *       N   o   t   e   s   :       E   d   u   a   r
0001000    d   o       w   r   o   t   e       a       c   p   p       p
0001020    r   o   g   r   a   m       w   h   i   c   h       s   i   m
0001040    p   l   y       s   t   o   p   p   e   d       s   c   a   n
0001060    n   i   n   g       *   /  \n   /   *       w   h   e   n    
0001100    t   h   e       f   i   r   s   t       n   u   l   l       w
0001120    a   s       e   n   c   o   u   n   t   e   r   e   d   .    
0001140    T   h   e       d   o   w   n   s   i   d   e       t   o    
0001160    t   h   i   s       a   p   p   r   o   a   c   h       i   s
0001200        *   /  \n   /   *       i   t       r   e   q   u   i   r
0001220    e   s       u   s       t   o       p   a   t   c   h       c
0001240    p   p   '   s       o   n       e   a   c   h       r   e   l
0001260    e   a   s   e   .           T   h   e       o   t   h   e   r
0001300        d   o   w   n   s   i   d   e       i   s       t   h   a
0001320    t       *   /  \n   /   *       w   e   '   v   e       l   o
0001340    s   t       t   h   e       s   o   u   r   c   e   s       o
0001360    f       h   i   s       p   a   t   c   h   e   s   .        
0001400    T   h   i   s       i   s       a       r   e   p   l   a   c
0001420    e   m   e   n   t   ,       b   u   t       i   t       i   s
0001440    n   '   t       *   /  \n   /   *       a   s       f   u   n
0001460    c   t   i   o   n   a   l       a   s       h   i   s       o
0001500    r   i   g   i   n   a   l   .           I   n       p   a   r
0001520    t   i   c   u   l   a   r       t   h   e   r   e       i   s
0001540    n   '   t       a       w   a   y       t   o       s   u   p
0001560    p   o   r   t       *   /  \n   /   *       t   i   o   g   a
0001600        f   o   r   m   a   t   t   i   n   g       i   n       .
0001620    h       f   i   l   e   s       w   i   t   h   o   u   t    
0001640    r   e   i   m   p   l   e   m   e   n   t   i   n   g       c
0001660    p   p   .       *   /  \n  \n   #   i   n   c   l   u   d   e
0001700        <   s   t   d   i   o   .   h   >  \n   #   i   n   c   l
0001720    u   d   e       <   s   t   r   i   n   g   .   h   >  \n   #
0001740    i   n   c   l   u   d   e       <   s   y   s   /   s   t   d
0001760    t   y   p   e   s   .   h   >  \n   #   i   n   c   l   u   d
0002000    e       <   s   y   s   /   t   y   p   e   s   .   h   >  \n
0002020    #   i   n   c   l   u   d   e       <   s   y   s   /   w   a
0002040    i   t   .   h   >  \n   #   i   n   c   l   u   d   e       "
0002060    /   u   s   r   /   5   i   n   c   l   u   d   e   /   m   a
0002100    l   l   o   c   .   h   "  \n  \n   e   x   t   e   r   n    
0002120    v   o   i   d       e   x   i   t   (   )   ;  \n  \n   s   t
0002140    a   t   i   c       v   o   i   d       e   r   r   o   r   (
0002160    s   )  \n   c   h   a   r       *   s   ;  \n   {  \n   i   f
0002200        (   s       !   =       N   U   L   L   )       (   v   o
0002220    i   d   )   f   p   r   i   n   t   f   (   s   t   d   e   r
0002240    r   ,       "   c   e   d   a   r       c   p   p   :       %
0002260    s   \   n   "   ,       s   )   ;  \n   e   x   i   t   (   -
0002300    1   )   ;  \n   }  \n  \n   m   a   i   n   (   a   r   g   c
0002320    ,       a   r   g   v   )  \n   i   n   t       a   r   g   c
0002340    ;  \n   c   h   a   r       *   *   a   r   g   v   ;  \n   {
0002360   \n   u   n   s   i   g   n   e   d       i   ,       l   e   n
0002400    ,       s   o   u   r   c   e   F   i   l   e   I   n   d   e
0002420    x       =       0   ;  \n   s   i   z   e   _   t       t   o
0002440    t   l   e   n       =       0   ;  \n   c   h   a   r       c
0002460    ;  \n   c   h   a   r       *   r   e   a   l   c   p   p    
0002500    =       "   /   l   i   b   /   c   p   p   "   ;  \n   c   h
0002520    a   r       *   a   r   g       =       N   U   L   L   ,    
0002540    *   t   e   m   p   i   n   f   i   l   e   n   a   m   e    
0002560    =       N   U   L   L   ;      \n   F   I   L   E       *   t
0002600    m   p   i   n   f   p   ,       *   c   f   i   l   e   ;  \n
0002620   \n   /   *       p   a   r   s   e       t   h   e       c   o
0002640    m   m   a   n   d       l   i   n   e       *   /  \n   f   o
0002660    r       (   i       =       1   ;       i       <       a   r
0002700    g   c   ;       i   +   +   )       {  \n   a   r   g       =
0002720        a   r   g   v   [   i   ]   ;  \n   l   e   n       =    
0002740    s   t   r   l   e   n   (   a   r   g   )   ;  \n   t   o   t
0002760    l   e   n       =       l   e   n       +       t   o   t   l
0003000    e   n   ;  \n   i   f       (   l   e   n       >       2   )
0003020        {  \n   i   f       (   a   r   g   [   l   e   n   -   2
0003040    ]       =   =       '   .   '       &   &       (   a   r   g
0003060    [   l   e   n   -   1   ]       =   =       '   c   '       |
0003100    |       a   r   g   [   l   e   n   -   1   ]       =   =    
0003120    '   S   '   )   )       {  \n   /   *       t   w   o       s
0003140    o   u   r   c   e       f   i   l   e       f   i   l   e   s
0003160    ?       i   g   n   o   r   e       s   e   c   o   n   d    
0003200    o   n   e       *   /  \n   i   f       (   s   o   u   r   c
0003220    e   F   i   l   e   I   n   d   e   x       =   =       0   )
0003240        s   o   u   r   c   e   F   i   l   e   I   n   d   e   x
0003260        =       i   ;  \n   }  \n   }  \n   }  \n   i   f       (
0003300    s   o   u   r   c   e   F   i   l   e   I   n   d   e   x    
0003320    =   =       0   )       e   r   r   o   r   (   "   d   i   d
0003340    n   '   t       f   i   n   d       a       s   o   u   r   c
0003360    e       f   i   l   e       t   o       p   r   o   c   e   s
0003400    s   "   )   ;  \n  \n   /   *       o   p   e   n       t   h
0003420    e       s   o   u   r   c   e       f   i   l   e       *   /
0003440   \n   i   f       (   (   c   f   i   l   e       =       f   o
0003460    p   e   n   (   a   r   g   v   [   s   o   u   r   c   e   F
0003500    i   l   e   I   n   d   e   x   ]   ,       "   r   "   )   )
0003520        =   =       N   U   L   L   )      \n   e   r   r   o   r
0003540    (   "   c   o   u   l   d   n   '   t       o   p   e   n    
0003560    t   h   e       s   o   u   r   c   e       f   i   l   e   "
0003600    )   ;  \n  \n   /   *       o   p   e   n       t   h   e    
0003620    t   e   m   p       f   i   l   e       *   /  \n   t   e   m
0003640    p   i   n   f   i   l   e   n   a   m   e       =       t   e
0003660    m   p   n   a   m   (   P   _   t   m   p   d   i   r   ,    
0003700    "   c   c   p   p   i   "   )   ;  \n   t   m   p   i   n   f
0003720    p       =       f   o   p   e   n   (   t   e   m   p   i   n
0003740    f   i   l   e   n   a   m   e   ,       "   w   "   )   ;  \n
0003760    i   f       (   t   m   p   i   n   f   p       =   =       N
0004000    U   L   L   )       {  \n   (   v   o   i   d   )   f   c   l
0004020    o   s   e   (   c   f   i   l   e   )   ;  \n   e   r   r   o
0004040    r   (   "   c   o   u   l   d   n   '   t       o   p   e   n
0004060        t   h   e       i   n       t   e   m   p       f   i   l
0004100    e   "   )   ;  \n   }   ;  \n  \n   /   *       s   t   r   e
0004120    a   m       t   h   e       s   o   u   r   c   e       f   i
0004140    l   e       i   n   t   o       t   h   e       t   e   m   p
0004160        i   n       f   i   l   e       w   i   t   h       m   o
0004200    d   s       *   /  \n   i   f       (   f   p   r   i   n   t
0004220    f   (   t   m   p   i   n   f   p   ,       "   \   #   \    
0004240    1       \   "   %   s   \   "   \   n   "   ,       a   r   g
0004260    v   [   s   o   u   r   c   e   F   i   l   e   I   n   d   e
0004300    x   ]   )       =   =       E   O   F   )  \n   e   r   r   o
0004320    r   (   "   f   p   r   i   n   t   f       f   a   i   l   e
0004340    d   "   )   ;  \n   w   h   i   l   e       (   (   c       =
0004360        g   e   t   c   (   c   f   i   l   e   )   )       !   =
0004400        E   O   F       &   &       c       !   =       '   \   0
0004420    '       )       {  \n   i   f       (   c       =   =       '
0004440    \   0   1   5   '   )       c       =       '   \   0   1   2
0004460    '   ;  \n   i   f       (   p   u   t   c   (   c   ,       t
0004500    m   p   i   n   f   p   )       =   =       E   O   F   )    
0004520    e   r   r   o   r   (   "   f   p   u   t   c       f   a   i
0004540    l   e   d   "   )   ;  \n   }  \n   (   v   o   i   d   )   f
0004560    c   l   o   s   e   (   c   f   i   l   e   )   ;  \n   (   v
0004600    o   i   d   )   f   c   l   o   s   e   (   t   m   p   i   n
0004620    f   p   )   ;  \n  \n   /   *       p   r   e   p   e   n   d
0004640        t   h   e       c   o   r   r   e   c   t       #       l
0004660    i   n   e       d   i   r   e   c   t   i   v   e       *   /
0004700   \n   i   f       (   p   r   i   n   t   f   (   "   \   #   \
0004720        1       \   "   %   s   \   "   \   n   "   ,       a   r
0004740    g   v   [   s   o   u   r   c   e   F   i   l   e   I   n   d
0004760    e   x   ]   )       =   =       E   O   F   )      \n   e   r
0005000    r   o   r   (   "   p   r   i   n   t   f       f   a   i   l
0005020    e   d   "   )   ;  \n   i   f       (   f   f   l   u   s   h
0005040    (   s   t   d   o   u   t   )       =   =       E   O   F   )
0005060       \n   e   r   r   o   r   (   "   f   f   l   u   s   h    
0005100    f   a   i   l   e   d   "   )   ;  \n  \n   /   *       b   u
0005120    i   l   d       t   h   e       n   e   w       c   o   m   m
0005140    a   n   d       l   i   n   e       *   /  \n   a   r   g   v
0005160    [   s   o   u   r   c   e   F   i   l   e   I   n   d   e   x
0005200    ]       =       t   e   m   p   i   n   f   i   l   e   n   a
0005220    m   e   ;  \n   a   r   g   v   [   0   ]       =       r   e
0005240    a   l   c   p   p   ;  \n  \n   i   f       (   f   o   r   k
0005260    (   )       =   =       0   )       {   /   *       c   h   i
0005300    l   d       *   /  \n   /   *       i   n   v   o   k   e    
0005320    t   h   e       r   e   a   l       c   p   p       *   /  \n
0005340    (   v   o   i   d   )   e   x   e   c   v   p   (   r   e   a
0005360    l   c   p   p   ,       a   r   g   v   )   ;  \n   r   e   t
0005400    u   r   n   (   -   1   )   ;  \n   }  \n   e   l   s   e    
0005420    {       /   *       p   a   r   e   n   t       *   /  \n   i
0005440    n   t       s   t   a   t   u   s   p       =       0   ;  \n
0005460    /   *       w   a   i   t       f   o   r       t   h   e    
0005500    r   e   a   l       c   p   p       t   o       f   i   n   i
0005520    s   h       *   /  \n   (   v   o   i   d   )   w   a   i   t
0005540    (   &   s   t   a   t   u   s   p   )   ;  \n   i   f       (
0005560    u   n   l   i   n   k   (   t   e   m   p   i   n   f   i   l
0005600    e   n   a   m   e   )       =   =       -   1   )       e   r
0005620    r   o   r   (   "   u   n   l   i   n   k       f   a   i   l
0005640    e   d   "   )   ;  \n   f   r   e   e   (   (   v   o   i   d
0005660        *   )   t   e   m   p   i   n   f   i   l   e   n   a   m
0005700    e   )   ;  \n   r   e   t   u   r   n   (   W   E   X   I   T
0005720    S   T   A   T   U   S   (   s   t   a   t   u   s   p   )   )
0005740    ;  \n   }  \n  \n   }  \n  \n  \0  \0  \0  \0  \b  \0  \0  \n
0005760   \0 235 312 003 211  \0  \0 002 225 020   N   e   w   l   i   n
0006000    e   D   e   l   i   m   i   t   e   r 001  \n 226 001  \r   "
0006020    c   e   d   a   r   "       s   t   y   l   e 231  \0   J 230
0006040   \v   J 232 003 234 027 317   n 003 234  \f 230   &   J 230   "
0006060    J 230   1   J 232 003 234 032 317   z 004 234 003 230   !   J
0006100  230   5   J 230   ;   J 230   ;   J 230   (   J 230   -   J 230
0006120   \0   J 232 001 234   F 230   F   J 230   K   J 230   P   J 230
0006140    Q   J 230   P   J 230   >   J 230  \0   J 232 003 234 001 236
0006160   \a 234  \n 230 022   J 232 003 234 001 236  \a 234  \v 230 023
0006200    J 232 003 234 001 236  \a 234 021 230 031   J 232 003 234 001
0006220  236  \a 234 016 230 026   J 232 003 234 001 236  \a 234  \r 230
0006240  025   J 232 003 234 001 236  \a 234 031 230   !   J 230  \0   J
0006260  232 006 235 006 234 001 235 004 234 001 236 004 234 003 230 023
0006300    J 230  \0   J 232 006 235 006 234 001 235 004 234 001 236 005
0006320  234 003 230 024   J 232 002 235 004 234 004 230  \b 002 230 001
0006340    J 232  \n 235 002 234  \a 320   k   z 004 234 003 235 004 234
0006360  001 236  \a 234 001 236 006 234 030 230   ;   J 232 002 236 004
0006400  234 005 230  \t 227   J 230 001   J 230  \0   J 232 002 236 004
0006420  234  \f 230 020   J 232 002 235 003 234 006 230  \t   J 232 002
0006440  235 004 234  \b 230  \f 002 230 001   J 232 002 235  \b 234 035
0006460  230   %   J 230 022   J 232 002 235 004 234 003 230  \a   J 232
0006500  002 235 004 234 027 230 033   J 232 006 235 004 234  \b 237 004
0006520  234 024 237 004 234 002 230   *   J 232 002 237 004 234 022 230
0006540  026   J 230  \0   J 232 003 234 025 236 004 234 003 230 034 002
0006560  232 002 235 003 234 031 230 034   J 230 016   J 230 022   J 230
0006600  026 002 232 002 235 002 234  \f 230 016 002 232 002 235 002 234
0006620    B 230   D   J 230   .   J 232 002 235 002 234   , 230   .   J
0006640  230 001 227   J 230 001 227   J 230 001 227 002 232 004 235 002
0006660  234 030 236 005 234   ) 230   H   J 230  \0 227   J 230 032 002
0006700  232 006 235 002 234  \v 236 005 234   ! 237 004 234 002 230   9
0006720    J 232 002 236 005 234   " 230   '   J 230  \0 227   J 230 030
0006740    J 230   ,   J 232 003 234  \n 236 005 234 026 230   % 002 232
0006760  004 235 002 234  \r 237 004 234 003 230 026   J 232 005 234 001
0007000  235 004 234 001 236 006 234  \b 230 024   J 232 002 236 005 234
0007020    # 230   (   J 230 002 227   J 230  \0   J 230   < 002 232 006
0007040  235 002 234 002 236  \a 234   6 317   k 003 234 001 230   E   J
0007060  232 002 236 005 234 023 230 030 227 002 232 006 235 005 234  \a
0007100  236 004 234  \f 240 003 234 021 230   0   J 232 002 235 002 234
0007120  032 230 034   J 232  \b 235 002 234 002 236 004 234 020 240 003
0007140  234 002 236 005 234 021 230   3   J 230 001 227   J 232 005 234
0007160  001 235 004 234 001 236 006 234  \b 230 024   J 232 005 234 001
0007200  235 004 234 001 236 006 234  \n 230 026   J 230  \0   J 232 003
0007220  234 031 236 004 234  \r 230   * 002 232 006 235 002 234 002 236
0007240  006 234   - 240 003 234 002 230   <   J 232 002 236 005 234 022
0007260  230 027 227 002 232  \b 235 002 234 002 236 006 234 001 236 006
0007300  234 005 240 003 234 002 230 033   J 232 002 236 005 234 022 230
0007320  027 227   J 230  \0   J 232 003 234 031 236 004 234 003 230    
0007340    J 230   '   J 230 022   J 230  \0 002 232 002 235 002 234 033
0007360  230 035   J 230 031   J 232 003 234 001 235 004 234 027 230 034
0007400    J 232 002 235 006 234 005 230  \v   J 230 001 227 002 232 002
0007420  235 004 234 017 230 023   J 232 002 235 003 234  \r 230 020   J
0007440  232 003 234  \b 235 003 234 032 230   %   J 232 003 234 001 235
0007460  004 234 020 230 025   J 232 004 235 002 234     236 005 234 022
0007500  230   9   J 232 004 236 004 234 002 235 004 234 023 230 035   J
0007520  232 004 235 006 234 001 240  \v 234  \v 230 035   J 230 001   J
0007540  230  \0 227 227   J 230 001   J 230  \0 227  \0 205 227  \0  \0
0007560   \0  \0  \v 250  \0  \0 017   9  \0  \0  \n                    
0007573