home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / misc / volume29 / archie / patch01 < prev    next >
Encoding:
Text File  |  1992-04-15  |  58.7 KB  |  1,774 lines

  1. Newsgroups: comp.sources.misc
  2. From: brendan@cs.widener.edu (Brendan Kehoe)
  3. Subject:  v29i076:  archie - A client to query the Archie FTP databases, Patch01
  4. Message-ID: <1992Apr16.025857.24643@sparky.imd.sterling.com>
  5. X-Md4-Signature: 84f728c87e54525420623391e149635f
  6. Date: Thu, 16 Apr 1992 02:58:57 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: brendan@cs.widener.edu (Brendan Kehoe)
  10. Posting-number: Volume 29, Issue 76
  11. Archive-name: archie/patch01
  12. Environment: UNIX, VMS, MSDOS A/UX
  13. Patch-To: archie: Volume 27, Issue 79-84
  14.  
  15. The patch below brings the stand-alone archie client to version 1.3.2.
  16.  
  17.  A number of portability problems have been fixed, and proper support
  18. for A/UX is included.  Also the CU/TCP port was cleaned up (this fix
  19. is present in the DOS version currently being distributed as
  20. archie-dos.zip).  The VMS port was also cleaned up.  This client's now
  21. in sync with the Prospero libraries as well.
  22.  
  23.  This will be the last release before version 2.0, which will hopefully
  24. incorporate all of the planned changes to the Archie 3.0 server.
  25.  
  26.  You can get the full client by FTPing to any of the Archie servers
  27. and looking in the /archie/clients subdirectory, or by FTPing to
  28. ftp.cs.widener.edu in /pub/archie, or cs.rochester.edu in /pub.
  29.  
  30.  Here's the README, followed by the patch.
  31.  
  32. --
  33. [Last changed 04/14/92 v1.3.2]
  34.  
  35.  Enclosed you'll find a Prospero client for the archie service.  It'll
  36. let you query the archie databases without actually using an
  37. interactive process on the remote server's machine (e.g., archie.ans.net),
  38. resulting in a MUCH better response time.  It also helps lessen the
  39. load on the archie server itself.
  40.  
  41.  What's Archie?  It's a system that will let you check a database containing
  42. thousands of entries for the files that're available at FTP sites around
  43. the world.
  44.  
  45.  This is a third child of Clifford Neuman's Prospero project.  It's really
  46. the Archie client that's included in the prospero stuff, but I've taken out
  47. everything that's unnecessary for this client to work.  (Aka, you don't
  48. have to build all of Prospero to get the Archie client.)  Khun Yee Fung
  49. wrote an archie client in Perl, George Ferguson has written a client
  50. for use with XWindows, based in part upon this code.  Also, Scott
  51. Stark wrote a NeXT-Step client for the NeXT.
  52.  
  53.  Using the Archie Prospero interface in its true form will probably be of
  54. interest---check out the file `Prospero' for an example of its interface.
  55. If you find it intriguing, you should probably get the full prospero kit
  56. from the University of Washington on cs.washington.edu in pub/prospero.tar.Z.
  57.  
  58.  Suffice to say, there are now a number of ways to query Archie without
  59. bogging a server down with your logins.
  60.  
  61.  Check out the man page (or archie.doc, if you're using VMS or DOS)
  62. for instructions on how to use this archie client.  VMS users please
  63. note that you have to put quotes around args that are capital letters;
  64. for example,  $ ARCHIE "-L"  to list the available servers.
  65.  
  66.  Please check to make sure you don't have "archie" aliased or modified
  67. in some way to do a telnet or rlogin (which you may've done before
  68. this command-line ability came into being).
  69.  
  70.  If Archie consistently hangs (at different times of day with
  71. different queries), it's possible that your site has UDP traffic on
  72. ports > 1000 blocked, for security reasons.  Type `make udptest' to
  73. check---if it prints out the date, the Archie server is probably down;
  74. if it doesn't print out the date, either Widener's computer is down
  75. (God forbid ;-) ) or you do indeed have UDP blocked.  See your system
  76. administrator in this case.  If the problem persists and haven't the
  77. vaguest, then write me describing the situation and what machine/OS
  78. you're using.
  79.  
  80.  Write to archie-group@cs.mcgill.ca with questions about Archie itself.
  81.  Write to info-prospero@isi.edu about the Prospero protocol.
  82.  Write to brendan@cs.widener.edu with questions about this specific package.
  83.  
  84. diff -cr archie/INSTALL archie-1.3.2/INSTALL
  85. *** archie/INSTALL    Wed Jan  8 13:43:22 1992
  86. --- archie-1.3.2/INSTALL    Wed Apr 15 02:00:13 1992
  87. ***************
  88. *** 1,4 ****
  89. ! [Last changed: 01/09/92 v1.3]
  90.   
  91.    This is the minimal set of things you need to build an Archie client
  92.   that takes advantage of the Prospero system.  It is derived from the
  93. --- 1,4 ----
  94. ! [Last changed: 04/14/92 v1.3.2]
  95.   
  96.    This is the minimal set of things you need to build an Archie client
  97.   that takes advantage of the Prospero system.  It is derived from the
  98. ***************
  99. *** 20,67 ****
  100.   me a line---my goal is for anybody to just type "make" and not have to
  101.   worry about things like what functions their system supports.
  102.   
  103. !  * To make the client under VMS, you should edit MAKE.COM and select
  104. ! the appropriate define for your version of TCP/IP (currently Multinet,
  105. ! UCX, or Wollongong).  It will sense if you're using Gnu C or not.
  106. ! It's currently only been ported to VMS 5.4-2 -- I can't guarantee
  107. ! it'll work with older versions.  As with Unix, if you're in a country
  108. ! other than the United States (or archie.ans.net isn't close), please edit
  109. ! the default archie server; it's in archie.h for VMS, though, not MAKE.COM.
  110. ! (If anyone knows how to make MAKE.COM pass the value of ARCHIE, namely
  111. ! "foo.bar" *with* quotes, into the compiler, please let me know!)
  112.   
  113.    * To make the client under MSDOS or OS/2:
  114.      * with FTP Software's PC/TCP for MSDOS (version 2.1 or higher) and
  115.        OS/2 (version 1.1 and higher), use makefile.os2 or makefile.dos
  116.      * with CUTCP (NCSA telnet), use makefile.cut
  117. -  It's been successfully built on:
  118. -   Machine            OS
  119. - * Apollo            Domain/OS 10.3
  120. - * Apple Mac IIsomething        A/UX v2.01
  121. - * CDC Mips systems, all sorts    EP/IX 1.2.3 and 1.3.1
  122. - * Convex c210 & others        ConvexOS 9.0 & 9.1
  123. - * DecStations -- all sorts    Ultrix 4.1 and 4.2
  124. - * Encore Multimax 520 (XPC)    Encore UMAX 4.3
  125. - * Encore Multimax 520        Encore Mach 1.1alpha
  126. - * Harris HCX-9 (tahoe)        CX/UX 5.1
  127. - * HP systems            MORE/bsd-4.3, HP/UX 7.0, and HP/UX 8.0
  128. - * IBM PC            MSDOS and OS/2 w/ PC/TCP
  129. - * IBM RS/6000            AIX
  130. - * IBM RT            4.3BSD, and AIX
  131. - * ISI 68020            4.3BSD
  132. - * NeXT                NeXT OS 2.1
  133. - * Pyramid 9815            OSx 5.0
  134. - * Sequent Symmetry        Dynix 3.1.1
  135. - * SGI 4D/220GTX            SGI Irix 3.3.2
  136. - * Solbourne Series 5/600    OS/MP 4.0Da
  137. - * Stardent 3030            SysV Rel 3.0.1
  138. - * Suns -- all sorts        SunOS 4.0.3, 4.1, and 4.1.1
  139. - * Vax 8600            MORE/bsd-4.3
  140. - * Vax 6000/310            VMS 5.4/Wollongong 5.1
  141. - * MicroVax 3400            VMS 5.4-2/Multinet 2.2 and Multinet 3.0
  142.   
  143.   -- Brendan Kehoe (brendan@cs.widener.edu)
  144. --- 20,31 ----
  145.   me a line---my goal is for anybody to just type "make" and not have to
  146.   worry about things like what functions their system supports.
  147.   
  148. !  * To make the client under VMS, just type @MAKE and it'll ask you
  149. !    which of the available Archie servers is closest.  That's it!
  150.   
  151.    * To make the client under MSDOS or OS/2:
  152.      * with FTP Software's PC/TCP for MSDOS (version 2.1 or higher) and
  153.        OS/2 (version 1.1 and higher), use makefile.os2 or makefile.dos
  154.      * with CUTCP (NCSA telnet), use makefile.cut
  155.   
  156.   -- Brendan Kehoe (brendan@cs.widener.edu)
  157. diff -cr archie/Makefile archie-1.3.2/Makefile
  158. *** archie/Makefile    Wed Jan  8 14:08:44 1992
  159. --- archie-1.3.2/Makefile    Wed Apr 15 02:10:28 1992
  160. ***************
  161. *** 1,5 ****
  162.   #
  163. ! # Last changed: 1/9/92, v1.3
  164.   #
  165.   # Makefile for the minimal build for an archie Prospero client.
  166.   
  167. --- 1,5 ----
  168.   #
  169. ! # Last changed: 4/14/92, v1.3.2
  170.   #
  171.   # Makefile for the minimal build for an archie Prospero client.
  172.   
  173. ***************
  174. *** 11,23 ****
  175.   #    * If you're on a Stardent, add  -43
  176.   #    * If you're running EP/IX, you may need to add  -systype bsd43
  177.   #      but try it without it first.
  178. ! OPTIONS= -O -I. -I/usr/netinclude
  179.   
  180.   # For this, DEFINES is usually ok as-is.  Try it without any of these
  181.   # first; if some stuff fails or shows up undefined, then come back and
  182. ! # add 'em.
  183.   #
  184. - #     * if you're on an Apple running A/UX, add              -DAUX
  185.   #     * if you want to include the debugging code (so you
  186.   #       can help with problem-solving if any crop up), add    -DDEBUG
  187.   #     * if you're running Interactive Unix, add              -DISC
  188. --- 11,23 ----
  189.   #    * If you're on a Stardent, add  -43
  190.   #    * If you're running EP/IX, you may need to add  -systype bsd43
  191.   #      but try it without it first.
  192. ! OPTIONS= -O -I. -I/usr/netinclude -I/usr/ucbinclude
  193.   
  194.   # For this, DEFINES is usually ok as-is.  Try it without any of these
  195.   # first; if some stuff fails or shows up undefined, then come back and
  196. ! # add 'em.  Also please drop me a line if you had to add anything...ideally
  197. ! # things will reach a point where this whole section will be unnecessary.
  198.   #
  199.   #     * if you want to include the debugging code (so you
  200.   #       can help with problem-solving if any crop up), add    -DDEBUG
  201.   #     * if you're running Interactive Unix, add              -DISC
  202. ***************
  203. *** 36,47 ****
  204.   #    archie.ans.net        (USA [NY])
  205.   #    archie.rutgers.edu        (USA [NJ])
  206.   #    archie.sura.net        (USA [MD])
  207.   #    archie.mcgill.ca        (Canada)
  208.   #    archie.funet.fi        (Finland/Mainland Europe)
  209.   #    archie.au            (Australia)
  210.   #    archie.doc.ic.ac.uk    (Great Britain/Ireland)
  211.   #
  212. ! ARCHIE= archie.ans.net
  213.   
  214.   #    Usually LDFLAGS is empty; if, after you build this, archie
  215.   #     complains that it can't resolve ARCHIE.ANS.NET (or whatever
  216. --- 36,48 ----
  217.   #    archie.ans.net        (USA [NY])
  218.   #    archie.rutgers.edu        (USA [NJ])
  219.   #    archie.sura.net        (USA [MD])
  220. + #    archie.unl.edu        (USA [NE])
  221.   #    archie.mcgill.ca        (Canada)
  222.   #    archie.funet.fi        (Finland/Mainland Europe)
  223.   #    archie.au            (Australia)
  224.   #    archie.doc.ic.ac.uk    (Great Britain/Ireland)
  225.   #
  226. ! ARCHIE= archie.sura.net
  227.   
  228.   #    Usually LDFLAGS is empty; if, after you build this, archie
  229.   #     complains that it can't resolve ARCHIE.ANS.NET (or whatever
  230. ***************
  231. *** 50,57 ****
  232.   #    * If you're using ISC, add -linet
  233.   #    * If you're using Wollongong TCP/IP on an AT&T box, use the
  234.   #      arguments -lnet -lnsl_s .
  235. ! LDFLAGS= # -lresolv
  236. ! #LDFLAGS= # -lnet -lnsl_s
  237.   
  238.   # Change this if necessary.
  239.   RM=/bin/rm
  240. --- 51,63 ----
  241.   #    * If you're using ISC, add -linet
  242.   #    * If you're using Wollongong TCP/IP on an AT&T box, use the
  243.   #      arguments -lnet -lnsl_s .
  244. ! #    * If you're using UTS, add -lsocket
  245. ! #    * If you're using System V Release 4, add -L/usr/ucblib etc.
  246. ! LDFLAGS=
  247. ! #LDFLAGS= -lresolv
  248. ! #LDFLAGS= -lnet -lnsl_s
  249. ! #LDFLAGS= -lsocket
  250. ! #LDFLAGS= -L/usr/ucblib -lucb -lsockdns -lnsl
  251.   
  252.   # Change this if necessary.
  253.   RM=/bin/rm
  254. ***************
  255. *** 61,71 ****
  256.   # =========================
  257.   #
  258.   CFLAGS=$(OPTIONS) $(DEFINES) -DARCHIE_HOST=\"$(ARCHIE)\"
  259. ! #
  260.   OBJS=    aquery.o archie.o atalloc.o dirsend.o get_pauth.o get_vdir.o \
  261.       perrmesg.o procquery.o ptalloc.o regex.o stcopy.o support.o \
  262.       vlalloc.o vl_comp.o
  263. ! #
  264.   all: archie
  265.   
  266.   archie: $(OBJS)
  267. --- 67,80 ----
  268.   # =========================
  269.   #
  270.   CFLAGS=$(OPTIONS) $(DEFINES) -DARCHIE_HOST=\"$(ARCHIE)\"
  271. ! VERSION=1.3.2
  272. ! VMS_VERSION=`echo $(VERSION) | sed -e 's,\\.,_,g'`
  273.   OBJS=    aquery.o archie.o atalloc.o dirsend.o get_pauth.o get_vdir.o \
  274.       perrmesg.o procquery.o ptalloc.o regex.o stcopy.o support.o \
  275.       vlalloc.o vl_comp.o
  276.   all: archie
  277.   
  278.   archie: $(OBJS)
  279. ***************
  280. *** 79,85 ****
  281.       $(RM) -f *.o archie archie.doc
  282.   
  283.   gclean: clean
  284. !     $(RM) -f *~ archie.0* archie.com archie.tar* gmon.out archie.doc
  285.   
  286.   unx-deadly:
  287.       unifdef -UXARCHIE xprocquery.c > procquery.c
  288. --- 88,94 ----
  289.       $(RM) -f *.o archie archie.doc
  290.   
  291.   gclean: clean
  292. !     $(RM) -f *~ archie.0* archie$(VMS_VERSION).com archie.tar* gmon.out archie.doc
  293.   
  294.   unx-deadly:
  295.       unifdef -UXARCHIE xprocquery.c > procquery.c
  296. ***************
  297. *** 106,132 ****
  298.   dist: tar shar dcl
  299.   
  300.   shar: archie.doc
  301. !     makekit -narchie. $(FILES) vms msdos > Manifest
  302.   
  303.   archie.doc: archie.man
  304.       nroff -man archie.man | tr '\010' _ | sed -e s/__//g > archie.doc
  305.   
  306.   dcl: archie.doc
  307. !     echo '$$ write sys$$output "Unpacking..."' > archie.com
  308. !     echo '$$ if f$$search("archie.dir") .eqs. "" then create/dir [.ARCHIE]' >> archie.com
  309. !     echo '$$ if f$$search("[.ARCHIE]vms.dir") .eqs. "" then create/dir [.ARCHIE.VMS]' >> archie.com
  310. !     echo '$$ if f$$search("[.ARCHIE]msdos.dir") .eqs. "" then create/dir [.ARCHIE.MSDOS]' >> archie.com
  311. !     echo '$$ set noverify' >> archie.com
  312. !     (cd .. ; dclshar `echo $(FILES) | tr ' ' '\012' |\
  313. !      sed -e "s/^/archie\//g"` >> archie/archie.com )
  314. !     echo '$$ write sys$$output "Ok, now enter the ARCHIE directory, look at MAKE.COM, then type @MAKE ."' >> archie.com
  315.   
  316.   tar: archie.doc
  317. !     ( cd .. ; tar cvf archie/archie.tar `echo $(FILES) |\
  318. !      tr ' ' '\012' | sed -e "s/^/archie\//g"` )
  319. !     compress -f archie.tar
  320. ! atest: archie.doc
  321. !     ( cd .. ; tar cvf archie/atest.tar `echo $(BFILES) |\
  322. !      tr ' ' '\012' | sed -e "s/^/archie\//g"` )
  323. !     compress -f atest.tar
  324. --- 115,140 ----
  325.   dist: tar shar dcl
  326.   
  327.   shar: archie.doc
  328. !     makekit -narchie-$(VERSION). `echo $(FILES) \
  329. !         tr ' ' '\012' | sed -e "s/^/archie-$(VERSION)\//g"` \
  330. !         vms msdos > Manifest
  331.   
  332.   archie.doc: archie.man
  333.       nroff -man archie.man | tr '\010' _ | sed -e s/__//g > archie.doc
  334.   
  335.   dcl: archie.doc
  336. !     if [ ! -d archie$(VMS_VERSION)/ ]; then ln -s . archie$(VMS_VERSION); fi
  337. !     echo '$$ write sys$$output "Unpacking..."' > archie$(VMS_VERSION).com
  338. !     echo '$$ if f$$search("archie.dir") .eqs. "" then create/dir [.ARCHIE]' >> archie$(VMS_VERSION).com
  339. !     echo '$$ if f$$search("[.ARCHIE]vms.dir") .eqs. "" then create/dir [.ARCHIE.VMS]' >> archie$(VMS_VERSION).com
  340. !     echo '$$ if f$$search("[.ARCHIE]msdos.dir") .eqs. "" then create/dir [.ARCHIE.MSDOS]' >> archie$(VMS_VERSION).com
  341. !     echo '$$ set noverify' >> archie$(VMS_VERSION).com
  342. !     dclshar `echo "$(FILES)" | tr ' ' '\012' | \
  343. !         sed -e "s/^/archie\//g"` >> archie$(VMS_VERSION).com
  344. !     echo '$$ write sys$$output "Ok, now enter the ARCHIE directory, look at MAKE.COM, then type @MAKE ."' >> archie$(VMS_VERSION).com
  345.   
  346.   tar: archie.doc
  347. !     if [ ! -d archie-$(VERSION)/ ]; then ln -s . archie-$(VERSION); fi
  348. !     tar cvf archie-$(VERSION).tar `echo $(FILES) |\
  349. !      tr ' ' '\012' | sed -e "s/^/archie-$(VERSION)\//g"`
  350. !     compress -f archie-$(VERSION).tar
  351. diff -cr archie/README archie-1.3.2/README
  352. *** archie/README    Wed Jan  8 13:45:41 1992
  353. --- archie-1.3.2/README    Wed Apr 15 02:08:12 1992
  354. ***************
  355. *** 1,8 ****
  356. ! [Last changed 01/09/92 v1.3]
  357.   
  358.    Enclosed you'll find a Prospero client for the archie service.  It'll
  359.   let you query the archie databases without actually using an
  360. ! interactive process on the remote server's machine (e.g. archie.ans.net),
  361.   resulting in a MUCH better response time.  It also helps lessen the
  362.   load on the archie server itself.
  363.   
  364. --- 1,8 ----
  365. ! [Last changed 04/14/92 v1.3.2]
  366.   
  367.    Enclosed you'll find a Prospero client for the archie service.  It'll
  368.   let you query the archie databases without actually using an
  369. ! interactive process on the remote server's machine (e.g., archie.ans.net),
  370.   resulting in a MUCH better response time.  It also helps lessen the
  371.   load on the archie server itself.
  372.   
  373. ***************
  374. *** 14,21 ****
  375.   the Archie client that's included in the prospero stuff, but I've taken out
  376.   everything that's unnecessary for this client to work.  (Aka, you don't
  377.   have to build all of Prospero to get the Archie client.)  Khun Yee Fung
  378. ! wrote an archie client in Perl, and George Ferguson has written a client
  379. ! for use with XWindows, based in part upon this code.
  380.   
  381.    Using the Archie Prospero interface in its true form will probably be of
  382.   interest---check out the file `Prospero' for an example of its interface.
  383. --- 14,22 ----
  384.   the Archie client that's included in the prospero stuff, but I've taken out
  385.   everything that's unnecessary for this client to work.  (Aka, you don't
  386.   have to build all of Prospero to get the Archie client.)  Khun Yee Fung
  387. ! wrote an archie client in Perl, George Ferguson has written a client
  388. ! for use with XWindows, based in part upon this code.  Also, Scott
  389. ! Stark wrote a NeXT-Step client for the NeXT.
  390.   
  391.    Using the Archie Prospero interface in its true form will probably be of
  392.   interest---check out the file `Prospero' for an example of its interface.
  393. ***************
  394. *** 26,32 ****
  395.   bogging a server down with your logins.
  396.   
  397.    Check out the man page (or archie.doc, if you're using VMS or DOS)
  398. ! for instructions on how to use this archie client.
  399.   
  400.    Please check to make sure you don't have "archie" aliased or modified
  401.   in some way to do a telnet or rlogin (which you may've done before
  402. --- 27,35 ----
  403.   bogging a server down with your logins.
  404.   
  405.    Check out the man page (or archie.doc, if you're using VMS or DOS)
  406. ! for instructions on how to use this archie client.  VMS users please
  407. ! note that you have to put quotes around args that are capital letters;
  408. ! for example,  $ ARCHIE "-L"  to list the available servers.
  409.   
  410.    Please check to make sure you don't have "archie" aliased or modified
  411.   in some way to do a telnet or rlogin (which you may've done before
  412. ***************
  413. *** 42,47 ****
  414.   vaguest, then write me describing the situation and what machine/OS
  415.   you're using.
  416.   
  417. !  Write to archie-l@cs.mcgill.ca with questions about Archie itself.
  418.    Write to info-prospero@isi.edu about the Prospero protocol.
  419.    Write to brendan@cs.widener.edu with questions about this specific package.
  420. --- 45,50 ----
  421.   vaguest, then write me describing the situation and what machine/OS
  422.   you're using.
  423.   
  424. !  Write to archie-group@cs.mcgill.ca with questions about Archie itself.
  425.    Write to info-prospero@isi.edu about the Prospero protocol.
  426.    Write to brendan@cs.widener.edu with questions about this specific package.
  427. diff -cr archie/aquery.c archie-1.3.2/aquery.c
  428. *** archie/aquery.c    Tue Nov 19 21:31:57 1991
  429. --- archie-1.3.2/aquery.c    Wed Apr 15 01:18:24 1992
  430. ***************
  431. *** 11,23 ****
  432.    * and new sorting code by George Ferguson (ferguson@cs.rochester.edu) 
  433.    * and Brendan Kehoe (brendan@cs.widener.edu).  MSDOS and OS2 modifications
  434.    * to use with PC/TCP by Mark Towfiq (towfiq@FTP.COM).
  435. -  *
  436. -  * v1.2.1 - 11/19/91 (mmt) - added MSDOS & OS2 stuff
  437. -  * v1.2.0 - 09/17/91 (bpk) - added BULL & USG stuff, thanks to Jim Sillas
  438. -  * v1.1.3 - 08/30/91 (bpk) - cast index()
  439. -  * v1.1.2 - 08/20/91 (bcn) - make it do it properly (new invdatecmplink)
  440. -  * v1.1.1 - 08/20/91 (bpk) - made sorting go inverted as we purport it does
  441.    */
  442.   #include <copyright.h>
  443.   
  444.   #include <stdio.h>
  445. --- 11,18 ----
  446.    * and new sorting code by George Ferguson (ferguson@cs.rochester.edu) 
  447.    * and Brendan Kehoe (brendan@cs.widener.edu).  MSDOS and OS2 modifications
  448.    * to use with PC/TCP by Mark Towfiq (towfiq@FTP.COM).
  449.    */
  450.   #include <copyright.h>
  451.   
  452.   #include <stdio.h>
  453. ***************
  454. *** 82,88 ****
  455.       char qstring[MAX_VPATH];    /* For construting the query  */
  456.       VLINK    links;        /* Matches returned by server */
  457.       VDIR_ST    dir_st;         /* Filled in by get_vdir      */
  458. !     VDIR    dir= &dir_st;
  459.       
  460.       VLINK    p,q,r,lowest,nextp,pnext,pprev;
  461.       int    tmp;
  462. --- 77,83 ----
  463.       char qstring[MAX_VPATH];    /* For construting the query  */
  464.       VLINK    links;        /* Matches returned by server */
  465.       VDIR_ST    dir_st;         /* Filled in by get_vdir      */
  466. !     PVDIR    dir= &dir_st;
  467.       
  468.       VLINK    p,q,r,lowest,nextp,pnext,pprev;
  469.       int    tmp;
  470. diff -cr archie/archie.c archie-1.3.2/archie.c
  471. *** archie/archie.c    Fri Jan 10 13:12:38 1992
  472. --- archie-1.3.2/archie.c    Sun Apr  5 13:24:36 1992
  473. ***************
  474. *** 3,13 ****
  475.    *
  476.    * For copying and distribution information, please see the file
  477.    * <copyright.h>.
  478. -  *
  479. -  * v1.2.1 - 11/21/91 (bkc) - added CUTCP library support for MSDOS
  480. -  * v1.2.0 - 11/19/91 (mmt) - added MSDOS & OS2 stuff
  481. -  * v1.1.2 - 08/27/91 (bpk) - added <pmachine.h> for index()
  482. -  * v1.1.1 - 08/22/91 (bpk) - added 0-9 as arguments
  483.    */
  484.   
  485.   #include <copyright.h>
  486. --- 3,8 ----
  487. ***************
  488. *** 28,33 ****
  489. --- 23,31 ----
  490.   # ifdef CUTCP
  491.   #  include <msdos/cutcp.h>
  492.   #  include <msdos/hostform.h>
  493. + /* The default stack size for a BC program is 4k; jack it up to 16 and add the
  494. +    Check for Stack Overflow option to the compiler.  */
  495. + extern unsigned _stklen = 16 * 1024;
  496.   # endif
  497.   #endif
  498.   
  499. diff -cr archie/archie.h archie-1.3.2/archie.h
  500. *** archie/archie.h    Wed Jan  8 13:08:48 1992
  501. --- archie-1.3.2/archie.h    Wed Apr 15 01:32:15 1992
  502. ***************
  503. *** 6,32 ****
  504.    *                Clifford Neuman (bcn@isi.edu).
  505.    */
  506.   
  507. - #ifdef VMS
  508. - /*
  509. -  * This has to be edited if you're running VMS, cuz I gave up after about
  510. -  * an hour trying to make DCL do       /define(archie_host="\"FOO\"")
  511. -  *
  512. -  * Edit ARCHIE_HOST to be one of :
  513. -  *    archie.ans.net        (USA [NY])
  514. -  *    archie.rutgers.edu        (USA [NJ])
  515. -  *    archie.sura.net        (USA [MD])
  516. -  *    archie.mcgill.ca        (Canada)
  517. -  *    archie.funet.fi        (Finland/Mainland Europe)
  518. -  *    archie.au            (Australia)
  519. -  *    archie.doc.ic.ac.uk    (Great Britain/Ireland)
  520. -  */
  521. - #define ARCHIE_HOST    "archie.ans.net"
  522. - #endif /* VMS */
  523.   /* You can't touch this.  */
  524.   #ifndef XARCHIE
  525. ! # define ARCHIES    "archie.ans.net (USA [NY])","archie.rutgers.edu (USA [NJ])","archie.sura.net (USA [MD])","archie.mcgill.ca (Canada)","archie.funet.fi (Finland/Mainland Europe)","archie.au (Australia)","archie.doc.ic.ac.uk (Great Britain/Ireland)"
  526. ! # define NARCHIES    7
  527.   #endif
  528.   
  529.   /*
  530. --- 6,15 ----
  531.    *                Clifford Neuman (bcn@isi.edu).
  532.    */
  533.   
  534.   /* You can't touch this.  */
  535.   #ifndef XARCHIE
  536. ! # define ARCHIES    "archie.ans.net (USA [NY])","archie.rutgers.edu (USA [NJ])","archie.sura.net (USA [MD])","archie.unl.edu (USA [NE])","archie.mcgill.ca (Canada)","archie.funet.fi (Finland/Mainland Europe)","archie.au (Australia)","archie.doc.ic.ac.uk (Great Britain/Ireland)"
  537. ! # define NARCHIES    8
  538.   #endif
  539.   
  540.   /*
  541. ***************
  542. *** 53,59 ****
  543.   #ifdef XARCHIE
  544.   # define CLIENT_VERSION    "1.3-X"
  545.   #else
  546. ! # define CLIENT_VERSION "1.3"
  547.   #endif
  548.   
  549.   /* Procedures from user/aquery.c */
  550. --- 36,42 ----
  551.   #ifdef XARCHIE
  552.   # define CLIENT_VERSION    "1.3-X"
  553.   #else
  554. ! # define CLIENT_VERSION "1.3.2"
  555.   #endif
  556.   
  557.   /* Procedures from user/aquery.c */
  558. diff -cr archie/copyright.h archie-1.3.2/copyright.h
  559. *** archie/copyright.h    Tue Nov 19 21:32:08 1991
  560. --- archie-1.3.2/copyright.h    Wed Apr  1 16:32:55 1992
  561. ***************
  562. *** 1,3 ****
  563. --- 1,6 ----
  564. + /* These are the uw-copyright.h and usc-copyright.h files that appear in
  565. +    the Prospero distribution.  */
  566.   /* 
  567.     Copyright (c) 1989, 1990, 1991 by the University of Washington
  568.   
  569. ***************
  570. *** 13,18 ****
  571. --- 16,55 ----
  572.     provided "as is" without express or implied warranty.
  573.   
  574.     Prospero was written by Clifford Neuman (bcn@isi.edu).
  575. +   Questions concerning this software should be directed to 
  576. +   info-prospero@isi.edu.
  577. +   */
  578. + /* 
  579. +   Copyright (c) 1991, 1992 by the University of Southern California
  580. +   All rights reserved.
  581. +   Permission to use, copy, modify, and distribute this software and its
  582. +   documentation in source and binary forms for non-commercial purposes
  583. +   and without fee is hereby granted, provided that the above copyright
  584. +   notice appear in all copies and that both the copyright notice and
  585. +   this permission notice appear in supporting documentation. and that
  586. +   any documentation, advertising materials, and other materials related
  587. +   to such distribution and use acknowledge that the software was
  588. +   developed by the University of Southern California, Information
  589. +   Sciences Institute.  The name of the University may not be used to
  590. +   endorse or promote products derived from this software without
  591. +   specific prior written permission.
  592. +   THE UNIVERSITY OF SOUTHERN CALIFORNIA makes no representations about
  593. +   the suitability of this software for any purpose.  THIS SOFTWARE IS
  594. +   PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES,
  595. +   INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
  596. +   MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  597. +   Other copyrights might apply to parts of the Prospero distribution
  598. +   and are so noted when applicable.
  599. +   Prospero was originally written by Clifford Neuman (bcn@isi.edu).
  600. +   Contributors include Benjamin Britt (britt@isi.edu)
  601. +   and others identified in individual modules.
  602.   
  603.     Questions concerning this software should be directed to 
  604.     info-prospero@isi.edu.
  605. diff -cr archie/dirsend.c archie-1.3.2/dirsend.c
  606. *** archie/dirsend.c    Tue Dec 17 10:39:41 1991
  607. --- archie-1.3.2/dirsend.c    Sun Apr  5 13:24:28 1992
  608. ***************
  609. *** 3,29 ****
  610.    *
  611.    * For copying and distribution information, please see the file
  612.    * <copyright.h>.
  613. -  *
  614. -  * v1.2.8 - 12/17/91 (jwb) - fixed warning message
  615. -  * v1.2.7 - 12/13/91 (bpk) - took out XARCHIE code since we've diverged
  616. -  * v1.2.6 - 12/13/91 (jwb) - UCX stuff
  617. -  * v1.2.5 - 11/21/91 (bkc) - new version for CUTCP, ugly as it is.
  618. -  * v1.2.4 - 11/19/91 (mmt) - added MSDOS & OS2 stuff
  619. -  * v1.2.3 - 11/04/91 (bcn) - removed host comparison and replaced with check
  620. -  *                 for connection id (undoes effect of v1.2.2.).
  621. -  * v1.2.2 - 11/02/91 (gf)  - removed extra inet_ntoa() calls and stuff for
  622. -  *                 multi-interface nets (lmjm@doc.imperial.ac.uk)
  623. -  * v1.2.1 - 10/20/91 (gf)  - asynch implementation
  624. -  * v1.2.0 - 09/17/91 (bpk) - added BULL & USG stuff, thanks to Jim Sillas
  625. -  * v1.1.2 - 08/30/91 (bpk) - added VMS support
  626. -  * v1.1.1 - 08/29/91 (bcn) - changed backoff handling
  627. -  * v1.1.0 - 08/13/91 (gf)  - added XArchie status calls
  628. -  *
  629. -  * gf: 20 Oct 1991:
  630. -  *  Broken into pieces so that under X dirsend() doesn't block in select()
  631. -  *  but rather uses Xt calls to allow continued event processing. If
  632. -  *  XARCHIE is not defined, can still be used since processEvent() will
  633. -  *  use select() in this case.
  634.    */
  635.   
  636.   /* If you're going to hack on this, I'd suggest using unifdef with -UCUTCP
  637. --- 3,8 ----
  638. ***************
  639. *** 57,62 ****
  640. --- 36,44 ----
  641.   # else
  642.   #  include <sys/time.h>
  643.   # endif
  644. + # ifdef WANT_BOTH_TIME
  645. + #  include <sys/time.h>
  646. + # endif
  647.   # ifdef NEED_STRING_H
  648.   #  include <string.h>
  649.   # else
  650. ***************
  651. *** 699,705 ****
  652.           if(stmp) pkt_cid = ntohs(stmp);
  653.           ctlptr += 2;
  654.       }
  655. !     if(pkt_cid && this_conn_id && (pkt_cid != this_conn_id)) {
  656.           /* The packet is not for us */
  657.           /* goto keep_waiting; */
  658.           keepWaitingDirsend();
  659. --- 681,687 ----
  660.           if(stmp) pkt_cid = ntohs(stmp);
  661.           ctlptr += 2;
  662.       }
  663. !     if(pkt_cid && this_conn_id && (pkt_cid != ntohs(this_conn_id))) {
  664.           /* The packet is not for us */
  665.           /* goto keep_waiting; */
  666.           keepWaitingDirsend();
  667. ***************
  668. *** 799,805 ****
  669.       bcopy(ctlptr,&stmp,2);
  670.       if(stmp) pkt_cid = ntohs(stmp);
  671.       ctlptr += 2;
  672. !     if(pkt_cid && this_conn_id && (pkt_cid != this_conn_id)) {
  673.           /* The packet is not for us */
  674.           /* goto keep_waiting; */
  675.           keepWaitingDirsend();
  676. --- 781,787 ----
  677.       bcopy(ctlptr,&stmp,2);
  678.       if(stmp) pkt_cid = ntohs(stmp);
  679.       ctlptr += 2;
  680. !     if(pkt_cid && this_conn_id && (pkt_cid != ntohs(this_conn_id))) {
  681.           /* The packet is not for us */
  682.           /* goto keep_waiting; */
  683.           keepWaitingDirsend();
  684. diff -cr archie/get_pauth.c archie-1.3.2/get_pauth.c
  685. *** archie/get_pauth.c    Tue Dec  3 14:31:41 1991
  686. --- archie-1.3.2/get_pauth.c    Sun Apr  5 13:26:25 1992
  687. ***************
  688. *** 3,13 ****
  689.    *
  690.    * For copying and distribution information, please see the file
  691.    * <copyright.h>.
  692. -  *
  693. -  * v1.2.2 - 11/19/91 (mmt) - added MSDOS & OS2 stuff
  694. -  * v1.2.1 - 09/17/91 (bpk) - added BULL & USG stuff, thanks to Jim Sillas
  695. -  * v1.2.0 - 09/17/91 (bpk) - fixed it up (thanks to synful)
  696. -  * v1.1.1 - 08/30/91 (bpk) - added VMS support
  697.    */
  698.   
  699.   #include <copyright.h>
  700. --- 3,8 ----
  701. diff -cr archie/get_vdir.c archie-1.3.2/get_vdir.c
  702. *** archie/get_vdir.c    Tue Nov 19 21:32:09 1991
  703. --- archie-1.3.2/get_vdir.c    Wed Apr 15 01:20:13 1992
  704. ***************
  705. *** 3,13 ****
  706.    *
  707.    * For copying and distribution information, please see the file
  708.    * <copyright.h>.
  709. -  *
  710. -  * v1.2.2 - 11/19/91 (mmt) - added MSDOS & OS2 stuff
  711. -  * v1.2.1 - 10/23/91 (bpk) - added missing code
  712. -  * v1.2.0 - 09/17/91 (bpk) - added new get_vdir code
  713. -  * v1.1.1 - 08/30/91 (bpk) - cast rindex()
  714.    */
  715.   
  716.   #include <copyright.h>
  717. --- 3,8 ----
  718. ***************
  719. *** 84,90 ****
  720.       char    *dhost;        /* Host on which directory resides           */
  721.       char    *dfile;        /* Name of file on that host                 */
  722.       char    *components;    /* Component name (wildcards allowed)        */
  723. !     VDIR    dir;        /* Structure to be filled in             */
  724.       long    flags;        /* Flags                         */
  725.       VLINK    filters;    /* Filters to be applied to result           */
  726.       char    *acomp;        /* Components left to be resolved            */
  727. --- 79,85 ----
  728.       char    *dhost;        /* Host on which directory resides           */
  729.       char    *dfile;        /* Name of file on that host                 */
  730.       char    *components;    /* Component name (wildcards allowed)        */
  731. !     PVDIR    dir;        /* Structure to be filled in             */
  732.       long    flags;        /* Flags                         */
  733.       VLINK    filters;    /* Filters to be applied to result           */
  734.       char    *acomp;        /* Components left to be resolved            */
  735. ***************
  736. *** 163,171 ****
  737.       request = ptalloc();
  738.   
  739.       sprintf(request->start,
  740. !         "VERSION %d\nAUTHENTICATOR %s %s\nDIRECTORY ASCII %s\nLIST %s COMPONENTS %s%s%s\n",
  741. !         VFPROT_VNO, authinfo->auth_type, authinfo->authenticator,
  742. !         dfile,opt, (comp ? comp : ""), (mcomp ? "/" : ""),
  743.           (mcomp ? acomp : ""));
  744.   
  745.       request->length = strlen(request->start);
  746. --- 158,167 ----
  747.       request = ptalloc();
  748.   
  749.       sprintf(request->start,
  750. !         "VERSION %d %s\nAUTHENTICATOR %s %s\nDIRECTORY ASCII %s\nLIST %s COMPONENTS %s%s%s\n",
  751. !         VFPROT_VNO, PFS_SW_ID, authinfo->auth_type,
  752. !         authinfo->authenticator, dfile, opt,
  753. !         (comp ? comp : ""), (mcomp ? "/" : ""),
  754.           (mcomp ? acomp : ""));
  755.   
  756.       request->length = strlen(request->start);
  757. ***************
  758. *** 311,317 ****
  759.               
  760.               break;
  761.   
  762. !         case 'F': /* FILTER, FAILURE or FORWARDED*/
  763.               /* FORWARDED */
  764.               if(strncmp(line,"FORWARDED",9) == 0) {
  765.               if(fwdcnt-- <= 0) {
  766. --- 307,313 ----
  767.               
  768.               break;
  769.   
  770. !         case 'F': /* FILTER, FAILURE or FORWARDED */
  771.               /* FORWARDED */
  772.               if(strncmp(line,"FORWARDED",9) == 0) {
  773.               if(fwdcnt-- <= 0) {
  774. diff -cr archie/make.com archie-1.3.2/make.com
  775. *** archie/make.com    Wed Jan  8 13:17:43 1992
  776. --- archie-1.3.2/make.com    Mon Jan 20 18:38:46 1992
  777. ***************
  778. *** 1,121 ****
  779. ! $!
  780. ! $! MAKE.COM - build the Archie client for VMS (5.4-2, others?)
  781. ! $!            for MultiNet TCP/IP, v2.2 & 3.0, and Wollongong 5.xx+
  782. ! $!          and UCX
  783. ! $!
  784. ! $! Many thanks to Jim Barbour (jwbarbour@clipr.colorado.edu) for all
  785. ! $! of his help getting this up to par.
  786. ! $!
  787. ! $! v1.2.2 - 12/13/91 (jwb) - ported to UCX & added dependencies
  788. ! $! v1.2.1 - 11/12/91 (bpk) - use option files
  789. ! $! v1.2   - 09/25/91 (bpk) - ported to Wollongong
  790. ! $!        - 09/20/91 (bpk) - fixed up strings.h stuff, etc
  791. ! $! v1.1   - 09/17/91 (bpk) - works with 3.0 now
  792. ! $! v1.0   - 08/30/91 (bpk) - Original
  793. ! $!
  794. ! $! If you want to force a compile (i.e. after modifying a .H file) then
  795. ! $! give @make the argument force.  i.e. $ make force
  796. ! $ force_compile = 0
  797. ! $ if p1 .eqs. "FORCE" then force_compile = 1
  798. ! $!
  799. ! $! * If you're running Multinet 3.0, leave this alone.  If you're
  800. ! $! running any version of Multinet less than 3.0 (e.g. 2.2), comment
  801. ! $! it out.
  802. ! $ mdef := ,multinet_30=1
  803. ! $! * If you're running Wollongong TCP, uncomment this.
  804. ! $!woll := ,wollongong=1
  805. ! $! * If you're running UCX, uncomment this.
  806. ! $!ucx := ,ucx=1
  807. ! $!
  808. ! $! * If you aren't in the US, or archie.ans.net doesn't ping "close" to
  809. ! $!   your site, edit the file ARCHIE.H and change ARCHIE_HOST appropriately.
  810. ! $! * Type @MAKE now.
  811. ! $!
  812. ! $!-----
  813. ! $ ve := f$verify(0)
  814. ! $!set noverify
  815. ! $ on control_y then goto hell
  816. ! $ on error then goto hell
  817. ! $ echo := write sys$output
  818. ! $!
  819. ! $ cc := cc/opt=noinline
  820. ! $ cflags := /define=(debug=1,funcs=1,noregex=1'mdef 'woll 'ucx)
  821. ! $!g := /debug
  822. ! $ if f$trnlnm("GNU_CC") .nes. "" then cc := gcc/optimize
  823. ! $!
  824. ! $ if f$search("strings.h") .nes. "" then delete/nolog/noconfirm []strings.h;*
  825. ! $ if "''cc'" .nes. "GCC" then copy/noconfirm sys$library:string.h []strings.h
  826. ! $ needs_linking = 0
  827. ! $!
  828. ! $ file := aquery
  829. ! $ gosub possibly_compile
  830. ! $ file := archie
  831. ! $ gosub possibly_compile
  832. ! $ file := atalloc
  833. ! $ gosub possibly_compile
  834. ! $ file := dirsend
  835. ! $ gosub possibly_compile
  836. ! $ file := get_pauth
  837. ! $ gosub possibly_compile
  838. ! $ file := get_vdir
  839. ! $ gosub possibly_compile
  840. ! $ file := perrmesg
  841. ! $ gosub possibly_compile
  842. ! $ file := procquery
  843. ! $ gosub possibly_compile
  844. ! $ file := ptalloc
  845. ! $ gosub possibly_compile
  846. ! $ file := regex
  847. ! $ gosub possibly_compile
  848. ! $ file := stcopy
  849. ! $ gosub possibly_compile
  850. ! $ file := support
  851. ! $ gosub possibly_compile
  852. ! $ file := vlalloc
  853. ! $ gosub possibly_compile
  854. ! $ file := vl_comp
  855. ! $ gosub possibly_compile
  856. ! $!
  857. ! $ do_vs := ,
  858. ! $ if "''ucx'" .nes. "" then libs :=  [.vms]ucx
  859. ! $ if "''mdef'" .nes. "" then libs := [.vms]multi
  860. ! $ if "''woll'" .nes. "" then libs := [.vms]woll
  861. ! $ if "''mdef'" .eqs. "" .and. "''woll'" .eqs. "" .and "''ucx'" .eqs. "" then-
  862. !                                 gosub dosup
  863. ! $!
  864. ! $ file :=
  865. ! $ if f$search("ARCHIE.EXE") .eqs. "" then needs_linking = 1
  866. ! $ if needs_linking
  867. ! $ then
  868. ! $ echo "Linking..."
  869. ! $ link'g/exe=archie aquery+archie+atalloc+-
  870. ! dirsend+get_pauth+get_vdir+-
  871. ! perrmesg+procquery+ptalloc+regex+stcopy+support+vlalloc+vl_comp'do_vs-
  872. ! 'libs/option
  873. ! $ else
  874. ! $ echo "ARCHIE is up to date."
  875. ! $ endif
  876. ! $ out:
  877. ! $ echo "Done! Define the symbol ARCHIE & fire away."
  878. ! $!
  879. ! $ hell:
  880. ! $ if "''file'" .nes. "" then delete/noconfirm/nolog 'file.obj;
  881. ! $ if 've .eq. 1 then set verify
  882. ! $ exit
  883. ! $!
  884. ! $ dosup:
  885. ! $ file := vms_support
  886. ! $ gosub possibly_compile
  887. ! $ do_vs := +vms_support,
  888. ! $ return
  889. ! $ possibly_compile:
  890. ! $ if force_compile then goto build
  891. ! $ if f$search("''file'.obj") .eqs. "" then goto build
  892. ! $ if f$cvtime(f$file("''file'.c","cdt")) .gts. -
  893. !      f$cvtime(f$file("''file'.obj","cdt")) then goto build
  894. ! $ return
  895. ! $ build:
  896. ! $ echo "Compiling ''file'.C..."
  897. ! $ 'cc/include=([])'cflags 'g 'file.c
  898. ! $ needs_linking = 1
  899. ! $ return
  900. --- 1,430 ----
  901. ! $! --- MAKE.COM ---                        !x='f$verify(0)'
  902. ! $! Description:
  903. ! $!  build the Archie client for VAX/VMS
  904. ! $!
  905. ! $! Written by Luke Brennan <brennan@coco.cchs.su.oz.au>
  906. ! $!
  907. ! $! Modifications:
  908. ! $!    Date    Programmer    Reason for modification.
  909. ! $! 20-Jan-92       ldcb        Initial coding.
  910. ! $!
  911. ! $!
  912. ! $!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  913. ! $ Archie_EXECUTABLE := "archie.exe"
  914. ! $!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  915. ! $! add a new call here with the appropriate new Archie server host(s)
  916. ! $!
  917. ! $ arg == 1
  918. ! $ Call AddHost "archie.ans.net"        "(USA [NY])"
  919. ! $ Call AddHost "archie.rutgers.edu"    "(USA [NJ])"
  920. ! $ Call AddHost "archie.sura.net"    "(USA [MD])"
  921. ! $ Call AddHost "archie.unl.edu"        "(USA [NE])"
  922. ! $ Call AddHost "archie.mcgill.ca"    "(Canada)"
  923. ! $ Call AddHost "archie.funet.fi"    "(Finland/Mainland Europe)"
  924. ! $ Call AddHost "archie.au"        "(Australia)"
  925. ! $ Call AddHost "archie.doc.ic.ac.uk"    "(Great Britain/Ireland)"
  926. ! $ MAXHOSTS = arg - 1
  927. ! $!
  928. ! $!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  929. ! $! add a new call here with any new source file(s)
  930. ! $! (P2 should be "SUPPORT" if intended for supporting an unknown TCPIP)
  931. ! $!
  932. ! $ arg == 1
  933. ! $ Call AddSource "AQUERY"
  934. ! $ Call AddSource "ARCHIE"
  935. ! $ Call AddSource "ATALLOC"
  936. ! $ Call AddSource "DIRSEND"
  937. ! $ Call AddSource "GET_PAUTH"
  938. ! $ Call AddSource "GET_VDIR"
  939. ! $ Call AddSource "PERRMESG"
  940. ! $ Call AddSource "PROCQUERY"
  941. ! $ Call AddSource "PTALLOC"
  942. ! $ Call AddSource "REGEX"
  943. ! $ Call AddSource "STCOPY"
  944. ! $ Call AddSource "SUPPORT"
  945. ! $ Call AddSource "VLALLOC"
  946. ! $ Call AddSource "VL_COMP"
  947. ! $ Call AddSource "VMS_SUPPORT" "SUPPORT"
  948. ! $ MAXSOURCEFILES = arg - 1
  949. ! $!
  950. ! $!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  951. ! $! add a call here with any supported TCP/IP implementations
  952. ! $!  P1 = name of TCP/IP product, P2 = cc/define to set,
  953. ! $!  P3 = logical to look for,    P4 = location of link/OPT,
  954. ! $!  P5 = MINIMUM VERSION of TCP/IP to support
  955. ! $!
  956. ! $!  Multinet should be last, as it can 'fake' a UCX if you want it to, so
  957. ! $!  UCX would come up as the 'real' net even though Multinet is used.
  958. ! $!
  959. ! $ arg == 1
  960. ! $ Call AddTCPIP "UCX"        "UCX"         "UCX$DEVICE" "[.vms]ucx.opt"
  961. ! $ Call AddTCPIP "WOLLONGONG" "WOLLONGONG"  "TWG$TCP"    "[.vms]woll.opt"
  962. ! $ Call AddTCPIP "MULTINET"   "MULTINET_30" "MULTINET"   "[.vms]multi.opt" "V3.0"
  963. ! $ MAXTCPIPTYPES = arg - 1
  964. ! $!
  965. ! $!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  966. ! $!
  967. ! $ YES = (1.eq.1)
  968. ! $ NO  = (1.eq.0)
  969. ! $!
  970. ! $!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  971. ! $!
  972. ! $ GoSub get_command_line_args
  973. ! $ GoSub check_for_GNU_cc
  974. ! $ GoSub check_which_TCPIP
  975. ! $ GoSub ask_nearest_ARCHIE_HOST
  976. ! $ GoSub check_for_strings_H
  977. ! $ GoSub set_cc_defines
  978. ! $ GoSub do_compiles
  979. ! $ If (LINKAGE_REQUIRED)
  980. ! $ Then GoSub do_link
  981. ! $ Else Write Sys$OutPut "ARCHIE is up to date."
  982. ! $ EndIF
  983. ! $ Exit
  984. ! $!
  985. ! $!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  986. ! $!
  987. ! $get_command_line_args:
  988. ! $ cmdline = P1 + P2 + P3 + P4 + P5 + P6 + P7 + P8
  989. ! $ If ((f$locate("DEBUG",cmdline) .ne. f$length(cmdline)) -
  990. !  .or. (f$locate("DBG",cmdline)   .ne. f$length(cmdline)))
  991. ! $ Then debug := "/DeBug"
  992. ! $ Else debug := "/NOdebug"
  993. ! $ EndIF
  994. ! $ If (f$locate("FORCE",cmdline) .ne. f$length(cmdline))
  995. ! $ Then FORCEBUILD = YES
  996. ! $ Else FORCEBUILD = NO
  997. ! $ EndIF
  998. ! $ If (f$locate("LINK",cmdline) .ne. f$length(cmdline))
  999. ! $ Then FORCELINK = YES
  1000. ! $ Else FORCELINK = NO
  1001. ! $ EndIF
  1002. ! $ If ((f$locate("?",cmdline) .ne. f$length(cmdline)) -
  1003. !  .or. (f$locate("H",cmdline) .ne. f$length(cmdline)))
  1004. ! $ Then
  1005. ! $   Write Sys$Output "Usage:"
  1006. ! $   Write Sys$OutPut "     @MAKE [<debug>|<force>|<link>|<help>]
  1007. ! $   EXIT
  1008. ! $ EndIF
  1009. ! $ RETURN
  1010. ! $!
  1011. ! $!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  1012. ! $!
  1013. ! $CHECK_FOR_GNU_CC:
  1014. ! $ If (f$trnlnm("GNU_CC") .nes. "")
  1015. ! $ Then
  1016. ! $   cc := "GCC/Optimize/Include=([])"
  1017. ! $   gnu_cc = YES
  1018. ! $ Else
  1019. ! $   cc := "CC/Optimize=NOinline/Include=([])"
  1020. ! $   gnu_cc = NO
  1021. ! $ EndIF
  1022. ! $!
  1023. ! $ RETURN
  1024. ! $!
  1025. ! $!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  1026. ! $! for product P1, cc/define=P2 if logical P3 present on system.
  1027. ! $! Libs/option = P4 if present. ALL get disregarded if less than version P5
  1028. ! $!
  1029. ! $CHECK_WHICH_TCPIP:
  1030. ! $ tcpip_flag :=
  1031. ! $ tcpip_libs :=
  1032. ! $ NO_TCPIP_SUPPORT = YES
  1033. ! $ i = 1
  1034. ! $tcp_loop:
  1035. ! $ If (i .gt. MAXTCPIPTYPES) Then GoTo tcp_check_done
  1036. ! $ If (f$type(tcpip_P2_'i') .eqs. "") Then GoTo tcp_check_done
  1037. ! $ If (f$type(tcpip_P3_'i') .nes. "")
  1038. ! $ Then
  1039. ! $   tcpip_logical = tcpip_P3_'i'
  1040. ! $   If (tcpip_logical .nes. "")
  1041. ! $   Then                    ! logical to look for
  1042. ! $     If (f$logical(tcpip_logical) .nes. "")
  1043. ! $     Then
  1044. ! $       tcpip_flag = tcpip_P2_'i'
  1045. ! $       tcpip_flag = f$fao(",!AS=1",tcpip_flag)
  1046. ! $       NO_TCPIP_SUPPORT = NO
  1047. ! $       If (f$type(tcpip_P4_'i') .nes. "")
  1048. ! $       Then                    ! link/OPT file location
  1049. ! $        tcpip_linkOPTs = tcpip_P4_'i'
  1050. ! $         If (tcpip_linkOPTs .nes. "")
  1051. ! $         Then
  1052. ! $           If (f$search(tcpip_linkOPTs) .nes. "")
  1053. ! $           Then
  1054. ! $             tcpip_libs = tcpip_P4_'i'
  1055. ! $             tcpip_libs = f$fao("!AS/Option",tcpip_libs)
  1056. ! $           EndIF
  1057. ! $         EndIF
  1058. ! $       EndIF
  1059. ! $       If (f$type(tcpip_P5_'i') .nes. "")
  1060. ! $       Then                    ! minimum version specified
  1061. ! $         If (tcpip_P5_'i' .nes. "")
  1062. ! $         Then
  1063. ! $           GoSub CheckIfVersionOK
  1064. ! $           If VERSION_TOO_EARLY
  1065. ! $           Then                ! too early.. use SUPPORT files
  1066. ! $             tcpip_flag :=
  1067. ! $             tcpip_libs :=
  1068. ! $             NO_TCPIP_SUPPORT = YES
  1069. ! $          tcp_ver = tcpip_P5_'i'
  1070. ! $             tcp_name = tcpip_P1_'i'
  1071. ! $             Write Sys$OutPut f$fao( -
  1072. !            "Your version of !AS is earlier than !AS.",tcp_name,tcp_ver)
  1073. !           Write Sys$OutPut "MAKE will use STD support files instead."
  1074. ! $           EndIF
  1075. ! $         EndIF
  1076. ! $       EndIF
  1077. ! $     EndIF
  1078. ! $   EndIF
  1079. ! $ EndIF
  1080. ! $ i = i + 1
  1081. ! $ Goto tcp_loop
  1082. ! $tcp_check_done:
  1083. ! $ RETURN
  1084. ! $!
  1085. ! $!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  1086. ! $!
  1087. ! $ASK_NEAREST_ARCHIE_HOST:
  1088. ! $GoSub CLRSCN
  1089. ! $ Write Sys$OutPut f$fao("!AS!/!/", -
  1090. !     "           Enter the number of the ARCHIE HOST nearest you.")
  1091. ! $!
  1092. ! $ i = 1
  1093. ! $_display_loop:
  1094. ! $ If (i .gt. MAXHOSTS) Then GoTo _display_done
  1095. ! $  Write Sys$OutPut f$fao("!2SL) !25AS  !AS",i,host_P1_'i',host_P2_'i')
  1096. ! $  i = i + 1
  1097. ! $ GoTo _display_loop
  1098. ! $_display_done:
  1099. ! $!
  1100. ! $ Assign/User_Mode/NOlog Sys$Command Sys$InPut
  1101. ! $_select_loop:                ! get their selection
  1102. ! $ Read     Sys$Command selection    -
  1103. !     /End=_selection_made    -
  1104. !     /Prompt="Enter number of your selection: "
  1105. ! $ If (selection .gt. MAXHOSTS)
  1106. ! $ Then
  1107. ! $   Write Sys$OutPut f$fao("!AS !2SL", "error: Options only go to", MAXHOSTS)
  1108. ! $   GoTo _select_loop
  1109. ! $ EndIF
  1110. ! $ ascii_string = f$edit(selection,"COLLAPSE,UPCASE")
  1111. ! $ ascii_char = f$extract(0,1,ascii_string)
  1112. ! $ If (.NOT. ("0" .les. ascii_char) .and. (ascii_char .les. "9"))
  1113. ! $ Then
  1114. ! $   Write Sys$OutPut -
  1115. !     f$fao("error: Enter option NUMBER (up to !2SL)", MAXHOSTS)
  1116. ! $   Goto _select_loop
  1117. ! $ EndIF
  1118. ! $!
  1119. ! $ local_archie = host_P1_'selection'
  1120. ! $!
  1121. ! $ RETURN
  1122. ! $!
  1123. ! $!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  1124. ! $! If we're using VAXC then we need to grab STRINGS.H from SYS$LIBRARY.
  1125. ! $CHECK_FOR_STRINGS_H:
  1126. ! $ delete := delete
  1127. ! $ copy   := copy
  1128. ! $ If (f$search("strings.h") .nes. "") Then delete/nolog/noconfirm []strings.h;*
  1129. ! $ If .NOT. (GNU_CC) Then copy/noconfirm sys$library:string.h []strings.h
  1130. ! $!
  1131. ! $ RETURN
  1132. ! $!
  1133. ! $!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  1134. ! $! **NOTE** use of global symbol!!!
  1135. ! $! **NOTE** this is the only way I could pass it to the compile subroutine
  1136. ! $! **NOTE** without DCL and/or CC stripping off too many layers of quotes..
  1137. ! $! **NOTE** yeah.. I know.. It's ugly...  you work it out!! :-)
  1138. ! $SET_CC_DEFINES:
  1139. ! $ archie_host = " """"""ARCHIE_HOST=""""""""''local_archie'"""""""" """""" "
  1140. ! $ cflags :== /define=(debug=1,funcs=1,noregex=1'tcpip_flag','archie_host')
  1141. ! $!
  1142. ! $RETURN
  1143. ! $!
  1144. ! $!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  1145. ! $!
  1146. ! $DO_COMPILES:
  1147. ! $ GoSub CLRSCN
  1148. ! $ LINKAGE_REQUIRED == NO
  1149. ! $ If ("''f$type(Archie_EXECUTABLE)'" .nes. "")
  1150. ! $ Then
  1151. ! $   If (Archie_EXECUTABLE .nes. "")
  1152. ! $   Then If (f$search(Archie_EXECUTABLE) .eqs. "") Then LINKAGE_REQUIRED == YES
  1153. ! $   Else If (f$search("Archie.exe") .eqs. "") Then LINKAGE_REQUIRED == YES
  1154. ! $   EndIF
  1155. ! $ Else
  1156. ! $   If (f$search("Archie.exe") .nes. "") Then LINKAGE_REQUIRED == YES
  1157. ! $ EndIF
  1158. ! $ i = 1
  1159. ! $cc_loop:
  1160. ! $ If (i .gt. MAXSOURCEFILES) Then GoTo cc_done
  1161. ! $ source_file = source_P1_'i'
  1162. ! $ If ((f$type(source_P2_'i') .eqs. "") .or. (source_P2_'i' .eqs. ""))
  1163. ! $ Then Call Compile "''cc'" "''source_file'" "''debug'" 'FORCEBUILD'
  1164. ! $ Else
  1165. ! $   If ((NO_TCPIP_SUPPORT) .and. (source_P2_'i' .eqs. "SUPPORT"))
  1166. ! $   Then Call Compile "''cc'" "''source_file'" "''debug'" 'FORCEBUILD'
  1167. ! $   EndIF
  1168. ! $ EndIF
  1169. ! $ i = i + 1
  1170. ! $ GoTo cc_loop
  1171. ! $cc_done:
  1172. ! $ If (FORCELINK) Then LINKAGE_REQUIRED == YES
  1173. ! $!
  1174. ! $ RETURN
  1175. ! $!
  1176. ! $!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  1177. ! $!
  1178. ! $DO_LINK:
  1179. ! $ If (f$type(Archie_EXECUTABLE) .nes. "")
  1180. ! $ Then
  1181. ! $   If (Archie_EXECUTABLE .nes. "")
  1182. ! $   Then executable := /Exec='Archie_EXECUTABLE'
  1183. ! $   Else executable := /Exec=Archie.exe
  1184. ! $   EndIF
  1185. ! $ Else
  1186. ! $   executable := /Exec=Archie.exe
  1187. ! $ EndIF
  1188. ! $ i = 1
  1189. ! $ object_files :=
  1190. ! $object_files_loop:
  1191. ! $ If (i .gt. MAXSOURCEFILES) Then GoTo object_files_done
  1192. ! $ object_file = source_P1_'i'
  1193. ! $ If ((f$type(source_P2_'i') .eqs. "") .or. (source_P2_'i' .eqs. ""))
  1194. ! $ Then object_files := 'object_files'+'object_file'
  1195. ! $ Else
  1196. ! $   If ((NO_TCPIP_SUPPORT) .and. (source_P2_'i' .eqs. "SUPPORT"))
  1197. ! $   Then object_files := 'object_files'+'object_file'
  1198. ! $   EndIF
  1199. ! $ EndIF
  1200. ! $ i = i + 1
  1201. ! $ GoTo object_files_loop
  1202. ! $object_files_done:
  1203. ! $ If (f$extract(0,1,object_files) .eqs. "+")
  1204. ! $ Then object_files = f$extract(1,f$length(object_files),object_files)
  1205. ! $ EndIF
  1206. ! $ If (tcpip_libs .nes. "")
  1207. ! $ Then object_files = object_files + ","
  1208. ! $ EndIF
  1209. ! $!
  1210. ! $ Set Verify
  1211. ! $ Link'debug''executable' 'object_files''tcpip_libs'
  1212. ! $ x='f$verify(0)'
  1213. ! $!
  1214. ! $ Write Sys$OutPut " "
  1215. ! $ Write Sys$OutPut " "
  1216. ! $ Write Sys$OutPut "Done! Define the symbol ARCHIE & fire away."
  1217. ! $!
  1218. ! $ RETURN
  1219. ! $!
  1220. ! $! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  1221. ! $!
  1222. ! $CLRSCN:
  1223. ! $If (f$GetDVI("TT:","TT_ANSICRT"))            ! ANSI compatible?
  1224. ! $Then
  1225. ! $  CSI = "x["
  1226. ! $  CSI[0,8] = 27
  1227. ! $  CLS = CSI + "H" + CSI +"2J"
  1228. ! $  Write Sys$OutPut CLS
  1229. ! $Else
  1230. ! $  Write Sys$Output "''f$fao("!/!/!/!/!/!/!/!/!/!/!/")
  1231. ! $  Write Sys$Output "''f$fao("!/!/!/!/!/!/!/!/!/!/!/!/")
  1232. ! $EndIF
  1233. ! $Return
  1234. ! $!
  1235. ! $!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  1236. ! $!
  1237. ! $AddHOST: SUBROUTINE
  1238. ! $ host_P1_'arg' :== "''P1'"
  1239. ! $ host_P2_'arg' :== "''P2'"
  1240. ! $ arg == arg + 1    ! *NOTE* global symbols used...
  1241. ! $ENDSUBROUTINE
  1242. ! $!
  1243. ! $!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  1244. ! $!
  1245. ! $AddSOURCE: SUBROUTINE
  1246. ! $ source_P1_'arg' :== "''P1'"
  1247. ! $ source_P2_'arg' :== "''P2'"
  1248. ! $ arg == arg + 1    ! *NOTE* global symbols used...
  1249. ! $ENDSUBROUTINE
  1250. ! $!
  1251. ! $!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  1252. ! $!
  1253. ! $AddTCPIP: SUBROUTINE
  1254. ! $ tcpip_P1_'arg' :== "''P1'"
  1255. ! $ tcpip_P2_'arg' :== "''P2'"
  1256. ! $ tcpip_P3_'arg' :== "''P3'"
  1257. ! $ tcpip_P4_'arg' :== "''P4'"
  1258. ! $ tcpip_P5_'arg' :== "''P5'"
  1259. ! $ arg == arg + 1    ! *NOTE* global symbols used...
  1260. ! $ENDSUBROUTINE
  1261. ! $!
  1262. ! $!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  1263. ! $! **NOTE** cflags is a GLOBAL symbol due to problems with quoted /Defines
  1264. ! $! **NOTE** not passing down correctly.. (I gave up!)
  1265. ! $Compile: SUBROUTINE
  1266. ! $ YES = (1.eq.1)
  1267. ! $! --- do a Make of only that source which has been modified since its
  1268. ! $!     object code was generated or that is missing its object code.
  1269. ! $ cc       = "''P1'"
  1270. ! $ source   = "''P2'"
  1271. ! $ dbg      = "''P3'"
  1272. ! $ FORCED   = P4
  1273. ! $!
  1274. ! $source = source - ".C" + ".C"
  1275. ! $ t1 = f$search("''source'")                ! source exists?
  1276. ! $  If (t1 .eqs. "") Then GoTo _error_source_missing    ! YIPE!
  1277. ! $   source = source - ".C"
  1278. ! $    if (FORCED) Then GoTo _compile_the_source        ! forced to compile
  1279. ! $     t1 = f$search("''source'.OBJ")            ! object exist?
  1280. ! $     If (t1 .eqs. "") Then GoTo _compile_the_source    ! object missing
  1281. ! $     t1 = f$file_attributes("''source'.OBJ","RDT")    ! when was the OBJECT
  1282. ! $    t1 = f$cvtime(t1)                    ! produced? (rev date)
  1283. ! $   t2 = f$file_attributes("''source'.C","RDT")        ! when was source last
  1284. ! $  t2 = f$cvtime(t2)                    ! modified?
  1285. ! $ If (t1 .ges. t2) Then GoTo _bypass_compile        ! object still current
  1286. ! $_compile_the_source:
  1287. ! $ set verify
  1288. ! $ 'cc -
  1289. !   'cflags -
  1290. !   'dbg 'source
  1291. ! $ x='f$verify(0)'
  1292. ! $ LINKAGE_REQUIRED == YES
  1293. ! $  GoTo _cc_done
  1294. ! $_bypass_compile:                    ! didn't need to
  1295. ! $  GoTo _cc_done                    ! generate new OBJ file
  1296. ! $_error_source_missing:
  1297. ! $ Write Sys$OutPut "ERROR: unable to locate source file ''source'.C"
  1298. ! $_cc_done:
  1299. ! $ENDSUBROUTINE
  1300. ! $!
  1301. ! $!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  1302. ! $!
  1303. ! $CHECKIFVERSIONOK:
  1304. ! $ required_version = tcpip_P5_'i'
  1305. ! $ tcpip_type = tcpip_P1_'i'
  1306. ! $ If ("MULTINET" .eqs. tcpip_type)
  1307. ! $ Then                        ! I know how to check MULTINET
  1308. ! $   If (f$search("MULTINET:MULTINET_VERSION.;") .nes. "")
  1309. ! $   Then
  1310. ! $     Open/share=READ fd MULTINET:MULTINET_VERSION.;
  1311. ! $     Read fd buffer
  1312. ! $     Close fd
  1313. ! $     v = buffer - "VERSION"
  1314. ! $     v = f$edit(V,"TRIM,COMPRESS")
  1315. ! $     If (v .ges. required_version)
  1316. ! $     Then VERSION_TOO_EARLY = NO
  1317. ! $     Else VERSION_TOO_EARLY = YES
  1318. ! $     EndIF
  1319. ! $   Else
  1320. ! $     VERSION_TOO_EARLY = YES
  1321. ! $   EndIF
  1322. ! $ Else                        ! don't know, so assume current
  1323. ! $   VERSION_TOO_EARLY = NO
  1324. ! $ EndIF
  1325. ! $!
  1326. ! $ RETURN
  1327. ! $!
  1328. ! $!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  1329. diff -cr archie/makefile.cut archie-1.3.2/makefile.cut
  1330. *** archie/makefile.cut    Tue Dec  3 15:11:21 1991
  1331. --- archie-1.3.2/makefile.cut    Tue Jan 28 08:41:46 1992
  1332. ***************
  1333. *** 16,22 ****
  1334.   
  1335.   DEFINES    = -DDEBUG -DCUTCP
  1336.   
  1337. ! CFLAGS= -ml -r -v $(DEFINES) -I.
  1338.   LFLAGS= /P/m/s
  1339.   CC = bccx
  1340.   
  1341. --- 16,22 ----
  1342.   
  1343.   DEFINES    = -DDEBUG -DCUTCP
  1344.   
  1345. ! CFLAGS= -k -N -ml -r -v $(DEFINES) -I.
  1346.   LFLAGS= /P/m/s
  1347.   CC = bccx
  1348.   
  1349. diff -cr archie/patchlevel.h archie-1.3.2/patchlevel.h
  1350. *** archie/patchlevel.h    Fri Jan 10 13:21:16 1992
  1351. --- archie-1.3.2/patchlevel.h    Wed Apr 15 01:32:54 1992
  1352. ***************
  1353. *** 3,8 ****
  1354. --- 3,9 ----
  1355.    *
  1356.    * History:
  1357.    *
  1358. +  * 04/14/92 v1.3.2 - Release.
  1359.    * 01/10/92 v1.3.1 - Release.
  1360.    * 01/09/92 v1.3 - Release.
  1361.    * 12/13/91      - added UCX support
  1362. diff -cr archie/pcompat.h archie-1.3.2/pcompat.h
  1363. *** archie/pcompat.h    Tue Nov 19 21:32:10 1991
  1364. --- archie-1.3.2/pcompat.h    Wed Apr  1 16:27:14 1992
  1365. ***************
  1366. *** 31,40 ****
  1367.   #define PMAP_ATSIGN_NF      3
  1368.   #define PMAP_ATSIGN      4
  1369.   
  1370. ! #define DISABLE_PFS(stmt) {int DpfStmp; DpfStmp = pfs_enable;\
  1371.                  pfs_enable = PMAP_DISABLE; \
  1372.                  stmt; \
  1373. !                pfs_enable = DpfStmp;}
  1374.   
  1375.   /* Definitions for PFS_ACCESS */
  1376.   #define PFA_MAP           0  /* Map the file name only                       */
  1377. --- 31,40 ----
  1378.   #define PMAP_ATSIGN_NF      3
  1379.   #define PMAP_ATSIGN      4
  1380.   
  1381. ! #define DISABLE_PFS(stmt) do {int DpfStmp; DpfStmp = pfs_enable;\
  1382.                  pfs_enable = PMAP_DISABLE; \
  1383.                  stmt; \
  1384. !                pfs_enable = DpfStmp;} while (0)
  1385.   
  1386.   /* Definitions for PFS_ACCESS */
  1387.   #define PFA_MAP           0  /* Map the file name only                       */
  1388. ***************
  1389. *** 42,45 ****
  1390.   #define PFA_CRMAP         2  /* Map file name.  Map to new name if not found */
  1391.   #define PFA_RO            4  /* Access to file is read only                  */
  1392.   
  1393. ! #define check_pfs_default() if(pfs_default == -1) get_pfs_default()
  1394. --- 42,46 ----
  1395.   #define PFA_CRMAP         2  /* Map file name.  Map to new name if not found */
  1396.   #define PFA_RO            4  /* Access to file is read only                  */
  1397.   
  1398. ! #define check_pfs_default() \
  1399. !     do { if (pfs_default == -1) get_pfs_default(); } while (0)
  1400. diff -cr archie/perrno.h archie-1.3.2/perrno.h
  1401. *** archie/perrno.h    Tue Nov 19 21:32:11 1991
  1402. --- archie-1.3.2/perrno.h    Sun Apr  5 13:28:44 1992
  1403. ***************
  1404. *** 7,13 ****
  1405.   
  1406.   #include <copyright.h>
  1407.   
  1408. ! /* this file and p_err_text.c should be updated simultaneously */
  1409.   
  1410.   /*
  1411.    * perrno.h - definitions for perrno
  1412. --- 7,13 ----
  1413.   
  1414.   #include <copyright.h>
  1415.   
  1416. ! /* This file and perrmesg.c should be updated simultaneously.  */
  1417.   
  1418.   /*
  1419.    * perrno.h - definitions for perrno
  1420. diff -cr archie/pfs.h archie-1.3.2/pfs.h
  1421. *** archie/pfs.h    Wed Jan  8 13:36:17 1992
  1422. --- archie-1.3.2/pfs.h    Wed Apr 15 01:23:21 1992
  1423. ***************
  1424. *** 3,12 ****
  1425.    *
  1426.    * For copying and distribution information, please see the file
  1427.    * <copyright.h>.
  1428. -  *
  1429. -  * v1.2.0 - 11/19/91 (mmt) - added MSDOS & OS2 stuff
  1430. -  * v1.1.2 - 08/30/91 (bpk) - added VMS support
  1431. -  * v1.1.1 - 08/20/91 (bpk) - 4.2 -> 4.2B
  1432.    */
  1433.   
  1434.   #include <copyright.h>
  1435. --- 3,8 ----
  1436. ***************
  1437. *** 31,37 ****
  1438.   # endif /* MSDOS */
  1439.   #endif /* NULL */
  1440.   
  1441. ! #define        PFS_RELEASE    "Beta.4.2D"
  1442.   /* moved up for vdir_init */
  1443.   #define ZERO(p)        bzero((char *)(p), sizeof(*(p)))
  1444.   
  1445. --- 27,35 ----
  1446.   # endif /* MSDOS */
  1447.   #endif /* NULL */
  1448.   
  1449. ! #define        PFS_RELEASE    "Beta.4.2E"
  1450. ! #define        PFS_SW_ID    "B42E"
  1451.   /* moved up for vdir_init */
  1452.   #define ZERO(p)        bzero((char *)(p), sizeof(*(p)))
  1453.   
  1454. ***************
  1455. *** 127,133 ****
  1456.       struct vdir        *next;          /* Next element in linked list     */
  1457.   };
  1458.   
  1459. ! typedef struct vdir *VDIR;
  1460.   typedef struct vdir VDIR_ST;
  1461.   
  1462.   /* Initialize directory */
  1463. --- 125,131 ----
  1464.       struct vdir        *next;          /* Next element in linked list     */
  1465.   };
  1466.   
  1467. ! typedef struct vdir *PVDIR;
  1468.   typedef struct vdir VDIR_ST;
  1469.   
  1470.   /* Initialize directory */
  1471. ***************
  1472. *** 302,307 ****
  1473. --- 300,308 ----
  1474.                MACL_DELETE|MACL_ADD|MACL_SUBTRACT)
  1475.   
  1476.   #define      MACL_OTYPE (MACL_LINK|MACL_DIRECTORY|MACL_OBJECT|MACL_INCLUDE)
  1477. + /* Flags for dsrdir */
  1478. + #define DSRD_ATTRIBUTES                      0x1 /* Fill in attributes for links */
  1479.   
  1480.   /* Access methods returned by Pget_am */
  1481.   #define P_AM_ERROR            0
  1482. diff -cr archie/pmachine.h archie-1.3.2/pmachine.h
  1483. *** archie/pmachine.h    Fri Jan 10 13:01:53 1992
  1484. --- archie-1.3.2/pmachine.h    Sun Apr  5 13:23:50 1992
  1485. ***************
  1486. *** 3,11 ****
  1487.    *
  1488.    * I kept the name pmachine.h because it was already in all of the files...this
  1489.    * barely resembles the pmachine.h that comes with the real Prospero, tho.
  1490. -  *
  1491. -  * v1.2.1 - 12/13/91 (bpk) - added 3b2
  1492. -  * v1.2.0 - 11/19/91 (mmt) - added MSDOS & OS2 stuff
  1493.    */
  1494.   
  1495.   #ifdef u3b2
  1496. --- 3,8 ----
  1497. ***************
  1498. *** 40,45 ****
  1499. --- 37,50 ----
  1500.   # define MSDOS
  1501.   #endif
  1502.   
  1503. + #ifdef _AUX_SOURCE
  1504. + # define AUX
  1505. + # define NOREGEX
  1506. + # define NBBY 8    /* Number of bits in a byte.  */
  1507. + # define long Fd_mask;
  1508. + # define NFDBITS (sizeof(Fd_mask) * NBBY)    /* bits per mask */
  1509. + #endif
  1510.   #ifdef OS2
  1511.   # define NOREGEX
  1512.   # include <pctcp.h>
  1513. ***************
  1514. *** 70,76 ****
  1515.   char *strchr();
  1516.   # endif
  1517.   # define rindex        strrchr
  1518. ! # ifndef AUX
  1519.   #  define bcopy(a,b,n)    memcpy(b,a,n)
  1520.   #  define bzero(a,n)    memset(a,0,n)
  1521.   # ifdef _IBMR2
  1522. --- 75,81 ----
  1523.   char *strchr();
  1524.   # endif
  1525.   # define rindex        strrchr
  1526. ! # ifndef _AUX_SOURCE
  1527.   #  define bcopy(a,b,n)    memcpy(b,a,n)
  1528.   #  define bzero(a,n)    memset(a,0,n)
  1529.   # ifdef _IBMR2
  1530. ***************
  1531. *** 85,92 ****
  1532.   #if defined(USG) || defined(UTS)
  1533.   # define NEED_STRING_H
  1534.   #endif
  1535. ! #if defined(USG) || defined(UTS) || defined(AUX)
  1536.   # define NEED_TIME_H
  1537.   #endif
  1538.   
  1539.   #ifdef VMS
  1540. --- 90,100 ----
  1541.   #if defined(USG) || defined(UTS)
  1542.   # define NEED_STRING_H
  1543.   #endif
  1544. ! #if defined(USG) || defined(UTS) || defined(_AUX_SOURCE)
  1545.   # define NEED_TIME_H
  1546. + # ifdef UTS
  1547. + #  define WANT_BOTH_TIME
  1548. + # endif
  1549.   #endif
  1550.   
  1551.   #ifdef VMS
  1552. diff -cr archie/pprot.h archie-1.3.2/pprot.h
  1553. *** archie/pprot.h    Sat Nov 23 15:43:01 1991
  1554. --- archie-1.3.2/pprot.h    Sun Apr  5 13:29:10 1992
  1555. ***************
  1556. *** 3,10 ****
  1557.    *
  1558.    * For copying and distribution information, please see the file
  1559.    * <copyright.h>.
  1560. -  *
  1561. -  * v1.2.0 - 11/19/91 (mmt) - added MSDOS & OS2 stuff
  1562.    */
  1563.   
  1564.   #include <copyright.h>
  1565. --- 3,8 ----
  1566. ***************
  1567. *** 47,59 ****
  1568.   /* the string to be stepped through to S_next, then call get_token on  */
  1569.   /* S.  The first token will be in S, and S_next will point to the next */
  1570.   /* token.  Like strtok, this macro does modify the string passed to it */
  1571.   #define get_token(S,C) \
  1572.       S = S/**/_next; \
  1573.       if(S) { \
  1574.        while(*S == C) S++; \
  1575.        S/**/_next = index(S,C); \
  1576.        if(S/**/_next) *(S/**/_next++) = '\0'; \
  1577.        if(!*S) S = NULL; \
  1578. !     }
  1579. --- 45,70 ----
  1580.   /* the string to be stepped through to S_next, then call get_token on  */
  1581.   /* S.  The first token will be in S, and S_next will point to the next */
  1582.   /* token.  Like strtok, this macro does modify the string passed to it */
  1583. + #ifdef __GNUC__
  1584.   #define get_token(S,C) \
  1585. +   do { \
  1586. +     S = S##_next; \
  1587. +     if(S) { \
  1588. +      while(*S == C) S++; \
  1589. +      S##_next = index(S,C); \
  1590. +      if(S##_next) *(S##_next++) = '\0'; \
  1591. +      if(!*S) S = NULL; \
  1592. +     } \
  1593. +   } while (0)
  1594. + #else
  1595. + #define get_token(S,C) \
  1596.       S = S/**/_next; \
  1597. +   do { \
  1598.       if(S) { \
  1599.        while(*S == C) S++; \
  1600.        S/**/_next = index(S,C); \
  1601.        if(S/**/_next) *(S/**/_next++) = '\0'; \
  1602.        if(!*S) S = NULL; \
  1603. !     } \
  1604. !   } while (0)
  1605. ! #endif /* __GNUC__ */
  1606. diff -cr archie/procquery.c archie-1.3.2/procquery.c
  1607. *** archie/procquery.c    Tue Dec  3 15:02:14 1991
  1608. --- archie-1.3.2/procquery.c    Sun Apr  5 13:29:22 1992
  1609. ***************
  1610. *** 10,20 ****
  1611.    * For copying and distribution information, please see the file
  1612.    * <copyright.h>.
  1613.    *
  1614. -  * v1.2.2 - 11/19/91 (mmt) - added MSDOS & OS2 stuff
  1615. -  * v1.2.1 - 10/18/91 (bpk) - warning stuff
  1616. -  * v1.2.0 - 09/20/91 (bpk) - VMS under Multinet 3.0 too
  1617. -  * v1.1.1 - 08/20/91 (bpk) - took out archie_query from error msg
  1618.    */
  1619.   #include <copyright.h>
  1620.   #include <stdio.h>
  1621.   #include <pfs.h>
  1622. --- 10,17 ----
  1623.    * For copying and distribution information, please see the file
  1624.    * <copyright.h>.
  1625.    *
  1626.    */
  1627.   #include <copyright.h>
  1628.   #include <stdio.h>
  1629.   #include <pfs.h>
  1630. ***************
  1631. *** 210,215 ****
  1632. --- 207,215 ----
  1633.   
  1634.       if (l == (VLINK)NULL && pwarn == PNOWARN && perrno == PSUCCESS) {
  1635.       if (! listflag) puts ("No matches.");
  1636. + #ifdef CUTCP
  1637. +     netshut();
  1638. + #endif
  1639.       exit (1);
  1640.       }
  1641.   
  1642. diff -cr archie/ptalloc.c archie-1.3.2/ptalloc.c
  1643. *** archie/ptalloc.c    Tue Nov 19 21:32:13 1991
  1644. --- archie-1.3.2/ptalloc.c    Sun Apr  5 13:29:34 1992
  1645. ***************
  1646. *** 3,10 ****
  1647.    *
  1648.    * For copying and distribution information, please see the file
  1649.    * <copyright.h>.
  1650. -  *
  1651. -  * v1.2.0 - 11/19/91 (mmt) - added MSDOS & OS2 stuff
  1652.    */
  1653.   
  1654.   #include <copyright.h>
  1655. --- 3,8 ----
  1656. diff -cr archie/regex.h archie-1.3.2/regex.h
  1657. *** archie/regex.h    Tue Nov 19 21:32:14 1991
  1658. --- archie-1.3.2/regex.h    Fri Jan 31 09:14:00 1992
  1659. ***************
  1660. *** 9,15 ****
  1661.    * George Ferguson, ferguson@cs.rochester.edu, 11 Sep 1991.
  1662.    */
  1663.   
  1664. ! #if defined(AUX) || defined(USG)
  1665.   /* Let them use ours if they wish.  */
  1666.   # ifndef NOREGEX
  1667.   extern char *regcmp();
  1668. --- 9,15 ----
  1669.    * George Ferguson, ferguson@cs.rochester.edu, 11 Sep 1991.
  1670.    */
  1671.   
  1672. ! #if defined(_AUX_SOURCE) || defined(USG)
  1673.   /* Let them use ours if they wish.  */
  1674.   # ifndef NOREGEX
  1675.   extern char *regcmp();
  1676. diff -cr archie/stcopy.c archie-1.3.2/stcopy.c
  1677. *** archie/stcopy.c    Tue Nov 19 21:32:14 1991
  1678. --- archie-1.3.2/stcopy.c    Sun Apr  5 13:30:02 1992
  1679. ***************
  1680. *** 3,11 ****
  1681.    *
  1682.    * For copying and distribution information, please see the file
  1683.    * <copyright.h>.
  1684. -  *
  1685. -  * v1.2.1 - 11/19/91 (mmt) - added MSDOS & OS2 stuff
  1686. -  * v1.2.0 - 09/17/91 (bpk) - added BULL & USG stuff, thanks to Jim Sillas
  1687.    */
  1688.   
  1689.   #include <copyright.h>
  1690. --- 3,8 ----
  1691. diff -cr archie/support.c archie-1.3.2/support.c
  1692. *** archie/support.c    Fri Dec 13 16:10:59 1991
  1693. --- archie-1.3.2/support.c    Wed Apr 15 01:21:11 1992
  1694. ***************
  1695. *** 3,13 ****
  1696.    *
  1697.    * For copying and distribution information, please see the file
  1698.    * <copyright.h>.
  1699. -  *
  1700. -  * v1.2.2 - 11/19/91 (mmt) - added MSDOS & OS2 stuff
  1701. -  * v1.2.1 - 09/23/91 (gf)  - made it use regex.h---much nicer
  1702. -  * v1.2.0 - 09/17/91 (bpk) - added BULL & USG stuff, thanks to Jim Sillas
  1703. -  * v1.1.1 - 08/30/91 (bpk) - added VMS support; cast index()
  1704.    */
  1705.   
  1706.   /*
  1707. --- 3,8 ----
  1708. ***************
  1709. *** 137,143 ****
  1710.   int
  1711.   ul_insert(ul,vd,p)
  1712.       VLINK    ul;        /* Link to be inserted                   */
  1713. !     VDIR    vd;        /* Directory to receive link             */
  1714.       VLINK    p;        /* Union link to appear prior to new one */
  1715.       {
  1716.       VLINK    current;
  1717. --- 132,138 ----
  1718.   int
  1719.   ul_insert(ul,vd,p)
  1720.       VLINK    ul;        /* Link to be inserted                   */
  1721. !     PVDIR    vd;        /* Directory to receive link             */
  1722.       VLINK    p;        /* Union link to appear prior to new one */
  1723.       {
  1724.       VLINK    current;
  1725. ***************
  1726. *** 237,243 ****
  1727.   int
  1728.   vl_insert(vl,vd,allow_conflict)
  1729.       VLINK    vl;        /* Link to be inserted               */
  1730. !     VDIR    vd;        /* Directory to receive link         */
  1731.       int        allow_conflict;    /* Allow duplicate names             */
  1732.       {
  1733.       VLINK    current;    /* To step through list             */
  1734. --- 232,238 ----
  1735.   int
  1736.   vl_insert(vl,vd,allow_conflict)
  1737.       VLINK    vl;        /* Link to be inserted               */
  1738. !     PVDIR    vd;        /* Directory to receive link         */
  1739.       int        allow_conflict;    /* Allow duplicate names             */
  1740.       {
  1741.       VLINK    current;    /* To step through list             */
  1742.  
  1743. --
  1744. Brendan Kehoe, Sun Network Manager                      brendan@cs.widener.edu
  1745. Widener University                                                 Chester, PA
  1746.  
  1747. exit 0 # Just in case...
  1748.