home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume39 / dist-3.0 / patch09 < prev    next >
Encoding:
Text File  |  1993-09-09  |  19.2 KB  |  533 lines

  1. Newsgroups: comp.sources.misc
  2. From: Raphael Manfredi <ram@acri.fr>
  3. Subject: v39i082:  dist-3.0 - Configure script generator and related tools, Patch09
  4. Message-ID: <1993Sep9.133734.24058@sparky.sterling.com>
  5. X-Md4-Signature: 394f5a0fc6fe439df19f43f1ec966cef
  6. Sender: kent@sparky.sterling.com (Kent Landfield)
  7. Organization: Advanced Computer Research Institute, Lyon, France
  8. Date: Thu, 9 Sep 1993 13:37:34 GMT
  9. Approved: kent@sparky.sterling.com
  10.  
  11. Submitted-by: Raphael Manfredi <ram@acri.fr>
  12. Posting-number: Volume 39, Issue 82
  13. Archive-name: dist-3.0/patch09
  14. Environment: UNIX, Perl, RCS
  15. Patch-To: dist-3.0: Volume 39, Issue 5-32
  16.  
  17. [The latest patch for dist version 3.0 is #9.]
  18.  
  19. System: dist version 3.0
  20. Patch #: 9
  21. Priority: LOW
  22. Subject: one of the known bugs has been fixed
  23. Subject: mention low traffic on mailing list
  24. Subject: added two more wishes for metaconfig
  25. Subject: volatile definition was swapped over with undef
  26. Subject: lots of typo fixes and abusive variable substitution problems
  27. Subject: now skips the 'users' file when computing newest file list
  28. Date: Thu Sep 09 13:51:19 MET DST 1993
  29. From: Raphael Manfredi <ram@acri.fr>
  30.  
  31. Description:
  32.     One of the known bugs has been fixed, so the Known_bugs file has
  33.     been updated accordingly.
  34.  
  35.     The README file now mentions low traffic on the dist-users mailing
  36.     list, in case new subscribers wonder why they aren't getting any
  37.     mail messages from the list from time to time...
  38.  
  39.     Added two more wishes for metaconfig in the wishlist. I'd like to
  40.     find the time to implement them soon, but I've been having little
  41.     control over my free time lately... (sigh)
  42.  
  43.     Volatile definition was swapped over with undef, i.e. it would be
  44.     undef when it needed to be defined and vice-versa...
  45.  
  46.     Lots of typo fixes and abusive variable substitution problems in
  47.     the metaconfig manual page.
  48.  
  49.     Now skips the 'users' file when computing newest file list. That
  50.     file is created and maintained by the mailagent when procesing
  51.     the @SH package requests (mailed out automatically by Configure).
  52.  
  53.  
  54. Fix:    From rn, say "| patch -p -N -d DIR", where DIR is your dist source
  55.     directory.  Outside of rn, say "cd DIR; patch -p -N <thisarticle".
  56.     If you don't have the patch program, apply the following by hand,
  57.     or get patch (version 2.0, latest patchlevel).
  58.  
  59.     After patching:
  60.         Configure -ders
  61.         make
  62.         make install
  63.         make install.man
  64.  
  65.     If patch indicates that patchlevel is the wrong version, you may need
  66.     to apply one or more previous patches, or the patch may already
  67.     have been applied.  See the patchlevel.h file to find out what has or
  68.     has not been applied.  In any event, don't continue with the patch.
  69.  
  70.     If you are missing previous patches they can be obtained from me:
  71.  
  72.         Raphael Manfredi <ram@acri.fr>
  73.  
  74.     If you send a mail message of the following form it will greatly speed
  75.     processing:
  76.  
  77.         Subject: Command
  78.         @SH mailpatch PATH dist 3.0 LIST
  79.                ^ note the c
  80.  
  81.     where PATH is a return path FROM ME TO YOU either in Internet notation,
  82.     or in bang notation from some well-known host, and LIST is the number
  83.     of one or more patches you need, separated by spaces, commas, and/or
  84.     hyphens.  Saying 35- says everything from 35 to the end.
  85.  
  86.     To get some more detailed instructions, send me the following mail:
  87.  
  88.         Subject: Command
  89.         @SH mailhelp PATH
  90.  
  91.  
  92. Index: patchlevel.h
  93. Prereq: 8
  94. 4c4
  95. < #define PATCHLEVEL 8
  96. ---
  97. > #define PATCHLEVEL 9
  98.  
  99. Index: mcon/man/mconfig.SH
  100. Prereq: 3.0.1.3
  101. *** mcon/man/mconfig.SH.old    Thu Sep  9 13:51:16 1993
  102. --- mcon/man/mconfig.SH    Thu Sep  9 13:51:17 1993
  103. ***************
  104. *** 20,26 ****
  105.   .TH METACONFIG $manext "Version $VERSION PL$PATCHLEVEL"
  106.   ''' @(#) Manual page for metaconfig
  107.   '''
  108. ! ''' $Id: mconfig.SH,v 3.0.1.3 1993/08/30 08:53:51 ram Exp $
  109.   '''
  110.   '''  Copyright (c) 1991-1993, Raphael Manfredi
  111.   '''  
  112. --- 20,26 ----
  113.   .TH METACONFIG $manext "Version $VERSION PL$PATCHLEVEL"
  114.   ''' @(#) Manual page for metaconfig
  115.   '''
  116. ! ''' $Id: mconfig.SH,v 3.0.1.4 1993/09/09 11:50:35 ram Exp $
  117.   '''
  118.   '''  Copyright (c) 1991-1993, Raphael Manfredi
  119.   '''  
  120. ***************
  121. *** 31,36 ****
  122. --- 31,39 ----
  123.   '''  of the source tree for dist 3.0.
  124.   '''
  125.   ''' $Log: mconfig.SH,v $
  126. + ''' Revision 3.0.1.4  1993/09/09  11:50:35  ram
  127. + ''' patch9: lots of typo fixes and abusive variable substitution problems
  128. + '''
  129.   ''' Revision 3.0.1.3  1993/08/30  08:53:51  ram
  130.   ''' patch8: wrongly stated that patchlevel.h should not be part of MANIFEST.new
  131.   '''
  132. ***************
  133. *** 312,318 ****
  134.   and default evaluation.  The general form is
  135.   .Ex
  136.   case "$grimble" in
  137. ! '') dflt=452;;
  138.   *) dflt="$grimble";;
  139.   esac
  140.   rp='How many grimbles do you have?'
  141. --- 315,321 ----
  142.   and default evaluation.  The general form is
  143.   .Ex
  144.   case "$grimble" in
  145. ! \&'') dflt=452;;
  146.   *) dflt="$grimble";;
  147.   esac
  148.   rp='How many grimbles do you have?'
  149. ***************
  150. *** 566,572 ****
  151.   \fIintsize.SH\fR file that looks like this:
  152.   .Ex
  153.   case \$CONFIG in
  154. ! '')
  155.       if test -f config.sh; then TOP=.;
  156.       elif test -f ../config.sh; then TOP=..;
  157.       elif test -f ../../config.sh; then TOP=../..;
  158. --- 569,575 ----
  159.   \fIintsize.SH\fR file that looks like this:
  160.   .Ex
  161.   case \$CONFIG in
  162. ! \&'')
  163.       if test -f config.sh; then TOP=.;
  164.       elif test -f ../config.sh; then TOP=..;
  165.       elif test -f ../../config.sh; then TOP=../..;
  166. ***************
  167. *** 653,659 ****
  168.   and removing the now useless comments added by \fImakeSH\fR, we get:
  169.   .Ex
  170.   case \$CONFIG in
  171. ! '')
  172.       if test -f config.sh; then TOP=.;
  173.       elif test -f ../config.sh; then TOP=..;
  174.       elif test -f ../../config.sh; then TOP=../..;
  175. --- 656,662 ----
  176.   and removing the now useless comments added by \fImakeSH\fR, we get:
  177.   .Ex
  178.   case \$CONFIG in
  179. ! \&'')
  180.       if test -f config.sh; then TOP=.;
  181.       elif test -f ../config.sh; then TOP=..;
  182.       elif test -f ../../config.sh; then TOP=../..;
  183. ***************
  184. *** 703,709 ****
  185.   really happens:
  186.   .Ex
  187.   case \$CONFIG in
  188. ! '')
  189.       if test -f config.sh; then TOP=.;
  190.       elif test -f ../config.sh; then TOP=..;
  191.       elif test -f ../../config.sh; then TOP=../..;
  192. --- 706,712 ----
  193.   really happens:
  194.   .Ex
  195.   case \$CONFIG in
  196. ! \&'')
  197.       if test -f config.sh; then TOP=.;
  198.       elif test -f ../config.sh; then TOP=..;
  199.       elif test -f ../../config.sh; then TOP=../..;
  200. ***************
  201. *** 923,930 ****
  202.   .PP
  203.   Special units sometimes reserve themselves some pre-defined variable and
  204.   return "results" in other well-known variables. For instance, the \fImyread\fR
  205. ! script produced by Myread.U expects the prompt in \fI$rp\fR, the default
  206. ! answer in \fI\$dflt\fR and places the user answer in \fI$ans\fR. This is
  207.   not documented in this manual page: you have to go and look at the unit
  208.   itself to understand which variables are used and how the unit is to be
  209.   used.
  210. --- 926,933 ----
  211.   .PP
  212.   Special units sometimes reserve themselves some pre-defined variable and
  213.   return "results" in other well-known variables. For instance, the \fImyread\fR
  214. ! script produced by Myread.U expects the prompt in \fI\$rp\fR, the default
  215. ! answer in \fI\$dflt\fR and places the user answer in \fI\$ans\fR. This is
  216.   not documented in this manual page: you have to go and look at the unit
  217.   itself to understand which variables are used and how the unit is to be
  218.   used.
  219. ***************
  220. *** 1065,1076 ****
  221.   Ties up the destiny of the shell symbols with that of the C symbols: if any
  222.   of the C symbols listed is wanted, then all the shell symbols are marked
  223.   as wanted. Useful to force inclusion of a unit (shell symbol list set to
  224. ! '%<') when the presence of some C symbol is detected. The shell symbol list
  225.   may be left empty, to benefit from the side effect of C symbol location
  226.   within the builtin pre-processor (symbol being \fIdefined\fR for that
  227.   pre-processor if located in the source). To look for patterns with a space
  228.   in them, you need to quote the C symbols within simple quotes, as in
  229. ! 'struct timezone'.
  230.   .TP
  231.   ?V:\fIread-only symbols\fR:\fIread-write symbols\fR
  232.   This is a \fImetalint\fR hint and should be used only in special units
  233. --- 1068,1079 ----
  234.   Ties up the destiny of the shell symbols with that of the C symbols: if any
  235.   of the C symbols listed is wanted, then all the shell symbols are marked
  236.   as wanted. Useful to force inclusion of a unit (shell symbol list set to
  237. ! \&'%<') when the presence of some C symbol is detected. The shell symbol list
  238.   may be left empty, to benefit from the side effect of C symbol location
  239.   within the builtin pre-processor (symbol being \fIdefined\fR for that
  240.   pre-processor if located in the source). To look for patterns with a space
  241.   in them, you need to quote the C symbols within simple quotes, as in
  242. ! \&'struct timezone'.
  243.   .TP
  244.   ?V:\fIread-only symbols\fR:\fIread-write symbols\fR
  245.   This is a \fImetalint\fR hint and should be used only in special units
  246. ***************
  247. *** 1120,1126 ****
  248.   Here are the relevant parts of the d_const.U unit:
  249.   .Ex
  250.   ?MAKE:d_const: cat cc ccflags Setvar
  251. ! ?MAKE:    -pick add $@ %<
  252.   ?S:d_const:
  253.   ?S:    This variable conditionally defines the HASCONST symbol, which
  254.   ?S:    indicates to the C program that this C compiler knows about the
  255. --- 1123,1129 ----
  256.   Here are the relevant parts of the d_const.U unit:
  257.   .Ex
  258.   ?MAKE:d_const: cat cc ccflags Setvar
  259. ! ?MAKE:    -pick add \$@ %<
  260.   ?S:d_const:
  261.   ?S:    This variable conditionally defines the HASCONST symbol, which
  262.   ?S:    indicates to the C program that this C compiler knows about the
  263. ***************
  264. *** 1169,1175 ****
  265.   ?H: line defining \fIHASCONST\fR is implicitely guarded by '?HASCONST'.
  266.   Therefore, we must add the explicit '?%<' constraint to tell \fImetaconfig\fR
  267.   that those lines should be included in \fIconfig_h.SH\fR whenever the
  268. ! '%<' symbol gets wanted (%< refers to the unit's name, here \fId_const\fR).
  269.   .PP
  270.   That's almost perfect, because the ?W: line will want \fId_const\fR whenever
  271.   \fIconst\fR is used, then the ?H: lines will get included in the
  272. --- 1172,1178 ----
  273.   ?H: line defining \fIHASCONST\fR is implicitely guarded by '?HASCONST'.
  274.   Therefore, we must add the explicit '?%<' constraint to tell \fImetaconfig\fR
  275.   that those lines should be included in \fIconfig_h.SH\fR whenever the
  276. ! \&'%<' symbol gets wanted (%< refers to the unit's name, here \fId_const\fR).
  277.   .PP
  278.   That's almost perfect, because the ?W: line will want \fId_const\fR whenever
  279.   \fIconst\fR is used, then the ?H: lines will get included in the
  280. ***************
  281. *** 1337,1355 ****
  282.   To use this unit, \fI\$rp\fR and \fI\$dflt\fR must hold the question and the
  283.   default answer, which will be passed as-is to the \fImyread\fR script
  284.   (see forthcoming \fIMyread.U\fR). The \fI\$fn\fR variable controls the
  285. ! operation and the result is returned into \fI$ans\fR.
  286.   .sp
  287.   To locate a file or directory, put 'f' or 'd' in \fI$fn\fR. If a '~' appears,
  288.   then ~name substitution is allowed. If a '/' appears, only absolute pathnames
  289.   are accepted and ~name subsitutions are always expanded before returning.
  290.   If '+' is specified, existence checks are skipped. If 'n'
  291. ! appears within \fI$fn\fR, then the user is allowed to answer 'none'.
  292.   .sp
  293.   Usually, unless you asked for portability, ~name substitution occurs when
  294.   requested. However, there are some times you wish to bypass portability and
  295.   force the substitution. You may use the 'e' letter (expand) to do that.
  296.   .sp
  297. ! If the special 'l' (locate) type is used, then the \fI$fn\fR variable must
  298.   end with a ':', followed by a file basename. If the answer is a directory,
  299.   the file basename will be appended before testing for file existence. This
  300.   is useful in locate-style questions like this:
  301. --- 1340,1358 ----
  302.   To use this unit, \fI\$rp\fR and \fI\$dflt\fR must hold the question and the
  303.   default answer, which will be passed as-is to the \fImyread\fR script
  304.   (see forthcoming \fIMyread.U\fR). The \fI\$fn\fR variable controls the
  305. ! operation and the result is returned into \fI\$ans\fR.
  306.   .sp
  307.   To locate a file or directory, put 'f' or 'd' in \fI$fn\fR. If a '~' appears,
  308.   then ~name substitution is allowed. If a '/' appears, only absolute pathnames
  309.   are accepted and ~name subsitutions are always expanded before returning.
  310.   If '+' is specified, existence checks are skipped. If 'n'
  311. ! appears within \fI\$fn\fR, then the user is allowed to answer 'none'.
  312.   .sp
  313.   Usually, unless you asked for portability, ~name substitution occurs when
  314.   requested. However, there are some times you wish to bypass portability and
  315.   force the substitution. You may use the 'e' letter (expand) to do that.
  316.   .sp
  317. ! If the special 'l' (locate) type is used, then the \fI\$fn\fR variable must
  318.   end with a ':', followed by a file basename. If the answer is a directory,
  319.   the file basename will be appended before testing for file existence. This
  320.   is useful in locate-style questions like this:
  321. ***************
  322. *** 1514,1520 ****
  323.   and \fIConfigure\fR will contain hint-dependent code only if there is
  324.   a \fIhints\fR directory in the package's top level directory. Note that
  325.   tests are ran from within the '\fI.MT\fR' directory, hence the needed
  326. ! '../' in the test.
  327.   .PP
  328.   The pre-processor can also be used to avoid putting useless code when
  329.   a symbol is not defined. Units defining more than one symbol can be
  330. --- 1517,1523 ----
  331.   and \fIConfigure\fR will contain hint-dependent code only if there is
  332.   a \fIhints\fR directory in the package's top level directory. Note that
  333.   tests are ran from within the '\fI.MT\fR' directory, hence the needed
  334. ! \&'../' in the test.
  335.   .PP
  336.   The pre-processor can also be used to avoid putting useless code when
  337.   a symbol is not defined. Units defining more than one symbol can be
  338. ***************
  339. *** 1609,1616 ****
  340.   which will always remap \fIvfork\fR on \fIfork\fR (see \fId_vfork.U). When
  341.   running on SGI systems for the first time, \fIConfigure\fR will detect that
  342.   there is an \fIhints/sgi.sh\fR file, and that we are on an IRIX machine
  343. ! (the kernel name is /irix), therefore it will propose \fIsgi\fR as a possible
  344. ! hint. If the user accepts it, and since the \fI\$\&d_vfork\fR value is modified
  345.   via the \fI$\&setvar\fR call, a \fIwhoa!\fR will be emitted to warn that we
  346.   are about to override the value computed by \fIConfigure\fR.
  347.   .PP
  348. --- 1612,1620 ----
  349.   which will always remap \fIvfork\fR on \fIfork\fR (see \fId_vfork.U). When
  350.   running on SGI systems for the first time, \fIConfigure\fR will detect that
  351.   there is an \fIhints/sgi.sh\fR file, and that we are on an IRIX machine
  352. ! (the kernel name is often /irix), therefore it will propose \fIsgi\fR as a
  353. ! possible hint.
  354. ! If the user accepts it, and since the \fI\$\&d_vfork\fR value is modified
  355.   via the \fI$\&setvar\fR call, a \fIwhoa!\fR will be emitted to warn that we
  356.   are about to override the value computed by \fIConfigure\fR.
  357.   .PP
  358.  
  359. Index: Wishlist
  360. *** Wishlist.old    Thu Sep  9 13:51:13 1993
  361. --- Wishlist    Thu Sep  9 13:51:13 1993
  362. ***************
  363. *** 26,34 ****
  364.   Write some "generic" templates for writing new units, so that the user
  365.   only needs to fill up some fields. For instance, there could be a
  366.   template for d_* and i_* units. [That's done, they are under mcon/files.
  367. ! Now I need only to write the generator on top of them]
  368.   
  369.   Make Configure know about cross-compiling.
  370.   
  371.   *** metalint
  372.   
  373. --- 26,50 ----
  374.   Write some "generic" templates for writing new units, so that the user
  375.   only needs to fill up some fields. For instance, there could be a
  376.   template for d_* and i_* units. [That's done, they are under mcon/files.
  377. ! Now I only need to write the generator on top of them]
  378.   
  379.   Make Configure know about cross-compiling.
  380. + Implement the ?I: and ?L: lines. The ?I: fills in inclwanted for you,
  381. + while ?L: fills in the libswanted variable. For instance, when using
  382. + a socket() call, one may need to look at -lbsd. If d_socket.U lists
  383. + 'bsd' within its ?L: line, then the libswanted variable will be
  384. + correctly set. [Note: there are some hooks for this already]
  385. + Build a library of PD routines that may be otherwise missing on
  386. + some older systems, eg: getopt(). Those routines will be automagically
  387. + added to the package by relying on ?P: lines, something like:
  388. +     ?P:getopt (HAS_GETOPT): getopt.c
  389. + which would include getopt.c in the package (under some PD dir)
  390. + when getopt is used and HAS_GETOPT is *not* used within the sources,
  391. + in order to achieve transparent implementation.
  392.   
  393.   *** metalint
  394.   
  395.  
  396. Index: mcon/U/d_volatile.U
  397. Prereq: 3.0
  398. *** mcon/U/d_volatile.U.old    Thu Sep  9 13:51:14 1993
  399. --- mcon/U/d_volatile.U    Thu Sep  9 13:51:14 1993
  400. ***************
  401. *** 1,4 ****
  402. ! ?RCS: $Id: d_volatile.U,v 3.0 1993/08/18 12:07:57 ram Exp $
  403.   ?RCS:
  404.   ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
  405.   ?RCS: 
  406. --- 1,4 ----
  407. ! ?RCS: $Id: d_volatile.U,v 3.0.1.1 1993/09/09 11:49:51 ram Exp $
  408.   ?RCS:
  409.   ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
  410.   ?RCS: 
  411. ***************
  412. *** 9,14 ****
  413. --- 9,17 ----
  414.   ?RCS: of the source tree for dist 3.0.
  415.   ?RCS:
  416.   ?RCS: $Log: d_volatile.U,v $
  417. + ?RCS: Revision 3.0.1.1  1993/09/09  11:49:51  ram
  418. + ?RCS: patch9: volatile definition was swapped over with undef
  419. + ?RCS:
  420.   ?RCS: Revision 3.0  1993/08/18  12:07:57  ram
  421.   ?RCS: Baseline for dist 3.0 netwide release.
  422.   ?RCS:
  423. ***************
  424. *** 56,65 ****
  425.   }
  426.   EOCP
  427.   if $cc -c $ccflags try.c >/dev/null 2>&1 ; then
  428. !     val="$undef"
  429.       echo "Yup, it does."
  430.   else
  431. !     val="$define"
  432.       echo "Nope, it doesn't."
  433.   fi
  434.   set d_volatile
  435. --- 59,68 ----
  436.   }
  437.   EOCP
  438.   if $cc -c $ccflags try.c >/dev/null 2>&1 ; then
  439. !     val="$define"
  440.       echo "Yup, it does."
  441.   else
  442. !     val="$undef"
  443.       echo "Nope, it doesn't."
  444.   fi
  445.   set d_volatile
  446.  
  447. Index: pl/newer.pl
  448. Prereq: 3.0
  449. *** pl/newer.pl.old    Thu Sep  9 13:51:18 1993
  450. --- pl/newer.pl    Thu Sep  9 13:51:18 1993
  451. ***************
  452. *** 1,4 ****
  453. ! ;# $Id: newer.pl,v 3.0 1993/08/18 12:10:56 ram Exp $
  454.   ;#
  455.   ;#  Copyright (c) 1991-1993, Raphael Manfredi
  456.   ;#  
  457. --- 1,4 ----
  458. ! ;# $Id: newer.pl,v 3.0.1.1 1993/09/09 11:51:07 ram Exp $
  459.   ;#
  460.   ;#  Copyright (c) 1991-1993, Raphael Manfredi
  461.   ;#  
  462. ***************
  463. *** 9,14 ****
  464. --- 9,17 ----
  465.   ;#  of the source tree for dist 3.0.
  466.   ;#
  467.   ;# $Log: newer.pl,v $
  468. + ;# Revision 3.0.1.1  1993/09/09  11:51:07  ram
  469. + ;# patch9: now skips the 'users' file when computing newest file list
  470. + ;#
  471.   ;# Revision 3.0  1993/08/18  12:10:56  ram
  472.   ;# Baseline for dist 3.0 netwide release.
  473.   ;#
  474. ***************
  475. *** 34,39 ****
  476. --- 37,43 ----
  477.           next if m|^Wanted$|;
  478.           next if m|^.package$|;
  479.           next if m|^bugs|;
  480. +         next if m|^users$|;
  481.           next if m|^UU/|;
  482.           next if m|^RCS/|;
  483.           next if m|/RCS/|;
  484.  
  485. Index: Known_bugs
  486. *** Known_bugs.old    Thu Sep  9 13:51:10 1993
  487. --- Known_bugs    Thu Sep  9 13:51:10 1993
  488. ***************
  489. *** 12,17 ****
  490.   then the <....> part of the code will always be loaded even if no shell
  491.   script references d_waitpid or C code references WAITPID.
  492.   
  493. - + When a patch is issued and is split in more than one file, the temporary
  494. - files left in the bugs/ subdirectory will not be cleaned-up properly the
  495. - next time a patch is issued.
  496. --- 12,14 ----
  497.  
  498. Index: README
  499. *** README.old    Thu Sep  9 13:51:12 1993
  500. --- README    Thu Sep  9 13:51:12 1993
  501. ***************
  502. *** 62,67 ****
  503. --- 62,70 ----
  504.   If you send mail to me personally, I may not be able to answer in a
  505.   timely fashion.
  506.   
  507. + This mailing list has low traffic (a few articles per week, typically),
  508. + and it is expected to remain so, with a high signal/noise ratio.
  509.   Notes:
  510.   
  511.       If you are running on a system with <= 14 char filenames, don't
  512.  
  513. Index: Credits
  514. *** Credits.old    Thu Sep  9 13:51:09 1993
  515. --- Credits    Thu Sep  9 13:51:09 1993
  516. ***************
  517. *** 87,90 ****
  518. --- 87,91 ----
  519.       Graham Stoney <greyham@research.canon.oz.au>
  520.       Joseph H Buehler <jhpb@sarto.gaithersburg.md.us>
  521.       Keith Walker <kew@timesink.spk.wa.us>
  522. +     Scott Presnell <srp@cgl.ucsf.edu>
  523.   
  524.  
  525. *** End of Patch 9 ***
  526.  
  527. exit 0 # Just in case...
  528.