home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume43 / dist-3.0 / patch27 next >
Encoding:
Internet Message Format  |  1994-06-08  |  45.5 KB

  1. From: Raphael Manfredi <ram@acri.fr>
  2. Newsgroups: comp.sources.misc
  3. Subject: v43i009:  dist-3.0 - Configure script generator and related tools, Patch27
  4. Date: 8 Jun 1994 14:39:09 -0500
  5. Organization: Advanced Computer Research Institute, Lyon, France
  6. Sender: kent@sparky.sterling.com
  7. Approved: kent@sparky.sterling.com
  8. Message-ID: <2t56ot$c9b@sparky.sterling.com>
  9. X-Md4-Signature: c8d19b40cd86f6c164092f07242482aa
  10.  
  11. Submitted-by: Raphael Manfredi <ram@acri.fr>
  12. Posting-number: Volume 43, Issue 9
  13. Archive-name: dist-3.0/patch27
  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 #29.]
  18.  
  19. System: dist version 3.0
  20. Patch #: 27
  21. Priority: HIGH
  22. Subject: added byacc to the trylist (ADO)
  23. Subject: lint lines reformatted (ADO)
  24. Subject: added new symbol HAS_SHMAT_PROTOTYPE (ADO)
  25. Subject: now uses new macro support for cleaner Strerror def
  26. Subject: modified to avoid spurious Whoa warnings (ADO)
  27. Subject: added lint hint
  28. Subject: new variable direntrytype for proper type setting (ADO)
  29. Subject: undone ADO's fix in previous patch since it was useless
  30. Subject: this unit now supersedes old i_stdarg.U and i_varargs.U
  31. Subject: fixed a typo (libpth -> glibpth)
  32. Subject: added byacc case (ADO)
  33. Subject: made conformant to its gidtype.U companion
  34. Subject: question now explicitely mentions getuid()
  35. Subject: added byacc as another alternative (ADO)
  36. Subject: now understands macro definitions in ?H: lines
  37. Date: Fri May 13 17:29:31 MET DST 1994
  38. From: Raphael Manfredi <ram@acri.fr>
  39.  
  40. Description:
  41.  
  42.     Undone ADO's fix in previous patch for i_termio.U since it was
  43.     useless. There is no need to tie up C symbols to the unit name.
  44.     If the user does not uses a symbol, it does not make it to the
  45.     config.h file, that's plain simple!
  46.  
  47.     The i_varhdr.U unit now supersedes old i_stdarg.U and i_varargs.U.
  48.     Actually, those two old units should be removed after the patch
  49.     has been applied.
  50.  
  51.     Fixed a typo (libpth -> glibpth) in libpth.U which actually
  52.     prevented it to do anything useful on many platforms...
  53.  
  54.     Made uidtype.U conformant to its gidtype.U companion. The
  55.     question now explicitely mentions getuid() for uid type
  56.     determination.
  57.  
  58.     Metaconfig now understands macro definitions in ?H: lines.
  59.     Actually, this macro support was added to enable a cleaner
  60.     Strerror definition in d_strerror.U.
  61.  
  62.     Integrated new fixes from Andy Dougherty
  63.     <doughera@lafcol.lafayette.edu>:
  64.  
  65.     Loc.U
  66.     added byacc to trylist (right after bison).  As a side-effect, I
  67.     reformatted some of the lines which were now rather long.
  68.  
  69.     d_shmat.U
  70.     Added new symbol HAS_SHMAT_PROTOTYPE.  I'm not sure about this one.
  71.     It seems to work, but I didn't find an analogous unit, so maybe
  72.     there's a better solution.
  73.     The problem is that some vendors include a prototype for shmat() in
  74.     <sys/shm.h>, but others don't.  To make it worse, some systems use
  75.     shmat(int, char *, int), while others use shmat(int, void *, int),
  76.     so a guess can get you into trouble.  A good guess would be that if
  77.     the vendor supplies a prototype, we don't need to.
  78.     Thus, I'd use something like the following:
  79.         #ifndef HAS_SHMAT_PROTOTYPE
  80.         extern Shmat_t shmat _((int, Shmat_t, int));
  81.         #endif
  82.  
  83.     d_vfork.U
  84.     Running Configure -d twice produced a Whoa if vfork was found but
  85.     then not used.
  86.  
  87.     i_dirent.U
  88.     Added a check to see whether to use struct direct or struct dirent.
  89.     I've had a report that NeXT has it backwards, and uses struct direct
  90.     in <dirent.h> and struct dirent in <sys/dir.h>.
  91.  
  92.     i_memory.U
  93.     Running Configure -d twice produced a Whoa if <memory.h> was found
  94.     but then not used.
  95.  
  96.     i_varhdr.U
  97.     Running Configure -d twice produced a Whoa if <stdarg.h> was found
  98.     but not used.  (I'm not sure why I didn't notice this before.)
  99.     I suggest that i_stdarg.U and i_varargs.U be removed and that
  100.     i_varhdr.U be patched by the enclosed patch.  Essentially, it
  101.     doesn't call $setvar until the final decision is made which header
  102.     will be used.
  103.  
  104.     libpth.U
  105.     Fixed typo for glibpth.
  106.  
  107.     libyacc.U
  108.     Added byacc case.
  109.  
  110.     yacc.U
  111.     Added byacc as another alternative.
  112.  
  113.     Thanks Andy!
  114.  
  115.  
  116. Fix:    From rn, say "| patch -p -N -d DIR", where DIR is your dist source
  117.     directory.  Outside of rn, say "cd DIR; patch -p -N <thisarticle".
  118.     If you don't have the patch program, apply the following by hand,
  119.     or get patch (version 2.0, latest patchlevel).
  120.  
  121.     After patching:
  122.         *** DO NOTHING--INSTALL ALL PATCHES UP THROUGH #28 FIRST ***
  123.  
  124.     If patch indicates that patchlevel is the wrong version, you may need
  125.     to apply one or more previous patches, or the patch may already
  126.     have been applied.  See the patchlevel.h file to find out what has or
  127.     has not been applied.  In any event, don't continue with the patch.
  128.  
  129.     If you are missing previous patches they can be obtained from me:
  130.  
  131.         Raphael Manfredi <ram@acri.fr>
  132.  
  133.     If you send a mail message of the following form it will greatly speed
  134.     processing:
  135.  
  136.         Subject: Command
  137.         @SH mailpatch PATH dist 3.0 LIST
  138.                ^ note the c
  139.  
  140.     where PATH is a return path FROM ME TO YOU either in Internet notation,
  141.     or in bang notation from some well-known host, and LIST is the number
  142.     of one or more patches you need, separated by spaces, commas, and/or
  143.     hyphens.  Saying 35- says everything from 35 to the end.
  144.  
  145.     To get some more detailed instructions, send me the following mail:
  146.  
  147.         Subject: Command
  148.         @SH mailhelp PATH
  149.  
  150.  
  151. Index: patchlevel.h
  152. Prereq: 26
  153. 4c4
  154. < #define PATCHLEVEL 26
  155. ---
  156. > #define PATCHLEVEL 27
  157.  
  158. Index: mcon/U/i_varhdr.U
  159. Prereq: 3.0
  160. *** mcon/U/i_varhdr.U.old    Fri May 13 17:29:23 1994
  161. --- mcon/U/i_varhdr.U    Fri May 13 17:29:23 1994
  162. ***************
  163. *** 1,4 ****
  164. ! ?RCS: $Id: i_varhdr.U,v 3.0 1993/08/18 12:08:49 ram Exp $
  165.   ?RCS:
  166.   ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
  167.   ?RCS: 
  168. --- 1,4 ----
  169. ! ?RCS: $Id: i_varhdr.U,v 3.0.1.1 1994/05/13 15:26:05 ram Exp $
  170.   ?RCS:
  171.   ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
  172.   ?RCS: 
  173. ***************
  174. *** 9,25 ****
  175.   ?RCS: of the source tree for dist 3.0.
  176.   ?RCS:
  177.   ?RCS: $Log: i_varhdr.U,v $
  178.   ?RCS: Revision 3.0  1993/08/18  12:08:49  ram
  179.   ?RCS: Baseline for dist 3.0 netwide release.
  180.   ?RCS:
  181. ! ?MAKE:i_varhdr: cat +cc +ccflags rm i_stdarg i_varargs
  182.   ?MAKE:    -pick add $@ %<
  183.   ?S:i_varhdr:
  184.   ?S:    Contains the name of the header to be included to get va_dcl definition.
  185.   ?S:    Typically one of varargs.h or stdarg.h.
  186.   ?S:.
  187.   ?W:%<:va_dcl
  188. ! ?LINT:change i_stdarg i_varargs
  189.   : set up the varargs testing programs
  190.   $cat > varargs.c <<EOP
  191.   #ifdef I_STDARG
  192. --- 9,79 ----
  193.   ?RCS: of the source tree for dist 3.0.
  194.   ?RCS:
  195.   ?RCS: $Log: i_varhdr.U,v $
  196. + ?RCS: Revision 3.0.1.1  1994/05/13  15:26:05  ram
  197. + ?RCS: patch27: this unit now supersedes old i_stdarg.U and i_varargs.U
  198. + ?RCS: patch27: modified to avoid spurious Whoa warnings (ADO)
  199. + ?RCS:
  200.   ?RCS: Revision 3.0  1993/08/18  12:08:49  ram
  201.   ?RCS: Baseline for dist 3.0 netwide release.
  202.   ?RCS:
  203. ! ?MAKE:i_stdarg i_varargs i_varhdr: cat +cc +ccflags rm test Setvar Findhdr
  204.   ?MAKE:    -pick add $@ %<
  205. + ?S:i_stdarg:
  206. + ?S:    This variable conditionally defines the I_STDARG symbol, which
  207. + ?S:    indicates to the C program that <stdarg.h> exists and should
  208. + ?S:    be included.
  209. + ?S:.
  210. + ?S:i_varargs:
  211. + ?S:    This variable conditionally defines I_VARARGS, which indicates
  212. + ?S:    to the C program that it should include <varargs.h>.
  213. + ?S:.
  214.   ?S:i_varhdr:
  215.   ?S:    Contains the name of the header to be included to get va_dcl definition.
  216.   ?S:    Typically one of varargs.h or stdarg.h.
  217.   ?S:.
  218. + ?C:I_STDARG:
  219. + ?C:    This symbol, if defined, indicates that <stdarg.h> exists and should
  220. + ?C:    be included.
  221. + ?C:.
  222. + ?C:I_VARARGS:
  223. + ?C:    This symbol, if defined, indicates to the C program that it should
  224. + ?C:    include <varargs.h>.
  225. + ?C:.
  226. + ?H:#$i_stdarg I_STDARG        /**/
  227. + ?H:#$i_varargs I_VARARGS    /**/
  228. + ?H:.
  229.   ?W:%<:va_dcl
  230. ! ?T:valstd
  231. ! ?LINT:set i_stdarg i_varargs
  232. ! ?X:
  233. ! ?X: Don't use setvar because the varags test below might override these.
  234. ! ?X: Actually, the messages here are just informative. We don't wish to set
  235. ! ?X: i_varargs or i_stdarg to their final value before knowing which of the
  236. ! ?X: two we'll include.
  237. ! ?X:
  238. ! : see if stdarg is available
  239. ! echo " "
  240. ! if $test `./findhdr stdarg.h`; then
  241. !     echo "<stdarg.h> found." >&4
  242. !     valstd="$define"
  243. ! else
  244. !     echo "<stdarg.h> NOT found." >&4
  245. !     valstd="$undef"
  246. ! fi
  247. ! : see if varags is available
  248. ! echo " "
  249. ! if $test `./findhdr varargs.h`; then
  250. !     echo "<varargs.h> found." >&4
  251. ! else
  252. !     echo "<varargs.h> NOT found, but that's ok (I hope)." >&4
  253. ! fi
  254. ! ?X:
  255. ! ?X: if you have stdarg.h, you need to support prototypes to actually use it;
  256. ! ?X: but if stdarg.h exists and the compiler doesn't support prototypes (for some
  257. ! ?X: bizarre reason), we'll fall back to varargs.h anyway so it's not so bad.
  258. ! ?X:
  259.   : set up the varargs testing programs
  260.   $cat > varargs.c <<EOP
  261.   #ifdef I_STDARG
  262. ***************
  263. *** 29,37 ****
  264.   #include <varargs.h>
  265.   #endif
  266.   
  267. - ?X: if you have stdarg.h, you need to support prototypes to actually use it;
  268. - ?X: but if stdarg.h exists and the compiler doesn't support prototypes (for some
  269. - ?X: bizarre reason), we'll fall back to varargs.h anyway so it's not so bad.
  270.   #ifdef I_STDARG
  271.   int f(char *p, ...)
  272.   #else
  273. --- 83,88 ----
  274. ***************
  275. *** 65,91 ****
  276.   : now check which varargs header should be included
  277.   echo " "
  278.   i_varhdr=''
  279. ! case "$i_stdarg" in
  280.   "$define")
  281.       if `./varargs I_STDARG`; then
  282. !         i_varhdr='stdarg.h'
  283. !         i_varargs="$undef"
  284.       elif `./varargs I_VARARGS`; then
  285. !         i_varhdr='varargs.h'
  286. !         i_stdarg="$undef"
  287.       fi
  288.       ;;
  289.   *)
  290.       if `./varargs I_VARARGS`; then
  291. !         i_varhdr='varargs.h'
  292.       fi
  293.       ;;
  294.   esac
  295. ! case "$i_varhdr" in
  296.   '')
  297.   echo "I could not find the definition for va_dcl... You have problems..." >&4
  298.       ;;
  299. ! *) echo "We'll include <$i_varhdr> to get va_dcl definition." >&4;;
  300.   esac
  301.   $rm -f varargs*
  302.   
  303. --- 116,155 ----
  304.   : now check which varargs header should be included
  305.   echo " "
  306.   i_varhdr=''
  307. ! case "$valstd" in
  308.   "$define")
  309.       if `./varargs I_STDARG`; then
  310. !         val='stdarg.h'
  311.       elif `./varargs I_VARARGS`; then
  312. !         val='varargs.h'
  313.       fi
  314.       ;;
  315.   *)
  316.       if `./varargs I_VARARGS`; then
  317. !         val='varargs.h'
  318.       fi
  319.       ;;
  320.   esac
  321. ! case "$val" in
  322.   '')
  323.   echo "I could not find the definition for va_dcl... You have problems..." >&4
  324. +     val="$undef"; set i_stdarg; eval $setvar
  325. +     val="$undef"; set i_varargs; eval $setvar
  326.       ;;
  327. ! *) 
  328. !     set i_varhdr
  329. !     eval $setvar
  330. !     case "$i_varhdr" in
  331. !     stdarg.h)
  332. !         val="$define"; set i_stdarg; eval $setvar
  333. !         val="$undef"; set i_varargs; eval $setvar
  334. !         ;;
  335. !     varargs.h)
  336. !         val="$undef"; set i_stdarg; eval $setvar
  337. !         val="$define"; set i_varargs; eval $setvar
  338. !         ;;
  339. !     esac
  340. !     echo "We'll include <$i_varhdr> to get va_dcl definition." >&4;;
  341.   esac
  342.   $rm -f varargs*
  343.   
  344.  
  345. Index: mcon/U/d_strerror.U
  346. Prereq: 3.0.1.2
  347. *** mcon/U/d_strerror.U.old    Fri May 13 17:29:19 1994
  348. --- mcon/U/d_strerror.U    Fri May 13 17:29:19 1994
  349. ***************
  350. *** 1,4 ****
  351. ! ?RCS: $Id: d_strerror.U,v 3.0.1.2 1994/05/06 14:58:26 ram Exp $
  352.   ?RCS:
  353.   ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
  354.   ?RCS: 
  355. --- 1,4 ----
  356. ! ?RCS: $Id: d_strerror.U,v 3.0.1.3 1994/05/13 15:20:27 ram Exp $
  357.   ?RCS:
  358.   ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
  359.   ?RCS: 
  360. ***************
  361. *** 9,14 ****
  362. --- 9,17 ----
  363.   ?RCS: of the source tree for dist 3.0.
  364.   ?RCS:
  365.   ?RCS: $Log: d_strerror.U,v $
  366. + ?RCS: Revision 3.0.1.3  1994/05/13  15:20:27  ram
  367. + ?RCS: patch27: now uses new macro support for cleaner Strerror def
  368. + ?RCS:
  369.   ?RCS: Revision 3.0.1.2  1994/05/06  14:58:26  ram
  370.   ?RCS: patch23: renamed strerror into Strerror to protect name space (ADO)
  371.   ?RCS:
  372. ***************
  373. *** 34,41 ****
  374.   ?S:    is available to translate error numbers to the symbolic name.
  375.   ?S:.
  376.   ?S:d_strerrm:
  377. ! ?S:    This variable conditionally defines strerrr as a macro if the
  378. ! ?S:    sys_errlist[] array is defined.
  379.   ?S:.
  380.   ?C:HAS_STRERROR (STRERROR):
  381.   ?C:    This symbol, if defined, indicates that the strerror routine is
  382. --- 37,46 ----
  383.   ?S:    is available to translate error numbers to the symbolic name.
  384.   ?S:.
  385.   ?S:d_strerrm:
  386. ! ?S:    This variable holds what Strerrr is defined as to translate an error
  387. ! ?S:    code condition into an error message string. It could be 'strerror'
  388. ! ?S:    or a more complex macro emulating strrror with sys_errlist[], or the
  389. ! ?S:    "unknown" string when both strerror and sys_errlist are missing.
  390.   ?S:.
  391.   ?C:HAS_STRERROR (STRERROR):
  392.   ?C:    This symbol, if defined, indicates that the strerror routine is
  393. ***************
  394. *** 60,70 ****
  395.   ?H:#$d_strerror HAS_STRERROR        /**/
  396.   ?H:#$d_syserrlst HAS_SYS_ERRLIST    /**/
  397.   ?H:#$d_sysernlst HAS_SYS_ERRNOLIST    /**/
  398. ! ?H:?%<:#ifdef HAS_STRERROR
  399. ! ?H:?%<:#define Strerror strerror
  400. ! ?H:?%<:#else
  401. ! ?H:#$d_strerrm Strerror(e) ((e)<0||(e)>=sys_nerr?"unknown":sys_errlist[e]) /**/
  402. ! ?H:?%<:#endif
  403.   ?H:.
  404.   ?D:d_sysernlst=''
  405.   ?T:xxx val
  406. --- 65,71 ----
  407.   ?H:#$d_strerror HAS_STRERROR        /**/
  408.   ?H:#$d_syserrlst HAS_SYS_ERRLIST    /**/
  409.   ?H:#$d_sysernlst HAS_SYS_ERRNOLIST    /**/
  410. ! ?H:#define Strerror(e) $d_strerrm
  411.   ?H:.
  412.   ?D:d_sysernlst=''
  413.   ?T:xxx val
  414. ***************
  415. *** 73,79 ****
  416.   if set strerror val -f d_strerror; eval $csym; $val; then
  417.       echo 'strerror() found.' >&4
  418.       d_strerror="$define"
  419. !     d_strerrm="$undef"
  420.       if set sys_errlist val -a d_syserrlst; eval $csym; $val; then    
  421.           echo "(You also have sys_errlist[], so we could roll our own strerror.)" 
  422.           d_syserrlst="$define"
  423. --- 74,80 ----
  424.   if set strerror val -f d_strerror; eval $csym; $val; then
  425.       echo 'strerror() found.' >&4
  426.       d_strerror="$define"
  427. !     d_strerrm='strerror(e)'
  428.       if set sys_errlist val -a d_syserrlst; eval $csym; $val; then    
  429.           echo "(You also have sys_errlist[], so we could roll our own strerror.)" 
  430.           d_syserrlst="$define"
  431. ***************
  432. *** 85,91 ****
  433.       $contains '#[     ]*define.*strerror' "$xxx" >/dev/null 2>&1; then
  434.       echo 'strerror() found in string header.' >&4
  435.       d_strerror="$define"
  436. !     d_strerrm="$undef"
  437.       if set sys_errlist val -a d_syserrlst; eval $csym; $val; then    
  438.           echo "(Most probably, strerror() uses sys_errlist[] for descriptions.)"
  439.           d_syserrlst="$define"
  440. --- 86,92 ----
  441.       $contains '#[     ]*define.*strerror' "$xxx" >/dev/null 2>&1; then
  442.       echo 'strerror() found in string header.' >&4
  443.       d_strerror="$define"
  444. !     d_strerrm='strerror(e)'
  445.       if set sys_errlist val -a d_syserrlst; eval $csym; $val; then    
  446.           echo "(Most probably, strerror() uses sys_errlist[] for descriptions.)"
  447.           d_syserrlst="$define"
  448. ***************
  449. *** 97,108 ****
  450.   echo "strerror() not found, but you have sys_errlist[] so we'll use that." >&4
  451.       d_strerror="$undef"
  452.       d_syserrlst="$define"
  453. !     d_strerrm="$define"
  454.   else
  455.       echo 'strerror() and sys_errlist[] NOT found.' >&4
  456.       d_strerror="$undef"
  457.       d_syserrlst="$undef"
  458. !     d_strerrm="$undef"
  459.   fi
  460.   @if d_sysernlst || HAS_SYS_ERRNOLIST
  461.   if set sys_errnolist val -a d_sysernlst; eval $csym; $val; then
  462. --- 98,109 ----
  463.   echo "strerror() not found, but you have sys_errlist[] so we'll use that." >&4
  464.       d_strerror="$undef"
  465.       d_syserrlst="$define"
  466. !     d_strerrm='((e)<0||(e)>=sys_nerr?"unknown":sys_errlist[e])'
  467.   else
  468.       echo 'strerror() and sys_errlist[] NOT found.' >&4
  469.       d_strerror="$undef"
  470.       d_syserrlst="$undef"
  471. !     d_strerrm='"unknown"'
  472.   fi
  473.   @if d_sysernlst || HAS_SYS_ERRNOLIST
  474.   if set sys_errnolist val -a d_sysernlst; eval $csym; $val; then
  475.  
  476. Index: mcon/U/Loc.U
  477. Prereq: 3.0.1.3
  478. *** mcon/U/Loc.U.old    Fri May 13 17:29:17 1994
  479. --- mcon/U/Loc.U    Fri May 13 17:29:17 1994
  480. ***************
  481. *** 1,4 ****
  482. ! ?RCS: $Id: Loc.U,v 3.0.1.3 1994/01/24 14:01:44 ram Exp $
  483.   ?RCS:
  484.   ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
  485.   ?RCS: 
  486. --- 1,4 ----
  487. ! ?RCS: $Id: Loc.U,v 3.0.1.4 1994/05/13 15:18:15 ram Exp $
  488.   ?RCS:
  489.   ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
  490.   ?RCS: 
  491. ***************
  492. *** 9,14 ****
  493. --- 9,18 ----
  494.   ?RCS: of the source tree for dist 3.0.
  495.   ?RCS:
  496.   ?RCS: $Log: Loc.U,v $
  497. + ?RCS: Revision 3.0.1.4  1994/05/13  15:18:15  ram
  498. + ?RCS: patch27: added byacc to the trylist (ADO)
  499. + ?RCS: patch27: lint lines reformatted (ADO)
  500. + ?RCS:
  501.   ?RCS: Revision 3.0.1.3  1994/01/24  14:01:44  ram
  502.   ?RCS: patch16: added metalint hint on changed PATH variable
  503.   ?RCS:
  504. ***************
  505. *** 35,51 ****
  506.   ?X: I put startsh at the end of the dependency list, in order to avoid the
  507.   ?X: loading of the spitshell unit before the instructions.
  508.   ?X:
  509. ! ?MAKE:Loc Mcc awk bash bison cat chgrp chmod chown compress cp cpio cpp csh \
  510. !     date echo egrep emacs expr flex gcc grep inews ksh less line lint ln lp \
  511. !     lpr ls mail mailx make mkdir more mv nroff perl pg pmake pr rm rmail sed \
  512. !     sendmail sh shar sleep smail sort submit tail tar tbl test touch tr \
  513. !     troff uname uniq uuname vi zcat: eunicefix n c Instruct Myread startsh
  514.   ?MAKE:    -pick weed $@ %<
  515. ! ?LINT:describe Loc Mcc awk bash bison cat chgrp chmod chown compress cp cpio \
  516. !     cpp csh date echo egrep emacs expr flex gcc grep inews ksh less line lint \
  517. !     ln lp lpr ls mail mailx make mkdir more mv nroff perl pg pmake pr rm \
  518. !     rmail sed sendmail sh shar sleep smail sort submit tail tar tbl test \
  519. !     touch tr troff uname uniq uuname vi zcat
  520.   ?V::pth loclist trylist
  521.   ?T:thing xxx dir file say _test
  522.   ?LINT:change PATH
  523. --- 39,58 ----
  524.   ?X: I put startsh at the end of the dependency list, in order to avoid the
  525.   ?X: loading of the spitshell unit before the instructions.
  526.   ?X:
  527. ! ?MAKE:Loc Mcc awk bash bison byacc cat chgrp chmod chown \
  528. !     compress cp cpio cpp csh date echo egrep emacs expr flex gcc \
  529. !     grep inews ksh less line lint ln lp lpr ls mail mailx make \
  530. !     mkdir more mv nroff perl pg pmake pr rm rmail sed sendmail sh \
  531. !     shar sleep smail sort submit tail tar tbl test touch tr troff \
  532. !     uname uniq uuname vi zcat:  eunicefix n c Instruct Myread \
  533. !     startsh
  534.   ?MAKE:    -pick weed $@ %<
  535. ! ?LINT:describe Loc Mcc awk bash bison byacc cat chgrp chmod chown \
  536. !     compress cp cpio cpp csh date echo egrep emacs expr flex gcc \
  537. !     grep inews ksh less line lint ln lp lpr ls mail mailx make \
  538. !     mkdir more mv nroff perl pg pmake pr rm rmail sed sendmail sh \
  539. !     shar sleep smail sort submit tail tar tbl test touch tr troff \
  540. !     uname uniq uuname vi zcat
  541.   ?V::pth loclist trylist
  542.   ?T:thing xxx dir file say _test
  543.   ?LINT:change PATH
  544. ***************
  545. *** 114,119 ****
  546. --- 121,127 ----
  547.   ?Mcc:Mcc
  548.   ?bash:bash
  549.   ?bison:bison
  550. + ?byacc:byacc
  551.   ?compress:compress
  552.   ?cpio:cpio
  553.   ?cpp:cpp
  554. ***************
  555. *** 153,163 ****
  556.   ?vi:vi
  557.   ?zcat:zcat
  558.   "
  559. ! ?LINT:set Loc Mcc awk bash bison cat chgrp chmod chown compress cp cpio cpp \
  560. !     csh date echo egrep emacs expr flex gcc grep inews ksh less line lint ln \
  561. !     lp lpr ls mail mailx make mkdir more mv nroff perl pg pmake pr rm rmail \
  562. !     sed sendmail sh shar sleep smail sort submit tail tar tbl test touch tr \
  563. !     troff uname uniq uuname vi zcat
  564.   pth=`echo $PATH | sed -e 's/:/ /g'`
  565.   pth="$pth /lib /usr/lib"
  566.   for file in $loclist; do
  567. --- 161,172 ----
  568.   ?vi:vi
  569.   ?zcat:zcat
  570.   "
  571. ! ?LINT:set Loc Mcc awk bash bison byacc cat chgrp chmod chown \
  572. !     compress cp cpio cpp csh date echo egrep emacs expr flex gcc \
  573. !     grep inews ksh less line lint ln lp lpr ls mail mailx make \
  574. !     mkdir more mv nroff perl pg pmake pr rm rmail sed sendmail sh \
  575. !     shar sleep smail sort submit tail tar tbl test touch tr troff \
  576. !     uname uniq uuname vi zcat
  577.   pth=`echo $PATH | sed -e 's/:/ /g'`
  578.   pth="$pth /lib /usr/lib"
  579.   for file in $loclist; do
  580.  
  581. Index: mcon/U/i_dirent.U
  582. Prereq: 3.0.1.1
  583. *** mcon/U/i_dirent.U.old    Fri May 13 17:29:21 1994
  584. --- mcon/U/i_dirent.U    Fri May 13 17:29:21 1994
  585. ***************
  586. *** 1,4 ****
  587. ! ?RCS: $Id: i_dirent.U,v 3.0.1.1 1994/01/24 14:11:15 ram Exp $
  588.   ?RCS:
  589.   ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
  590.   ?RCS: 
  591. --- 1,4 ----
  592. ! ?RCS: $Id: i_dirent.U,v 3.0.1.2 1994/05/13 15:22:37 ram Exp $
  593.   ?RCS:
  594.   ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
  595.   ?RCS: 
  596. ***************
  597. *** 9,14 ****
  598. --- 9,17 ----
  599.   ?RCS: of the source tree for dist 3.0.
  600.   ?RCS:
  601.   ?RCS: $Log: i_dirent.U,v $
  602. + ?RCS: Revision 3.0.1.2  1994/05/13  15:22:37  ram
  603. + ?RCS: patch27: new variable direntrytype for proper type setting (ADO)
  604. + ?RCS:
  605.   ?RCS: Revision 3.0.1.1  1994/01/24  14:11:15  ram
  606.   ?RCS: patch16: added new Direntry_t pseudo-type for directory entries
  607.   ?RCS:
  608. ***************
  609. *** 16,24 ****
  610.   ?RCS: Baseline for dist 3.0 netwide release.
  611.   ?RCS:
  612.   ?X:
  613. ! ?X: This unit looks wether there is a dirent system or not
  614.   ?X:
  615. ! ?MAKE:i_dirent d_dirnamlen: test contains Setvar Findhdr
  616.   ?MAKE:    -pick add $@ %<
  617.   ?S:i_dirent:
  618.   ?S:    This variable conditionally defines I_DIRENT, which indicates
  619. --- 19,28 ----
  620.   ?RCS: Baseline for dist 3.0 netwide release.
  621.   ?RCS:
  622.   ?X:
  623. ! ?X: This unit looks whether there is a dirent system or not
  624.   ?X:
  625. ! ?MAKE:i_dirent d_dirnamlen direntrytype: test contains Setvar \
  626. !     Findhdr cppstdin cppflags cppminus rm
  627.   ?MAKE:    -pick add $@ %<
  628.   ?S:i_dirent:
  629.   ?S:    This variable conditionally defines I_DIRENT, which indicates
  630. ***************
  631. *** 29,34 ****
  632. --- 33,43 ----
  633.   ?S:    to the C program that the length of directory entry names is
  634.   ?S:    provided by a d_namelen field.
  635.   ?S:.
  636. + ?S:direntrytype:
  637. + ?S:    This symbol is set to 'struct direct' or 'struct dirent' depending on
  638. + ?S:    whether dirent is available or not. You should use this pseudo type to
  639. + ?S:    portably declare your directory entries.
  640. + ?S:.
  641.   ?C:I_DIRENT:
  642.   ?C:    This symbol, if defined, indicates to the C program that it should
  643.   ?C:    include <dirent.h>. Using this symbol also triggers the definition
  644. ***************
  645. *** 47,62 ****
  646.   ?C:.
  647.   ?H:#$i_dirent I_DIRENT        /**/
  648.   ?H:#$d_dirnamlen DIRNAMLEN    /**/
  649. ! ?H:?%<:@if I_DIRENT
  650. ! ?H:?%<:#ifdef I_DIRENT
  651. ! ?H:?%<:#define Direntry_t struct dirent
  652. ! ?H:?%<:#else
  653. ! ?H:?%<:#define Direntry_t struct direct
  654. ! ?H:?%<:#endif
  655.   ?H:?%<:@end
  656.   ?H:.
  657.   ?T:xinc
  658. ! ?LINT:set i_dirent d_dirnamlen
  659.   : see if this is a dirent system
  660.   echo " "
  661.   if xinc=`./findhdr dirent.h`; $test "$xinc"; then
  662. --- 56,67 ----
  663.   ?C:.
  664.   ?H:#$i_dirent I_DIRENT        /**/
  665.   ?H:#$d_dirnamlen DIRNAMLEN    /**/
  666. ! ?H:?%<:@if I_DIRENT && Direntry_t
  667. ! ?H:?%<:#define Direntry_t $direntrytype
  668.   ?H:?%<:@end
  669.   ?H:.
  670.   ?T:xinc
  671. ! ?LINT:set i_dirent d_dirnamlen direntrytype
  672.   : see if this is a dirent system
  673.   echo " "
  674.   if xinc=`./findhdr dirent.h`; $test "$xinc"; then
  675. ***************
  676. *** 75,80 ****
  677. --- 80,112 ----
  678.   set i_dirent
  679.   eval $setvar
  680.   
  681. + ?X: Use struct dirent or struct direct?   If we're using dirent.h, 
  682. + ?X: it's probably struct dirent, but apparently not always.
  683. + ?X: Assume $xinc still contains the name of the header file we're using.
  684. + @if direntrytype || Direntry_t
  685. + : Look for type of directory structure.
  686. + echo " "
  687. + $cppstdin $cppflags $cppminus < "$xinc" > try.c
  688. + case "$i_dirent" in
  689. + $define)
  690. +     if $contains 'struct dirent' try.c >/dev/null 2>&1; then
  691. +         direntrytype='struct dirent'
  692. +     else
  693. +         direntrytype='struct direct'
  694. +     fi
  695. +     ;;
  696. + *)
  697. +     if $contains 'struct direct' try.c >/dev/null 2>&1; then
  698. +         direntrytype='struct direct'
  699. +     else
  700. +         direntrytype='struct dirent'
  701. +     fi
  702. +     ;;
  703. + esac
  704. + $rm -f try.c
  705. + echo "Your directory entries are of type $direntrytype." >&4
  706. + @end
  707.   @if d_dirnamlen || DIRNAMLEN
  708.   : see if the directory entry stores field length
  709.   echo " "
  710.  
  711. Index: mcon/U/d_shmat.U
  712. Prereq: 3.0.1.1
  713. *** mcon/U/d_shmat.U.old    Fri May 13 17:29:18 1994
  714. --- mcon/U/d_shmat.U    Fri May 13 17:29:19 1994
  715. ***************
  716. *** 1,4 ****
  717. ! ?RCS: $Id: d_shmat.U,v 3.0.1.1 1994/05/06 14:54:18 ram Exp $
  718.   ?RCS:
  719.   ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
  720.   ?RCS: 
  721. --- 1,4 ----
  722. ! ?RCS: $Id: d_shmat.U,v 3.0.1.2 1994/05/13 15:18:56 ram Exp $
  723.   ?RCS:
  724.   ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
  725.   ?RCS: 
  726. ***************
  727. *** 9,21 ****
  728.   ?RCS: of the source tree for dist 3.0.
  729.   ?RCS:
  730.   ?RCS: $Log: d_shmat.U,v $
  731.   ?RCS: Revision 3.0.1.1  1994/05/06  14:54:18  ram
  732.   ?RCS: patch23: new Shmat_t symbol to declare return type of shmat()
  733.   ?RCS:
  734.   ?RCS: Revision 3.0  1993/08/18  12:07:18  ram
  735.   ?RCS: Baseline for dist 3.0 netwide release.
  736.   ?RCS:
  737. ! ?MAKE:d_shmat shmattype: Inlibc cat +cc +ccflags rm
  738.   ?MAKE:    -pick add $@ %<
  739.   ?S:d_shmat:
  740.   ?S:    This variable conditionally defines the HAS_SHMAT symbol, which
  741. --- 9,25 ----
  742.   ?RCS: of the source tree for dist 3.0.
  743.   ?RCS:
  744.   ?RCS: $Log: d_shmat.U,v $
  745. + ?RCS: Revision 3.0.1.2  1994/05/13  15:18:56  ram
  746. + ?RCS: patch27: added new symbol HAS_SHMAT_PROTOTYPE (ADO)
  747. + ?RCS:
  748.   ?RCS: Revision 3.0.1.1  1994/05/06  14:54:18  ram
  749.   ?RCS: patch23: new Shmat_t symbol to declare return type of shmat()
  750.   ?RCS:
  751.   ?RCS: Revision 3.0  1993/08/18  12:07:18  ram
  752.   ?RCS: Baseline for dist 3.0 netwide release.
  753.   ?RCS:
  754. ! ?MAKE:d_shmat shmattype d_shmatprototype: Inlibc cat +cc +ccflags \
  755. !     rm cppstdin cppflags cppminus usrinc Setvar contains
  756.   ?MAKE:    -pick add $@ %<
  757.   ?S:d_shmat:
  758.   ?S:    This variable conditionally defines the HAS_SHMAT symbol, which
  759. ***************
  760. *** 25,30 ****
  761. --- 29,39 ----
  762.   ?S:    This symbol contains the type of pointer returned by shmat().
  763.   ?S:    It can be 'void *' or 'char *'.
  764.   ?S:.
  765. + ?S:d_shmatprototype:
  766. + ?S:    This variable conditionally defines the HAS_SHMAT_PROTOTYPE 
  767. + ?S:    symbol, which indicates that sys/shm.h has a prototype for
  768. + ?S:    shmat.
  769. + ?S:.
  770.   ?C:HAS_SHMAT:
  771.   ?C:    This symbol, if defined, indicates that the shmat() routine is
  772.   ?C:    available to attach a shared memory segment to the process space.
  773. ***************
  774. *** 33,42 ****
  775.   ?C:    This symbol holds the return type of the shmat() system call.
  776.   ?C:    Usually set to 'void *' or 'char *'.
  777.   ?C:.
  778.   ?H:#$d_shmat HAS_SHMAT        /**/
  779.   ?H:#define Shmat_t $shmattype    /**/
  780.   ?H:.
  781. ! ?LINT:set d_shmat
  782.   : see if shmat exists
  783.   set shmat d_shmat
  784.   eval $inlibc
  785. --- 42,59 ----
  786.   ?C:    This symbol holds the return type of the shmat() system call.
  787.   ?C:    Usually set to 'void *' or 'char *'.
  788.   ?C:.
  789. + ?C:HAS_SHMAT_PROTOTYPE:
  790. + ?C:    This symbol, if defined, indicates that the sys/shm.h includes
  791. + ?C:    a prototype for shmat().  Otherwise, it is up to the program to
  792. + ?C:    guess one.  Shmat_t shmat _((int, Shmat_t, int)) is a good guess,
  793. + ?C:    but not always right so it should be emitted by the program only
  794. + ?C:    when HAS_SHMAT_PROTOTYPE is not defined to avoid conflicting defs.
  795. + ?C:.
  796.   ?H:#$d_shmat HAS_SHMAT        /**/
  797.   ?H:#define Shmat_t $shmattype    /**/
  798. + ?H:#$d_shmatprototype HAS_SHMAT_PROTOTYPE    /**/
  799.   ?H:.
  800. ! ?LINT:set d_shmat d_shmatprototype
  801.   : see if shmat exists
  802.   set shmat d_shmat
  803.   eval $inlibc
  804. ***************
  805. *** 52,59 ****
  806.       else
  807.           shmattype='char *'
  808.       fi
  809. -     $rm -f shmat.[co]
  810.       echo "and it returns ($shmattype)." >&4
  811. !     ;;
  812.   esac
  813.   
  814. --- 69,88 ----
  815.       else
  816.           shmattype='char *'
  817.       fi
  818.       echo "and it returns ($shmattype)." >&4
  819. !     : see if a prototype for shmat is available
  820. !     $cppstdin $cppflags $cppminus < $usrinc/sys/shm.h > shmat.c 2>/dev/null
  821. !     if $contains 'shmat.*(' shmat.c >/dev/null 2>&1; then
  822. !         val="$define"
  823. !     else
  824. !         val="$undef"
  825. !     fi
  826. !     $rm -f shmat.[co]
  827. !     ;;
  828. ! *)
  829. !     val="$undef"
  830. !     ;;
  831.   esac
  832. + set d_shmatprototype
  833. + eval $setvar
  834.   
  835.  
  836. Index: mcon/U/i_termio.U
  837. Prereq: 3.0.1.1
  838. *** mcon/U/i_termio.U.old    Fri May 13 17:29:22 1994
  839. --- mcon/U/i_termio.U    Fri May 13 17:29:22 1994
  840. ***************
  841. *** 1,4 ****
  842. ! ?RCS: $Id: i_termio.U,v 3.0.1.1 1994/05/06 15:05:23 ram Exp $
  843.   ?RCS:
  844.   ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
  845.   ?RCS: 
  846. --- 1,4 ----
  847. ! ?RCS: $Id: i_termio.U,v 3.0.1.2 1994/05/13 15:25:03 ram Exp $
  848.   ?RCS:
  849.   ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
  850.   ?RCS: 
  851. ***************
  852. *** 9,28 ****
  853.   ?RCS: of the source tree for dist 3.0.
  854.   ?RCS:
  855.   ?RCS: $Log: i_termio.U,v $
  856.   ?RCS: Revision 3.0.1.1  1994/05/06  15:05:23  ram
  857.   ?RCS: patch23: now include all three defines in config.h (ADO)
  858.   ?RCS:
  859.   ?RCS: Revision 3.0  1993/08/18  12:08:44  ram
  860.   ?RCS: Baseline for dist 3.0 netwide release.
  861.   ?RCS:
  862. - ?X:
  863. - ?X: Include all three (possible) definitions in config_h.SH.
  864. - ?X: There are enough implementations of posix <termios.h> out
  865. - ?X: there that do not work well with other system headers or are
  866. - ?X: incomplete.  This makes it easier for the user to back off 
  867. - ?X: and try <sgtty.h> or <termio.h> instead. This is achieved by
  868. - ?X: tying all three symbols to %<.
  869. - ?X:
  870.   ?MAKE:i_termio i_sgtty i_termios: test Inlibc Cppsym Guess Setvar Findhdr
  871.   ?MAKE:    -pick add $@ %<
  872.   ?S:i_termio:
  873. --- 9,23 ----
  874.   ?RCS: of the source tree for dist 3.0.
  875.   ?RCS:
  876.   ?RCS: $Log: i_termio.U,v $
  877. + ?RCS: Revision 3.0.1.2  1994/05/13  15:25:03  ram
  878. + ?RCS: patch27: undone ADO's fix in previous patch since it was useless
  879. + ?RCS:
  880.   ?RCS: Revision 3.0.1.1  1994/05/06  15:05:23  ram
  881.   ?RCS: patch23: now include all three defines in config.h (ADO)
  882.   ?RCS:
  883.   ?RCS: Revision 3.0  1993/08/18  12:08:44  ram
  884.   ?RCS: Baseline for dist 3.0 netwide release.
  885.   ?RCS:
  886.   ?MAKE:i_termio i_sgtty i_termios: test Inlibc Cppsym Guess Setvar Findhdr
  887.   ?MAKE:    -pick add $@ %<
  888.   ?S:i_termio:
  889. ***************
  890. *** 40,57 ****
  891.   ?S:    indicates to the C program that it should include <sgtty.h> rather
  892.   ?S:    than <termio.h>.
  893.   ?S:.
  894. ! ?C:I_TERMIO ~ %<:
  895.   ?C:    This symbol, if defined, indicates that the program should include
  896.   ?C:    <termio.h> rather than <sgtty.h>.  There are also differences in
  897.   ?C:    the ioctl() calls that depend on the value of this symbol.
  898.   ?C:.
  899. ! ?C:I_TERMIOS ~ %<:
  900.   ?C:    This symbol, if defined, indicates that the program should include
  901.   ?C:    the POSIX termios.h rather than sgtty.h or termio.h.
  902.   ?C:    There are also differences in the ioctl() calls that depend on the
  903.   ?C:    value of this symbol.
  904.   ?C:.
  905. ! ?C:I_SGTTY ~ %<:
  906.   ?C:    This symbol, if defined, indicates that the program should include
  907.   ?C:    <sgtty.h> rather than <termio.h>.  There are also differences in
  908.   ?C:    the ioctl() calls that depend on the value of this symbol.
  909. --- 35,52 ----
  910.   ?S:    indicates to the C program that it should include <sgtty.h> rather
  911.   ?S:    than <termio.h>.
  912.   ?S:.
  913. ! ?C:I_TERMIO:
  914.   ?C:    This symbol, if defined, indicates that the program should include
  915.   ?C:    <termio.h> rather than <sgtty.h>.  There are also differences in
  916.   ?C:    the ioctl() calls that depend on the value of this symbol.
  917.   ?C:.
  918. ! ?C:I_TERMIOS:
  919.   ?C:    This symbol, if defined, indicates that the program should include
  920.   ?C:    the POSIX termios.h rather than sgtty.h or termio.h.
  921.   ?C:    There are also differences in the ioctl() calls that depend on the
  922.   ?C:    value of this symbol.
  923.   ?C:.
  924. ! ?C:I_SGTTY:
  925.   ?C:    This symbol, if defined, indicates that the program should include
  926.   ?C:    <sgtty.h> rather than <termio.h>.  There are also differences in
  927.   ?C:    the ioctl() calls that depend on the value of this symbol.
  928.  
  929. Index: mcon/U/i_memory.U
  930. Prereq: 3.0.1.1
  931. *** mcon/U/i_memory.U.old    Fri May 13 17:29:21 1994
  932. --- mcon/U/i_memory.U    Fri May 13 17:29:21 1994
  933. ***************
  934. *** 1,4 ****
  935. ! ?RCS: $Id: i_memory.U,v 3.0.1.1 1994/05/06 15:02:25 ram Exp $
  936.   ?RCS:
  937.   ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
  938.   ?RCS: 
  939. --- 1,4 ----
  940. ! ?RCS: $Id: i_memory.U,v 3.0.1.2 1994/05/13 15:23:56 ram Exp $
  941.   ?RCS:
  942.   ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
  943.   ?RCS: 
  944. ***************
  945. *** 9,21 ****
  946.   ?RCS: of the source tree for dist 3.0.
  947.   ?RCS:
  948.   ?RCS: $Log: i_memory.U,v $
  949.   ?RCS: Revision 3.0.1.1  1994/05/06  15:02:25  ram
  950.   ?RCS: patch23: avoid conflicts with <string.h>
  951.   ?RCS:
  952.   ?RCS: Revision 3.0  1993/08/18  12:08:22  ram
  953.   ?RCS: Baseline for dist 3.0 netwide release.
  954.   ?RCS:
  955. ! ?MAKE:i_memory: Inhdr strings cppstdin cppflags cppminus contains rm
  956.   ?MAKE:    -pick add $@ %<
  957.   ?S:i_memory:
  958.   ?S:    This variable conditionally defines the I_MEMORY symbol, and indicates
  959. --- 9,24 ----
  960.   ?RCS: of the source tree for dist 3.0.
  961.   ?RCS:
  962.   ?RCS: $Log: i_memory.U,v $
  963. + ?RCS: Revision 3.0.1.2  1994/05/13  15:23:56  ram
  964. + ?RCS: patch27: modified to avoid spurious Whoa warnings (ADO)
  965. + ?RCS:
  966.   ?RCS: Revision 3.0.1.1  1994/05/06  15:02:25  ram
  967.   ?RCS: patch23: avoid conflicts with <string.h>
  968.   ?RCS:
  969.   ?RCS: Revision 3.0  1993/08/18  12:08:22  ram
  970.   ?RCS: Baseline for dist 3.0 netwide release.
  971.   ?RCS:
  972. ! ?MAKE:i_memory: Inhdr strings cppstdin cppflags cppminus contains rm Setvar
  973.   ?MAKE:    -pick add $@ %<
  974.   ?S:i_memory:
  975.   ?S:    This variable conditionally defines the I_MEMORY symbol, and indicates
  976. ***************
  977. *** 34,43 ****
  978.   ?X:    <string.h> contains memcpy, then we don't need memory.h
  979.   ?X:
  980.   : see if memory.h is available.
  981. ! set memory.h i_memory
  982.   eval $inhdr
  983.   : See if it conflicts with string.h
  984. ! case "$i_memory" in
  985.   $define)
  986.       case "$strings" in
  987.       '') ;;
  988. --- 37,48 ----
  989.   ?X:    <string.h> contains memcpy, then we don't need memory.h
  990.   ?X:
  991.   : see if memory.h is available.
  992. ! val=''
  993. ! set memory.h val
  994.   eval $inhdr
  995.   : See if it conflicts with string.h
  996. ! case "$val" in
  997.   $define)
  998.       case "$strings" in
  999.       '') ;;
  1000. ***************
  1001. *** 45,54 ****
  1002.           $cppstdin $cppflags $cppminus < $strings > mem.h
  1003.           if $contains 'memcpy' mem.h >/dev/null 2>&1; then
  1004.               echo "We won't be including <memory.h>."
  1005. !             i_memory="$undef"
  1006.           fi
  1007.           $rm -f mem.h
  1008.           ;;
  1009.       esac
  1010.   esac
  1011.   
  1012. --- 50,62 ----
  1013.           $cppstdin $cppflags $cppminus < $strings > mem.h
  1014.           if $contains 'memcpy' mem.h >/dev/null 2>&1; then
  1015.               echo "We won't be including <memory.h>."
  1016. !             val="$undef"
  1017.           fi
  1018.           $rm -f mem.h
  1019.           ;;
  1020.       esac
  1021.   esac
  1022. + set i_memory
  1023. + eval $setvar
  1024.   
  1025.  
  1026. Index: mcon/U/d_vfork.U
  1027. Prereq: 3.0.1.3
  1028. *** mcon/U/d_vfork.U.old    Fri May 13 17:29:20 1994
  1029. --- mcon/U/d_vfork.U    Fri May 13 17:29:20 1994
  1030. ***************
  1031. *** 1,4 ****
  1032. ! ?RCS: $Id: d_vfork.U,v 3.0.1.3 1994/05/06 14:59:09 ram Exp $
  1033.   ?RCS:
  1034.   ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
  1035.   ?RCS: 
  1036. --- 1,4 ----
  1037. ! ?RCS: $Id: d_vfork.U,v 3.0.1.4 1994/05/13 15:20:56 ram Exp $
  1038.   ?RCS:
  1039.   ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
  1040.   ?RCS: 
  1041. ***************
  1042. *** 9,14 ****
  1043. --- 9,17 ----
  1044.   ?RCS: of the source tree for dist 3.0.
  1045.   ?RCS:
  1046.   ?RCS: $Log: d_vfork.U,v $
  1047. + ?RCS: Revision 3.0.1.4  1994/05/13  15:20:56  ram
  1048. + ?RCS: patch27: modified to avoid spurious Whoa warnings (ADO)
  1049. + ?RCS:
  1050.   ?RCS: Revision 3.0.1.3  1994/05/06  14:59:09  ram
  1051.   ?RCS: patch23: now explicitely ask whether vfork() should be used (ADO)
  1052.   ?RCS:
  1053. ***************
  1054. *** 22,28 ****
  1055.   ?RCS: Revision 3.0  1993/08/18  12:07:55  ram
  1056.   ?RCS: Baseline for dist 3.0 netwide release.
  1057.   ?RCS:
  1058. ! ?MAKE:d_vfork usevfork: Inlibc Myread Oldconfig
  1059.   ?MAKE:    -pick add $@ %<
  1060.   ?S:d_vfork:
  1061.   ?S:    This variable conditionally defines the HAS_VFORK symbol, which
  1062. --- 25,31 ----
  1063.   ?RCS: Revision 3.0  1993/08/18  12:07:55  ram
  1064.   ?RCS: Baseline for dist 3.0 netwide release.
  1065.   ?RCS:
  1066. ! ?MAKE:d_vfork usevfork: Inlibc Myread Oldconfig Setvar
  1067.   ?MAKE:    -pick add $@ %<
  1068.   ?S:d_vfork:
  1069.   ?S:    This variable conditionally defines the HAS_VFORK symbol, which
  1070. ***************
  1071. *** 54,65 ****
  1072.   fi
  1073.   ?X:==========================
  1074.   : see if there is a vfork
  1075. ! set vfork d_vfork
  1076.   eval $inlibc
  1077.   
  1078.   : Ok, but do we want to use it. vfork is reportedly unreliable in 
  1079.   : perl on Solaris 2.x, and probably elsewhere.
  1080. ! case "$d_vfork" in
  1081.   $define)
  1082.       echo " "
  1083.       case "$usevfork" in
  1084. --- 57,69 ----
  1085.   fi
  1086.   ?X:==========================
  1087.   : see if there is a vfork
  1088. ! val=''
  1089. ! set vfork val
  1090.   eval $inlibc
  1091.   
  1092.   : Ok, but do we want to use it. vfork is reportedly unreliable in 
  1093.   : perl on Solaris 2.x, and probably elsewhere.
  1094. ! case "$val" in
  1095.   $define)
  1096.       echo " "
  1097.       case "$usevfork" in
  1098. ***************
  1099. *** 72,78 ****
  1100.       y|Y) usevfork='true';;
  1101.       *)
  1102.           echo "Ok, we won't use vfork()."
  1103. !         d_vfork="$undef"
  1104.           usevfork='false'
  1105.           ;;
  1106.       esac
  1107. --- 76,82 ----
  1108.       y|Y) usevfork='true';;
  1109.       *)
  1110.           echo "Ok, we won't use vfork()."
  1111. !         val="$undef"
  1112.           usevfork='false'
  1113.           ;;
  1114.       esac
  1115. ***************
  1116. *** 81,84 ****
  1117. --- 85,92 ----
  1118.       usevfork='false'
  1119.       ;;
  1120.   esac
  1121. + ?X: Only set it when final value is known to avoid spurious Whoas
  1122. + set d_vfork
  1123. + eval $setvar
  1124.   
  1125.  
  1126. Index: mcon/U/yacc.U
  1127. Prereq: 3.0
  1128. *** mcon/U/yacc.U.old    Fri May 13 17:29:25 1994
  1129. --- mcon/U/yacc.U    Fri May 13 17:29:25 1994
  1130. ***************
  1131. *** 1,4 ****
  1132. ! ?RCS: $Id: yacc.U,v 3.0 1993/08/18 12:10:03 ram Exp $
  1133.   ?RCS:
  1134.   ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
  1135.   ?RCS: 
  1136. --- 1,4 ----
  1137. ! ?RCS: $Id: yacc.U,v 3.0.1.1 1994/05/13 15:28:48 ram Exp $
  1138.   ?RCS:
  1139.   ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
  1140.   ?RCS: 
  1141. ***************
  1142. *** 9,27 ****
  1143.   ?RCS: of the source tree for dist 3.0.
  1144.   ?RCS:
  1145.   ?RCS: $Log: yacc.U,v $
  1146.   ?RCS: Revision 3.0  1993/08/18  12:10:03  ram
  1147.   ?RCS: Baseline for dist 3.0 netwide release.
  1148.   ?RCS:
  1149. ! ?MAKE:yacc yaccflags: Guess Myread Oldconfig bison cat test
  1150.   ?MAKE:    -pick add $@ %<
  1151.   ?S:yacc:
  1152.   ?S:    This variable holds the name of the compiler compiler we
  1153. ! ?S:    want to use in the Makefile. It can be yacc or bison -y.
  1154.   ?S:.
  1155.   ?S:yaccflags:
  1156.   ?S:    This variable contains any additional yacc flags desired by the
  1157.   ?S:    user.  It is up to the Makefile to use this.
  1158.   ?S:.
  1159.   : determine compiler compiler
  1160.   case "$yacc" in
  1161.   '')
  1162. --- 9,31 ----
  1163.   ?RCS: of the source tree for dist 3.0.
  1164.   ?RCS:
  1165.   ?RCS: $Log: yacc.U,v $
  1166. + ?RCS: Revision 3.0.1.1  1994/05/13  15:28:48  ram
  1167. + ?RCS: patch27: added byacc as another alternative (ADO)
  1168. + ?RCS:
  1169.   ?RCS: Revision 3.0  1993/08/18  12:10:03  ram
  1170.   ?RCS: Baseline for dist 3.0 netwide release.
  1171.   ?RCS:
  1172. ! ?MAKE:yacc yaccflags: Guess Myread Oldconfig byacc bison cat test
  1173.   ?MAKE:    -pick add $@ %<
  1174.   ?S:yacc:
  1175.   ?S:    This variable holds the name of the compiler compiler we
  1176. ! ?S:    want to use in the Makefile. It can be yacc, byacc, or bison -y.
  1177.   ?S:.
  1178.   ?S:yaccflags:
  1179.   ?S:    This variable contains any additional yacc flags desired by the
  1180.   ?S:    user.  It is up to the Makefile to use this.
  1181.   ?S:.
  1182. + ?T:comp
  1183.   : determine compiler compiler
  1184.   case "$yacc" in
  1185.   '')
  1186. ***************
  1187. *** 30,40 ****
  1188.       dflt="$yacc";;
  1189.   esac
  1190.   echo " "
  1191.   if $test -f "$bison"; then
  1192. !     rp='Which compiler compiler (yacc or bison -y) shall I use?'
  1193. ! else
  1194. !     rp='Which compiler compiler shall I use?'
  1195.   fi
  1196.   . ./myread
  1197.   yacc="$ans"
  1198.   case "$yacc" in
  1199. --- 34,48 ----
  1200.       dflt="$yacc";;
  1201.   esac
  1202.   echo " "
  1203. + comp='yacc'
  1204. + if $test -f "$byacc"; then
  1205. +     dflt="$byacc"
  1206. +     comp="byacc or $comp"
  1207. + fi
  1208.   if $test -f "$bison"; then
  1209. !     comp="$comp or bison -y"
  1210.   fi
  1211. + rp="Which compiler compiler ($comp) shall I use?"
  1212.   . ./myread
  1213.   yacc="$ans"
  1214.   case "$yacc" in
  1215.  
  1216. Index: mcon/U/uidtype.U
  1217. Prereq: 3.0
  1218. *** mcon/U/uidtype.U.old    Fri May 13 17:29:24 1994
  1219. --- mcon/U/uidtype.U    Fri May 13 17:29:24 1994
  1220. ***************
  1221. *** 1,4 ****
  1222. ! ?RCS: $Id: uidtype.U,v 3.0 1993/08/18 12:09:56 ram Exp $
  1223.   ?RCS:
  1224.   ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
  1225.   ?RCS: 
  1226. --- 1,4 ----
  1227. ! ?RCS: $Id: uidtype.U,v 3.0.1.1 1994/05/13 15:28:27 ram Exp $
  1228.   ?RCS:
  1229.   ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
  1230.   ?RCS: 
  1231. ***************
  1232. *** 9,18 ****
  1233.   ?RCS: of the source tree for dist 3.0.
  1234.   ?RCS:
  1235.   ?RCS: $Log: uidtype.U,v $
  1236.   ?RCS: Revision 3.0  1993/08/18  12:09:56  ram
  1237.   ?RCS: Baseline for dist 3.0 netwide release.
  1238.   ?RCS:
  1239. ! ?MAKE:uidtype: Myread Oldconfig contains Findhdr
  1240.   ?MAKE:    -pick add $@ %<
  1241.   ?S:uidtype:
  1242.   ?S:    This variable defines UIDTYPE to be something like uid_t, int, 
  1243. --- 9,22 ----
  1244.   ?RCS: of the source tree for dist 3.0.
  1245.   ?RCS:
  1246.   ?RCS: $Log: uidtype.U,v $
  1247. + ?RCS: Revision 3.0.1.1  1994/05/13  15:28:27  ram
  1248. + ?RCS: patch27: made conformant to its gidtype.U companion
  1249. + ?RCS: patch27: question now explicitely mentions getuid()
  1250. + ?RCS:
  1251.   ?RCS: Revision 3.0  1993/08/18  12:09:56  ram
  1252.   ?RCS: Baseline for dist 3.0 netwide release.
  1253.   ?RCS:
  1254. ! ?MAKE:uidtype: Myread Oldconfig contains Findhdr Setvar
  1255.   ?MAKE:    -pick add $@ %<
  1256.   ?S:uidtype:
  1257.   ?S:    This variable defines UIDTYPE to be something like uid_t, int, 
  1258. ***************
  1259. *** 26,31 ****
  1260. --- 30,36 ----
  1261.   ?H:#define Uid_t $uidtype        /* UID type */
  1262.   ?H:.
  1263.   ?T:xxx
  1264. + ?LINT:set uidtype
  1265.   : see what type uids are declared as in the kernel
  1266.   case "$uidtype" in
  1267.   '')
  1268. ***************
  1269. *** 43,49 ****
  1270.   *)  dflt="$uidtype";;
  1271.   esac
  1272.   echo " "
  1273. ! rp="What type are user ids on this system declared as?"
  1274.   . ./myread
  1275. ! uidtype="$ans"
  1276.   
  1277. --- 48,56 ----
  1278.   *)  dflt="$uidtype";;
  1279.   esac
  1280.   echo " "
  1281. ! rp="What is the type for user ids returned by getuid()?"
  1282.   . ./myread
  1283. ! val="$ans"
  1284. ! set uidtype
  1285. ! eval $setvar
  1286.   
  1287.  
  1288. Index: mcon/man/mconfig.SH
  1289. Prereq: 3.0.1.7
  1290. *** mcon/man/mconfig.SH.old    Fri May 13 17:29:28 1994
  1291. --- mcon/man/mconfig.SH    Fri May 13 17:29:29 1994
  1292. ***************
  1293. *** 20,26 ****
  1294.   .TH METACONFIG $manext "Version $VERSION PL$PATCHLEVEL"
  1295.   ''' @(#) Manual page for metaconfig
  1296.   '''
  1297. ! ''' $Id: mconfig.SH,v 3.0.1.7 1994/05/06 15:19:25 ram Exp $
  1298.   '''
  1299.   '''  Copyright (c) 1991-1993, Raphael Manfredi
  1300.   '''  
  1301. --- 20,26 ----
  1302.   .TH METACONFIG $manext "Version $VERSION PL$PATCHLEVEL"
  1303.   ''' @(#) Manual page for metaconfig
  1304.   '''
  1305. ! ''' $Id: mconfig.SH,v 3.0.1.8 1994/05/13 15:29:16 ram Exp $
  1306.   '''
  1307.   '''  Copyright (c) 1991-1993, Raphael Manfredi
  1308.   '''  
  1309. ***************
  1310. *** 31,36 ****
  1311. --- 31,39 ----
  1312.   '''  of the source tree for dist 3.0.
  1313.   '''
  1314.   ''' $Log: mconfig.SH,v $
  1315. + ''' Revision 3.0.1.8  1994/05/13  15:29:16  ram
  1316. + ''' patch27: now understands macro definitions in ?H: lines
  1317. + '''
  1318.   ''' Revision 3.0.1.7  1994/05/06  15:19:25  ram
  1319.   ''' patch23: documented the new 'p' option in Getfile.U
  1320.   '''
  1321. ***************
  1322. *** 1084,1089 ****
  1323. --- 1087,1098 ----
  1324.   ?H:#define \fIVAR\fR [\fIoptional text\fR]
  1325.   Always defines the \fIVAR\fR C symbol to some value. Implies a '?\fIVAR\fR:'
  1326.   guarding condition. An automatic shell dependency is made to the unit itself.
  1327. + .TP
  1328. + ?H:#define \fIVAR(x,y,z)\fR \fI\$var\fR
  1329. + Always defines the macro \fIVAR\fR to be the value of the \fI\$var\fR variable.
  1330. + It is up to the unit to ensure \fI\$var\fR holds a  sensible value. An
  1331. + automatic dependency between the C macro \fIVAR\fR and the shell variable
  1332. + is established, and the whole line is guarded by an implicit '?\fIVAR\fR:'.
  1333.   .TP
  1334.   ?H:#\fI\$d_var VAR\fR
  1335.   Conditionally defines \fIVAR\fR if \fI\$d_var\fR is set to '\fIdefine\fR'.
  1336.  
  1337. Index: mcon/U/libpth.U
  1338. Prereq: 3.0.1.1
  1339. *** mcon/U/libpth.U.old    Fri May 13 17:29:23 1994
  1340. --- mcon/U/libpth.U    Fri May 13 17:29:23 1994
  1341. ***************
  1342. *** 1,4 ****
  1343. ! ?RCS: $Id: libpth.U,v 3.0.1.1 1994/05/06 15:07:53 ram Exp $
  1344.   ?RCS:
  1345.   ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
  1346.   ?RCS: 
  1347. --- 1,4 ----
  1348. ! ?RCS: $Id: libpth.U,v 3.0.1.2 1994/05/13 15:26:57 ram Exp $
  1349.   ?RCS:
  1350.   ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
  1351.   ?RCS: 
  1352. ***************
  1353. *** 9,14 ****
  1354. --- 9,17 ----
  1355.   ?RCS: of the source tree for dist 3.0.
  1356.   ?RCS:
  1357.   ?RCS: $Log: libpth.U,v $
  1358. + ?RCS: Revision 3.0.1.2  1994/05/13  15:26:57  ram
  1359. + ?RCS: patch27: fixed a typo (libpth -> glibpth)
  1360. + ?RCS:
  1361.   ?RCS: Revision 3.0.1.1  1994/05/06  15:07:53  ram
  1362.   ?RCS: patch23: now asks for library directories to be searched (ADO)
  1363.   ?RCS:
  1364. ***************
  1365. *** 35,42 ****
  1366.   ?INIT:
  1367.   ?INIT:: general looking path for locating libraries
  1368.   ?INIT:glibpth="/usr/lib/large /lib /usr/lib $xlibpth /lib/large"
  1369. ! ?INIT:glibpth="$libpth /usr/lib/small /lib/small"
  1370. ! ?INIT:glibpth="$libpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
  1371.   ?INIT:
  1372.   ?INIT:: Private path used by Configure to find libraries.  Its value
  1373.   ?INIT:: is prepended to libpth. This variable takes care of special
  1374. --- 38,45 ----
  1375.   ?INIT:
  1376.   ?INIT:: general looking path for locating libraries
  1377.   ?INIT:glibpth="/usr/lib/large /lib /usr/lib $xlibpth /lib/large"
  1378. ! ?INIT:glibpth="$glibpth /usr/lib/small /lib/small"
  1379. ! ?INIT:glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
  1380.   ?INIT:
  1381.   ?INIT:: Private path used by Configure to find libraries.  Its value
  1382.   ?INIT:: is prepended to libpth. This variable takes care of special
  1383.  
  1384. Index: mcon/pl/common.pl
  1385. Prereq: 3.0.1.2
  1386. *** mcon/pl/common.pl.old    Fri May 13 17:29:26 1994
  1387. --- mcon/pl/common.pl    Fri May 13 17:29:26 1994
  1388. ***************
  1389. *** 1,4 ****
  1390. ! ;# $Id: common.pl,v 3.0.1.2 1994/01/24 14:22:54 ram Exp $
  1391.   ;#
  1392.   ;#  Copyright (c) 1991-1993, Raphael Manfredi
  1393.   ;#  
  1394. --- 1,4 ----
  1395. ! ;# $Id: common.pl,v 3.0.1.3 1994/05/13 15:29:04 ram Exp $
  1396.   ;#
  1397.   ;#  Copyright (c) 1991-1993, Raphael Manfredi
  1398.   ;#  
  1399. ***************
  1400. *** 9,14 ****
  1401. --- 9,17 ----
  1402.   ;#  of the source tree for dist 3.0.
  1403.   ;#
  1404.   ;# $Log: common.pl,v $
  1405. + ;# Revision 3.0.1.3  1994/05/13  15:29:04  ram
  1406. + ;# patch27: now understands macro definitions in ?H: lines
  1407. + ;#
  1408.   ;# Revision 3.0.1.2  1994/01/24  14:22:54  ram
  1409.   ;# patch16: can now define "internal use only" variables on ?MAKE: lines
  1410.   ;#
  1411. ***************
  1412. *** 212,217 ****
  1413. --- 215,226 ----
  1414.               print "  ?H: ($constraint) #\$$1 $2 \"\$$3\"\n" if $opt_d;
  1415.               $cmaster{$2} = undef;
  1416.               $cwanted{$2} = "$1\n$3";
  1417. +         } elsif (m|^#define\s+(\w+)\((.*)\)\s+\$(\w+)|) {
  1418. +             # Case: #define VAR(x) $var
  1419. +             $constraint = $1 unless $constraint;
  1420. +             print "  ?H: ($constraint) #define $1($2) \$$3\n" if $opt_d;
  1421. +             $cmaster{$1} = undef;
  1422. +             $cwanted{$1} = $3;
  1423.           } elsif (m|^#\$define\s+(\w+)|) {
  1424.               # Case: #$define VAR
  1425.               $constraint = $1 unless $constraint;
  1426.  
  1427. Index: mcon/pl/lint.pl
  1428. Prereq: 3.0.1.5
  1429. *** mcon/pl/lint.pl.old    Fri May 13 17:29:27 1994
  1430. --- mcon/pl/lint.pl    Fri May 13 17:29:27 1994
  1431. ***************
  1432. *** 1,4 ****
  1433. ! ;# $Id: lint.pl,v 3.0.1.5 1994/05/06 15:27:48 ram Exp $
  1434.   ;#
  1435.   ;#  Copyright (c) 1991-1993, Raphael Manfredi
  1436.   ;#  
  1437. --- 1,4 ----
  1438. ! ;# $Id: lint.pl,v 3.0.1.6 1994/05/13 15:29:09 ram Exp $
  1439.   ;#
  1440.   ;#  Copyright (c) 1991-1993, Raphael Manfredi
  1441.   ;#  
  1442. ***************
  1443. *** 9,14 ****
  1444. --- 9,17 ----
  1445.   ;#  of the source tree for dist 3.0.
  1446.   ;#
  1447.   ;# $Log: lint.pl,v $
  1448. + ;# Revision 3.0.1.6  1994/05/13  15:29:09  ram
  1449. + ;# patch27: now understands macro definitions in ?H: lines
  1450. + ;#
  1451.   ;# Revision 3.0.1.5  1994/05/06  15:27:48  ram
  1452.   ;# patch23: now warns for units ending with non-blank line
  1453.   ;# patch23: warn for units where last line is not new-line terminated
  1454. ***************
  1455. *** 240,245 ****
  1456. --- 243,252 ----
  1457.           # Case: #$d_var VAR "$var"
  1458.           warn "$where: symbol '$2' was already defined.\n" if $hcsym{$2}++;
  1459.           &check_definition("$1");
  1460. +         &check_definition("$3");
  1461. +     } elsif (m|^#define\s+(\w+)\((.*)\)\s+\$(\w+)|) {
  1462. +         # Case: #define VAR(x) $var
  1463. +         warn "$where: symbol '$1' was already defined.\n" if $hcsym{$1}++;
  1464.           &check_definition("$3");
  1465.       } elsif (m|^#\$define\s+(\w+)|) {
  1466.           # Case: #$define VAR
  1467.  
  1468. Index: mcon/U/gidtype.U
  1469. Prereq: 3.0.1.1
  1470. *** mcon/U/gidtype.U.old    Fri May 13 17:29:20 1994
  1471. --- mcon/U/gidtype.U    Fri May 13 17:29:20 1994
  1472. ***************
  1473. *** 1,4 ****
  1474. ! ?RCS: $Id: gidtype.U,v 3.0.1.1 1994/05/06 15:01:51 ram Exp $
  1475.   ?RCS:
  1476.   ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
  1477.   ?RCS: 
  1478. --- 1,4 ----
  1479. ! ?RCS: $Id: gidtype.U,v 3.0.1.2 1994/05/13 15:21:07 ram Exp $
  1480.   ?RCS:
  1481.   ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
  1482.   ?RCS: 
  1483. ***************
  1484. *** 9,14 ****
  1485. --- 9,17 ----
  1486.   ?RCS: of the source tree for dist 3.0.
  1487.   ?RCS:
  1488.   ?RCS: $Log: gidtype.U,v $
  1489. + ?RCS: Revision 3.0.1.2  1994/05/13  15:21:07  ram
  1490. + ?RCS: patch27: added lint hint
  1491. + ?RCS:
  1492.   ?RCS: Revision 3.0.1.1  1994/05/06  15:01:51  ram
  1493.   ?RCS: patch23: protected gidtype setting via setvar (ADO)
  1494.   ?RCS: patch23: made Gid_t comment more explicit (ADO)
  1495. ***************
  1496. *** 33,38 ****
  1497. --- 36,42 ----
  1498.   ?H:#define Gid_t $gidtype        /* Type for getgid(), etc... */
  1499.   ?H:.
  1500.   ?T:xxx
  1501. + ?LINT:set gidtype
  1502.   : see what type gids are declared as in the kernel
  1503.   case "$gidtype" in
  1504.   '')
  1505.  
  1506. *** End of Patch 27 ***
  1507.  
  1508. exit 0 # Just in case...
  1509.