home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 2 / 2860 < prev    next >
Internet Message Format  |  1991-02-25  |  34KB

  1. From: barnett@grymoire.crd.ge.com (Bruce Barnett)
  2. Newsgroups: alt.sources
  3. Subject: Ease 3.0 to Ease 3.1 patch
  4. Message-ID: <17109@crdgw1.crd.ge.com>
  5. Date: 26 Feb 91 04:04:58 GMT
  6.  
  7. This is the official "Patch1" for Ease 3.0 which will upgrade the
  8. release to Ease 3.1
  9.  
  10. It fixes some portability problems.
  11.  
  12. Use by typing:
  13.  
  14.     patch -p <Patch1
  15.  
  16.  
  17.  
  18. diff -c -r ../3.0/Makefile ./Makefile
  19. *** ../3.0/Makefile    Mon Feb 25 17:17:25 1991
  20. --- ./Makefile    Mon Feb 25 17:33:50 1991
  21. ***************
  22. *** 1,3 ****
  23. --- 1,13 ----
  24. + #    $Header: /home/kreskin/u0/barnett/Src/Ease/ease/RCS/Makefile,v 1.2 1991/02/25 22:07:29 barnett Exp $
  25. + #
  26. + #    $Log: Makefile,v $
  27. + # Revision 1.2  1991/02/25  22:07:29  barnett
  28. + # Added RCS header, amd specified value for MAKE variable
  29. + #
  30. + # Revision 1.1  1991/02/25  14:37:28  barnett
  31. + # Initial revision - release to net
  32. + #
  33. + #
  34.   # where do you want to place the binaries and scripts?
  35.   # the programs are: et cfc cfdiff cfstrip
  36.   BINDIR=`pwd`/bin
  37. ***************
  38. *** 8,14 ****
  39.   #ORIGINAL=/usr/lib/sendmail.main.cf
  40.   #ORIGINAL=/usr/lib/sendmail.subsidiary.cf
  41.   
  42. ! # What arguments to cfc do you want for cfc (see the file CONVERT)
  43.   CONVERT_FLAGS=-s -CV
  44.   
  45.   #what extenstion do you want for the manual pages?
  46. --- 18,24 ----
  47.   #ORIGINAL=/usr/lib/sendmail.main.cf
  48.   #ORIGINAL=/usr/lib/sendmail.subsidiary.cf
  49.   
  50. ! # What arguments to cfc do you want for cfc (see the file CONVERTING)
  51.   CONVERT_FLAGS=-s -CV
  52.   
  53.   #what extenstion do you want for the manual pages?
  54. ***************
  55. *** 16,22 ****
  56.   #EXT=l
  57.   EXT=n
  58.   SHELL=/bin/sh
  59.   
  60.   all:
  61.       cd cfc; ${MAKE} ${FLAGS}  $@
  62. --- 26,32 ----
  63.   #EXT=l
  64.   EXT=n
  65.   SHELL=/bin/sh
  66. ! MAKE=make
  67.   
  68.   all:
  69.       cd cfc; ${MAKE} ${FLAGS}  $@
  70. diff -c -r ../3.0/src/Makefile ./src/Makefile
  71. *** ../3.0/src/Makefile    Mon Feb 25 17:18:23 1991
  72. --- ./src/Makefile    Mon Feb 25 17:35:59 1991
  73. ***************
  74. *** 1,8 ****
  75.   # Makefile for Ease Translator (et).
  76.   #
  77. ! #    $Header: /home/kreskin/u0/barnett/Src/Ease/ease/src/RCS/Makefile,v 2.1 1990/01/30 13:54:13 jeff Exp barnett $
  78.   #
  79.   #    $Log: Makefile,v $
  80.   # Revision 2.1  1990/01/30  13:54:13  jeff
  81.   # Updated for release 2.1 Aplha.
  82.   #
  83. --- 1,11 ----
  84.   # Makefile for Ease Translator (et).
  85.   #
  86. ! #    $Header: /home/kreskin/u0/barnett/Src/Ease/ease/src/RCS/Makefile,v 3.1 1991/02/25 22:09:52 barnett Exp $
  87.   #
  88.   #    $Log: Makefile,v $
  89. + # Revision 3.1  1991/02/25  22:09:52  barnett
  90. + # Fixed some portability problems
  91. + #
  92.   # Revision 2.1  1990/01/30  13:54:13  jeff
  93.   # Updated for release 2.1 Aplha.
  94.   #
  95. ***************
  96. *** 26,41 ****
  97.   OWNER = root
  98.   GROUP = staff
  99.   MODE = 755
  100.   #INSTALL = install -c -m ${MODE} -o ${OWNER} -g ${GROUP}
  101.   INSTALL=cp
  102. ! # define this for grammar debugging
  103.   #DEFS =-DYYDEBUG
  104. ! DEFS =
  105. ! # I had strange errors happen when I use SunOS Optimizer.....
  106. ! # In particular, with SunOS 4.0.3, Sparc, and -O (-O2)....
  107. ! # Maybe you better not use -O with SunOS
  108. ! CFLAGS = -g  ${DEFS} ${INCLUDE}
  109. ! #CFLAGS = -O ${DEFS} ${INCLUDE}
  110.   
  111.   LP = lpr
  112.   LPFLAGS = -J"Ease Source"
  113. --- 29,50 ----
  114.   OWNER = root
  115.   GROUP = staff
  116.   MODE = 755
  117. + # Some systems don't have a working version of install
  118.   #INSTALL = install -c -m ${MODE} -o ${OWNER} -g ${GROUP}
  119.   INSTALL=cp
  120. ! # Special Debug flags
  121. ! # select this one to debug the grammar
  122.   #DEFS =-DYYDEBUG
  123. ! # The following are used with the SunOS malloc() debug package.
  124. ! #DEFS = -DMALLOC_DEBUG    #  Part of the SunOS malloc package
  125. ! #LIBS = /usr/lib/debug/malloc.o -ll
  126. ! #CFLAGS = -g  ${DEFS} ${INCLUDE}
  127. ! #
  128. ! # Normally, You will want the selections below 
  129. ! DEFS = 
  130. ! LIBS = -ll
  131. ! CFLAGS = -O ${DEFS} ${INCLUDE}
  132.   
  133.   LP = lpr
  134.   LPFLAGS = -J"Ease Source"
  135. ***************
  136. *** 51,57 ****
  137.   all: et
  138.   
  139.   et: ${OBJ}
  140. !     cc ${CFLAGS} -o et ${OBJ} -ll
  141.   
  142.   clean: FRC
  143.       rm -f et *.o lexan.c parser.c y.output yacc.acts yacc.tmp \
  144. --- 60,66 ----
  145.   all: et
  146.   
  147.   et: ${OBJ}
  148. !     cc ${CFLAGS} -o et ${OBJ} ${LIBS}
  149.   
  150.   clean: FRC
  151.       rm -f et *.o lexan.c parser.c y.output yacc.acts yacc.tmp \
  152. diff -c -r ../3.0/src/fixstrings.h ./src/fixstrings.h
  153. *** ../3.0/src/fixstrings.h    Mon Feb 25 17:17:52 1991
  154. --- ./src/fixstrings.h    Mon Feb 25 17:35:01 1991
  155. ***************
  156. *** 1,15 ****
  157.   /*
  158. !  * $Revision: 2.1 $
  159. !  * Check-in $Date: 90/01/30 14:28:33 $
  160.    * $State: Exp $
  161.    *
  162. !  * $Author: jeff $
  163.    *
  164. !  * $Log:    /isis/usr2/share/src/local/tc/ease/src/RCS/fixstrings.h,v $
  165. !  * Version 2.1  90/01/30  14:28:33  jeff
  166.    * Bring RCS version number in line with netwide version 2.1.  No code
  167.    * changes.
  168. !  * 
  169.    * Revision 2.0  88/06/15  14:41:57  root
  170.    * Baseline release for net posting. ADR.
  171.    */
  172. --- 1,18 ----
  173.   /*
  174. !  * $Revision: 3.1 $
  175. !  * Check-in $Date: 1991/02/25 22:09:52 $
  176.    * $State: Exp $
  177.    *
  178. !  * $Author: barnett $
  179.    *
  180. !  * $Log: fixstrings.h,v $
  181. !  * Revision 3.1  1991/02/25  22:09:52  barnett
  182. !  * Fixed some portability problems
  183. !  *
  184. !  * Revision 2.1  1990/01/30  14:28:33  jeff
  185.    * Bring RCS version number in line with netwide version 2.1.  No code
  186.    * changes.
  187. !  *
  188.    * Revision 2.0  88/06/15  14:41:57  root
  189.    * Baseline release for net posting. ADR.
  190.    */
  191. ***************
  192. *** 26,28 ****
  193. --- 29,35 ----
  194.   #define strlen    Xstrlen
  195.   #define index    Xindex
  196.   #define rindex    Xrindex
  197. + extern char *Xstrcpy();
  198. + extern char *Xindex();
  199. + extern char *Xstrcat();
  200. diff -c -r ../3.0/src/idman.c ./src/idman.c
  201. *** ../3.0/src/idman.c    Mon Feb 25 17:18:32 1991
  202. --- ./src/idman.c    Mon Feb 25 17:36:09 1991
  203. ***************
  204. *** 1,6 ****
  205.   #ifdef FLUKE
  206.   # ifndef LINT
  207. !     static char RCSid[] = "@(#)FLUKE  $Header: /tmp_mnt/home/kreskin/u0/barnett/Src/Ease/ease/src/RCS/idman.c,v 3.0 1991/02/22 18:50:27 barnett Exp $";
  208.   # endif LINT
  209.   #endif FLUKE
  210.   
  211. --- 1,6 ----
  212.   #ifdef FLUKE
  213.   # ifndef LINT
  214. !     static char RCSid[] = "@(#)FLUKE  $Header: /home/kreskin/u0/barnett/Src/Ease/ease/src/RCS/idman.c,v 3.1 1991/02/25 22:09:52 barnett Exp $";
  215.   # endif LINT
  216.   #endif FLUKE
  217.   
  218. ***************
  219. *** 18,23 ****
  220. --- 18,26 ----
  221.    *    All rights reserved.
  222.    *
  223.    * $Log: idman.c,v $
  224. +  * Revision 3.1  1991/02/25  22:09:52  barnett
  225. +  * Fixed some portability problems
  226. +  *
  227.    * Revision 3.0  1991/02/22  18:50:27  barnett
  228.    * Added support for HP/UX and IDA sendmail.
  229.    *
  230. ***************
  231. *** 38,43 ****
  232. --- 41,47 ----
  233.             ErrorReport (),
  234.             PrintWarning (),
  235.             PrintError ();
  236. + extern char *      malloc ();
  237.   
  238.   
  239.   char    IDused[] = "                          "; /* 26 blanks */
  240. diff -c -r ../3.0/src/lexan.l ./src/lexan.l
  241. *** ../3.0/src/lexan.l    Mon Feb 25 17:18:47 1991
  242. --- ./src/lexan.l    Mon Feb 25 17:36:31 1991
  243. ***************
  244. *** 2,8 ****
  245.   
  246.   #ifdef FLUKE
  247.   # ifndef LINT
  248. !     static char RCSid[] = "@(#)FLUKE  $Header: /tmp_mnt/home/kreskin/u0/barnett/Src/Ease/ease/src/RCS/lexan.l,v 3.0 1991/02/22 18:50:27 barnett Exp $";
  249.   # endif LINT
  250.   #endif FLUKE
  251.   
  252. --- 2,8 ----
  253.   
  254.   #ifdef FLUKE
  255.   # ifndef LINT
  256. !     static char RCSid[] = "@(#)FLUKE  $Header: /home/kreskin/u0/barnett/Src/Ease/ease/src/RCS/lexan.l,v 3.1 1991/02/25 22:09:52 barnett Exp $";
  257.   # endif LINT
  258.   #endif FLUKE
  259.   
  260. ***************
  261. *** 23,28 ****
  262. --- 23,31 ----
  263.    *    All rights reserved.
  264.    *
  265.    * $Log: lexan.l,v $
  266. +  * Revision 3.1  1991/02/25  22:09:52  barnett
  267. +  * Fixed some portability problems
  268. +  *
  269.    * Revision 3.0  1991/02/22  18:50:27  barnett
  270.    * Added support for HP/UX and IDA sendmail.
  271.    *
  272. ***************
  273. *** 54,59 ****
  274. --- 57,64 ----
  275.   extern struct he *LookupSymbol ();
  276.   extern void      ErrorReport ();
  277.   extern void      yymark();
  278. + extern void      PrintError();
  279. + extern char *      malloc ();
  280.   
  281.   int  Lcount;                /* line counter            */
  282.   char FNbuf[MaxFN];            /* file name buffer        */
  283. ***************
  284. *** 68,74 ****
  285.   #undef input
  286.   # define input() (((yytchar=yychar=yysptr>yysbuf?U(*--yysptr):Getc(yyin,yyout))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar)
  287.   
  288. ! char
  289.   Getc (yyin, yyout)
  290.       FILE *yyin, *yyout;
  291.   {
  292. --- 73,79 ----
  293.   #undef input
  294.   # define input() (((yytchar=yychar=yysptr>yysbuf?U(*--yysptr):Getc(yyin,yyout))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar)
  295.   
  296. ! int
  297.   Getc (yyin, yyout)
  298.       FILE *yyin, *yyout;
  299.   {
  300. ***************
  301. *** 88,94 ****
  302.       if (c == '\n') {
  303.           pc = linbuf;
  304.           if (fgets(linbuf, BUFSIZ, yyin) == NULL)
  305. !             *pc = EOF;
  306.           else
  307.               /* echo input as comment (except cpp comments) */
  308.               if (EchoInputAsComments) {
  309. --- 93,99 ----
  310.       if (c == '\n') {
  311.           pc = linbuf;
  312.           if (fgets(linbuf, BUFSIZ, yyin) == NULL)
  313. !             *pc = (char) EOF;
  314.           else
  315.               /* echo input as comment (except cpp comments) */
  316.               if (EchoInputAsComments) {
  317. ***************
  318. *** 96,102 ****
  319.                   (linbuf[0] == '#' ? "" : "# "), linbuf);
  320.               }
  321.       }
  322. !     return c;
  323.   }
  324.   
  325.   /*
  326. --- 101,107 ----
  327.                   (linbuf[0] == '#' ? "" : "# "), linbuf);
  328.               }
  329.       }
  330. !      return (c == (char) EOF) ? EOF : c;
  331.   }
  332.   
  333.   /*
  334. diff -c -r ../3.0/src/main.c ./src/main.c
  335. *** ../3.0/src/main.c    Mon Feb 25 17:18:37 1991
  336. --- ./src/main.c    Mon Feb 25 17:36:15 1991
  337. ***************
  338. *** 1,6 ****
  339.   #ifdef FLUKE
  340.   # ifndef LINT
  341. !     static char RCSid[] = "@(#)FLUKE  $Header: /isis/usr2/share/src/local/tc/ease/src/RCS/main.c,v 2.2 90/05/07 11:14:02 jeff Exp $";
  342.   # endif LINT
  343.   #endif FLUKE
  344.   
  345. --- 1,6 ----
  346.   #ifdef FLUKE
  347.   # ifndef LINT
  348. !     static char RCSid[] = "@(#)FLUKE  $Header: /home/kreskin/u0/barnett/Src/Ease/ease/src/RCS/main.c,v 3.1 1991/02/25 22:09:52 barnett Exp $";
  349.   # endif LINT
  350.   #endif FLUKE
  351.   
  352. ***************
  353. *** 16,26 ****
  354.    *
  355.    *    All rights reserved.
  356.    *
  357. !  * $Log:    /isis/usr2/share/src/local/tc/ease/src/RCS/main.c,v $
  358. !  * Version 2.2  90/05/07  11:14:02  jeff
  359.    * Add support for the "-q" flag which controls whether input lines
  360.    * are passed through as comments in the output stream.
  361. !  * 
  362.    * Version 2.1  90/01/30  15:37:16  jeff
  363.    * Filter input file through cpp before processing it.
  364.    * 
  365. --- 16,29 ----
  366.    *
  367.    *    All rights reserved.
  368.    *
  369. !  * $Log: main.c,v $
  370. !  * Revision 3.1  1991/02/25  22:09:52  barnett
  371. !  * Fixed some portability problems
  372. !  *
  373. !  * Revision 2.2  1990/05/07  11:14:02  jeff
  374.    * Add support for the "-q" flag which controls whether input lines
  375.    * are passed through as comments in the output stream.
  376. !  *
  377.    * Version 2.1  90/01/30  15:37:16  jeff
  378.    * Filter input file through cpp before processing it.
  379.    * 
  380. ***************
  381. *** 45,50 ****
  382. --- 48,57 ----
  383.   #include "fixstrings.h"
  384.   #include <stdio.h>
  385.   #include <ctype.h>
  386. + #ifdef MALLOC_DEBUG
  387. + extern int malloc_debug();
  388. + extern int malloc_verify();
  389. + #endif /* MALLOC_DEBUG */
  390.   
  391.   extern FILE *DIAGf;            /* diagnostic file */
  392.   char *infile = 0;            /* input file name */
  393. ***************
  394. *** 83,88 ****
  395. --- 90,98 ----
  396.   int argc;        /* argument count for "et"  */
  397.   char *argv[];        /* argument vector for "et" */
  398.   {
  399. + #ifdef MALLOC_DEBUG
  400. +         malloc_debug(1);
  401. + #endif MALLOC_DEBUG
  402.       InitError ();            /* initialize error conditions */
  403.       InitSymbolTable ();        /* initialize the symbol table */
  404.       PreLoad ();            /* preload special identifiers */
  405. ***************
  406. *** 131,137 ****
  407.   register int   margc;        /* argument count  */
  408.   register char **margv;        /* argument vector */
  409.   {
  410. -      register char  **argp;
  411.        int    cppflags = 0;
  412.        int    otherflags = 0;
  413.        int arg;
  414. --- 141,146 ----
  415. ***************
  416. *** 184,189 ****
  417. --- 193,200 ----
  418.       printf ("##           TO THIS FILE WILL DISAPPEAR THE     ##\n");
  419.       printf ("##           NEXT TIME THAT EASE IS RUN.         ##\n");
  420.       printf ("##                                               ##\n");
  421. +     printf ("##           $Revision: 3.1 $                    ##\n");
  422. +     printf ("##                                               ##\n");
  423.       printf ("###################################################\n");
  424.   }
  425.   
  426. ***************
  427. *** 209,215 ****
  428.       i+=strlen(*argp) + 1;
  429.       if ( ! (cmd = (char *) calloc(i + sizeof CPP, sizeof(char))))
  430.         return -1;    /* no room */
  431. !     (void *) strcpy(cmd,CPP);
  432.       for (argp = argv; *++argp; )
  433.         if (**argp == '-' &&
  434.         index(CPPARGS, (*argp)[1]))
  435. --- 220,226 ----
  436.       i+=strlen(*argp) + 1;
  437.       if ( ! (cmd = (char *) calloc(i + sizeof CPP, sizeof(char))))
  438.         return -1;    /* no room */
  439. !     (void ) strcpy(cmd,CPP);
  440.       for (argp = argv; *++argp; )
  441.         if (**argp == '-' &&
  442.         index(CPPARGS, (*argp)[1]))
  443. diff -c -r ../3.0/src/parser.y ./src/parser.y
  444. *** ../3.0/src/parser.y    Mon Feb 25 17:18:52 1991
  445. --- ./src/parser.y    Mon Feb 25 17:36:35 1991
  446. ***************
  447. *** 1,7 ****
  448.   %{
  449.   #ifdef FLUKE
  450.   # ifndef LINT
  451. !     static char RCSid[] = "@(#)FLUKE  $Header: /tmp_mnt/home/kreskin/u0/barnett/Src/Ease/ease/src/RCS/parser.y,v 3.0 1991/02/22 18:50:27 barnett Exp $";
  452.   # endif LINT
  453.   #endif FLUKE
  454.   
  455. --- 1,7 ----
  456.   %{
  457.   #ifdef FLUKE
  458.   # ifndef LINT
  459. !     static char RCSid[] = "@(#)FLUKE  $Header: /home/kreskin/u0/barnett/Src/Ease/ease/src/RCS/parser.y,v 3.1 1991/02/25 22:09:52 barnett Exp $";
  460.   # endif LINT
  461.   #endif FLUKE
  462.   
  463. ***************
  464. *** 22,27 ****
  465. --- 22,30 ----
  466.    *    All rights reserved.
  467.    *
  468.    * $Log: parser.y,v $
  469. +  * Revision 3.1  1991/02/25  22:09:52  barnett
  470. +  * Fixed some portability problems
  471. +  *
  472.    * Revision 3.0  1991/02/22  18:50:27  barnett
  473.    * Added support for HP/UX and IDA sendmail.
  474.    *
  475. ***************
  476. *** 58,64 ****
  477.   extern void       AssignType ();
  478.   extern void       RemoveSymbol ();
  479.   extern void       yyerror ();
  480.   extern short RMatch;        /* ruleset match flag               */
  481.   
  482.   char *Cbuf = " ";        /* character buffer                 */
  483. --- 61,66 ----
  484. ***************
  485. *** 71,76 ****
  486. --- 73,90 ----
  487.   extern int yychar;
  488.   extern int    yydebug;
  489.   
  490. + static void    
  491. + Free( ptr )
  492. + char *ptr;
  493. +   {
  494. +       if (ptr == (char *)0) {
  495. + /*      fprintf(stderr,"Freeing a null pointer\n"); */
  496. +       } else {
  497. +       if (free(ptr) < 0 ) {
  498. +           fprintf(stderr,"Free() returned an error\n");
  499. +       }
  500. +       }
  501. +   };
  502.   static char *
  503.   yydisplay(ch)
  504.        register int ch;
  505. ***************
  506. *** 243,249 ****
  507.               }
  508.           |    strval SCONST {
  509.                   $$ = ListAppend ($1, $2, (char *) NULL);
  510. !                 free ($1);
  511.               }
  512.           ;
  513.   
  514. --- 257,263 ----
  515.               }
  516.           |    strval SCONST {
  517.                   $$ = ListAppend ($1, $2, (char *) NULL);
  518. !                 Free ($1);
  519.               }
  520.           ;
  521.   
  522. ***************
  523. *** 250,262 ****
  524.   /* conval specifies what can be in a concat() function */
  525.   conval        :    strval COMMA ifcon {
  526.                   $$ = ListAppend ($1, $3, (char *) NULL);
  527. !                 free ($1);
  528. !                 free ($3);
  529.               }
  530.           |    ifcon COMMA strval {
  531.                   $$ = ListAppend ($1, $3, (char *) NULL);
  532. !                 free ($1);
  533. !                 free ($3);
  534.               }
  535.           |    ifcon {
  536.                   $$ = $1;
  537. --- 264,276 ----
  538.   /* conval specifies what can be in a concat() function */
  539.   conval        :    strval COMMA ifcon {
  540.                   $$ = ListAppend ($1, $3, (char *) NULL);
  541. !                 Free ($1);
  542. !                 Free ($3);
  543.               }
  544.           |    ifcon COMMA strval {
  545.                   $$ = ListAppend ($1, $3, (char *) NULL);
  546. !                 Free ($1);
  547. !                 Free ($3);
  548.               }
  549.           |    ifcon {
  550.                   $$ = $1;
  551. ***************
  552. *** 274,281 ****
  553.   ifres        :    mval elseres {
  554.                   if ($2 != NULL) {
  555.                       $$ = ListAppend ($1, $2, "$|");
  556. !                     free ($1);
  557. !                     free ($2);
  558.                   } else
  559.                       $$ = $1;
  560.               }
  561. --- 288,295 ----
  562.   ifres        :    mval elseres {
  563.                   if ($2 != NULL) {
  564.                       $$ = ListAppend ($1, $2, "$|");
  565. !                     Free ($1);
  566. !                     Free ($2);
  567.                   } else
  568.                       $$ = $1;
  569.               }
  570. ***************
  571. *** 335,347 ****
  572.               }
  573.           |    namelist COMMA IDENT {
  574.                   $$ = ListAppend ($1, $3->psb, " ");
  575. !                 free ($1);
  576.                   RemoveSymbol ($3);
  577.               }
  578.           |    namelist COMMA strval {
  579.                   $$ = ListAppend ($1, $3, " ");
  580. !                 free ($1);
  581. !                 free ($3);
  582.               }
  583.           ;
  584.   
  585. --- 349,361 ----
  586.               }
  587.           |    namelist COMMA IDENT {
  588.                   $$ = ListAppend ($1, $3->psb, " ");
  589. !                 Free ($1);
  590.                   RemoveSymbol ($3);
  591.               }
  592.           |    namelist COMMA strval {
  593.                   $$ = ListAppend ($1, $3, " ");
  594. !                 Free ($1);
  595. !                 Free ($3);
  596.               }
  597.           ;
  598.   
  599. ***************
  600. *** 518,524 ****
  601.           |    tlist LBRACE IDENT idlist RBRACE SEMI {
  602.                   EmitDef (def_trusted, (struct he *) NULL, 
  603.                        ListAppend ($3->psb, $4, " "), (char *) NULL);
  604. !                 free ($4);
  605.                   RemoveSymbol ($3);
  606.               }
  607.           |    tlist LBRACE RBRACE SEMI
  608. --- 532,538 ----
  609.           |    tlist LBRACE IDENT idlist RBRACE SEMI {
  610.                   EmitDef (def_trusted, (struct he *) NULL, 
  611.                        ListAppend ($3->psb, $4, " "), (char *) NULL);
  612. !                 Free ($4); /* Gets a Null pointer */
  613.                   RemoveSymbol ($3);
  614.               }
  615.           |    tlist LBRACE RBRACE SEMI
  616. ***************
  617. *** 557,563 ****
  618.               }
  619.           |    mflags COMMA flagid {
  620.                   $$ = ListAppend ($1, ConvFlg($3), (char *) NULL);
  621. !                 free ($1);
  622.               }
  623.           ;
  624.   
  625. --- 571,577 ----
  626.               }
  627.           |    mflags COMMA flagid {
  628.                   $$ = ListAppend ($1, ConvFlg($3), (char *) NULL);
  629. !                 Free ($1);
  630.               }
  631.           ;
  632.   
  633. ***************
  634. *** 667,674 ****
  635.   
  636.   dlist        :    LPAREN strval COMMA catstringlist RPAREN {
  637.                   $$ = ListAppend ($2, MacScan ($4), " ");
  638. !                 free ($2);
  639. !                 free ($4);
  640.               }
  641.           |    LPAREN error RPAREN {
  642.                   $$ = NULL;
  643. --- 681,688 ----
  644.   
  645.   dlist        :    LPAREN strval COMMA catstringlist RPAREN {
  646.                   $$ = ListAppend ($2, MacScan ($4), " ");
  647. !                 Free ($2);
  648. !                 Free ($4);
  649.               }
  650.           |    LPAREN error RPAREN {
  651.                   $$ = NULL;
  652. ***************
  653. *** 680,686 ****
  654.               }
  655.           |    catstring COMMA catstringlist {
  656.                     $$ = ListAppend( $1, $3, (char *) NULL);
  657. !                   free($1);
  658.               }
  659.   catstring    :    SCONST {
  660.                   $$ = $1;
  661. --- 694,700 ----
  662.               }
  663.           |    catstring COMMA catstringlist {
  664.                     $$ = ListAppend( $1, $3, (char *) NULL);
  665. !                   Free($1);
  666.               }
  667.   catstring    :    SCONST {
  668.                   $$ = $1;
  669. ***************
  670. *** 710,723 ****
  671.               }
  672.           |    mdefs COMMA mtdef {
  673.                   $$ = ListAppend ($1, $3, ", ");
  674. !                 free ($1);
  675. !                 free ($3);
  676.               }
  677.           ;    
  678.   
  679.   mtdef        :    mvar ASGN mval {
  680.                   $$ = ListAppend (ConvMat ($1), MacScan ($3), "=");
  681. !                 free ($3);
  682.               }
  683.           |    MFLAGS ASGN LBRACE mflags RBRACE {
  684.                   $$ = ListAppend (ConvMat (mat_flags), $4, "=");
  685. --- 724,737 ----
  686.               }
  687.           |    mdefs COMMA mtdef {
  688.                   $$ = ListAppend ($1, $3, ", ");
  689. !                 Free ($1);
  690. !                 Free ($3);
  691.               }
  692.           ;    
  693.   
  694.   mtdef        :    mvar ASGN mval {
  695.                   $$ = ListAppend (ConvMat ($1), MacScan ($3), "=");
  696. !                 Free ($3);
  697.               }
  698.           |    MFLAGS ASGN LBRACE mflags RBRACE {
  699.                   $$ = ListAppend (ConvMat (mat_flags), $4, "=");
  700. ***************
  701. *** 730,737 ****
  702.                    Tsb = ListAppend (ConvMat(mat_sender), CheckRS ($3), "="),
  703.                    Tsb1 = ListAppend ("/", CheckRS ($5), (char *) NULL),
  704.                            (char *) NULL);
  705. !                 free (Tsb);
  706. !                 free (Tsb1);
  707.               }
  708.           |    MRECIPIENT ASGN IDENT {
  709.                   $$ = ListAppend (ConvMat (mat_recipient), CheckRS ($3), "=");
  710. --- 744,751 ----
  711.                    Tsb = ListAppend (ConvMat(mat_sender), CheckRS ($3), "="),
  712.                    Tsb1 = ListAppend ("/", CheckRS ($5), (char *) NULL),
  713.                            (char *) NULL);
  714. !                 Free (Tsb);
  715. !                 Free (Tsb1);
  716.               }
  717.           |    MRECIPIENT ASGN IDENT {
  718.                   $$ = ListAppend (ConvMat (mat_recipient), CheckRS ($3), "=");
  719. ***************
  720. *** 741,748 ****
  721.                    Tsb = ListAppend (ConvMat(mat_recipient), CheckRS ($3), "="),
  722.                    Tsb1 = ListAppend ("/", CheckRS ($5), (char *) NULL),
  723.                            (char *) NULL);
  724. !                 free (Tsb);
  725. !                 free (Tsb1);
  726.               }
  727.           |    error {
  728.                   $$ = NULL;
  729. --- 755,762 ----
  730.                    Tsb = ListAppend (ConvMat(mat_recipient), CheckRS ($3), "="),
  731.                    Tsb1 = ListAppend ("/", CheckRS ($5), (char *) NULL),
  732.                            (char *) NULL);
  733. !                 Free (Tsb);
  734. !                 Free (Tsb1);
  735.               }
  736.           |    error {
  737.                   $$ = NULL;
  738. ***************
  739. *** 781,788 ****
  740.           |    ruledefs IF LPAREN matchaddr RPAREN actionstmt {
  741.                   EmitDef (def_ruleset, (struct he *) NULL, 
  742.                        ListAppend ($4, $6, "\t"), (char *) NULL);
  743. !             free ($4);
  744. !             free ($6);
  745.               }
  746.                   |     ruledefs ASM LPAREN SCONST RPAREN SEMI {
  747.                     printf("%s\n",$4);
  748. --- 795,802 ----
  749.           |    ruledefs IF LPAREN matchaddr RPAREN actionstmt {
  750.                   EmitDef (def_ruleset, (struct he *) NULL, 
  751.                        ListAppend ($4, $6, "\t"), (char *) NULL);
  752. !             Free ($4);
  753. !             Free ($6);
  754.               }
  755.                   |     ruledefs ASM LPAREN SCONST RPAREN SEMI {
  756.                     printf("%s\n",$4);
  757. ***************
  758. *** 797,803 ****
  759.               }
  760.           |    matchaddr matchtok {
  761.                   $$ = ListAppend ($1, $2, (char *) NULL);
  762. !                 free ($1);
  763.               }
  764.           |    error {
  765.                   $$ = NULL;
  766. --- 811,817 ----
  767.               }
  768.           |    matchaddr matchtok {
  769.                   $$ = ListAppend ($1, $2, (char *) NULL);
  770. !                 Free ($1); /* NULL */
  771.               }
  772.           |    error {
  773.                   $$ = NULL;
  774. ***************
  775. *** 820,826 ****
  776.               }
  777.                   |       YPALIAS LPAREN matchtok RPAREN {
  778.                    $$ = ListAppend("${",$3,(char *) NULL);
  779. ! /*             free ($3); */
  780.           }
  781.                   |       YPPASSWD LPAREN matchtok RPAREN {
  782.                    $$ = ListAppend("$\"",$3,(char *) NULL);
  783. --- 834,840 ----
  784.               }
  785.                   |       YPALIAS LPAREN matchtok RPAREN {
  786.                    $$ = ListAppend("${",$3,(char *) NULL);
  787. ! /*             Free ($3); */
  788.           }
  789.                   |       YPPASSWD LPAREN matchtok RPAREN {
  790.                    $$ = ListAppend("$\"",$3,(char *) NULL);
  791. ***************
  792. *** 832,838 ****
  793.   
  794.   actionstmt    :    action LPAREN rwaddr RPAREN SEMI {
  795.                   $$ = ListAppend ($1, $3, (char *) NULL);
  796. !                 free ($3);
  797.               }
  798.           |    RESOLVE LPAREN resolution RPAREN SEMI {
  799.                   $$ = $3;
  800. --- 846,852 ----
  801.   
  802.   actionstmt    :    action LPAREN rwaddr RPAREN SEMI {
  803.                   $$ = ListAppend ($1, $3, (char *) NULL);
  804. !                 Free ($3);
  805.               }
  806.           |    RESOLVE LPAREN resolution RPAREN SEMI {
  807.                   $$ = $3;
  808. ***************
  809. *** 859,871 ****
  810.               }
  811.           |    rwaddr rwtok {
  812.                   $$ = ListAppend ($1, $2, (char *) NULL);
  813. !                 free ($1);
  814.               }
  815.           |    rwaddr IDENT LPAREN rwaddr RPAREN {
  816.                   $$ = ListAppend ($1, (Tsb = MakeRSCall ($2, $4)), (char *) NULL);
  817. !                 free ($1);
  818. !                 free ($4);
  819. !                 free (Tsb);
  820.               }
  821.           |    error {
  822.                   $$ = NULL;
  823. --- 873,885 ----
  824.               }
  825.           |    rwaddr rwtok {
  826.                   $$ = ListAppend ($1, $2, (char *) NULL);
  827. !                 Free ($1);    /* NULL */
  828.               }
  829.           |    rwaddr IDENT LPAREN rwaddr RPAREN {
  830.                   $$ = ListAppend ($1, (Tsb = MakeRSCall ($2, $4)), (char *) NULL);
  831. !                 Free ($1);    /* NULL */
  832. !                 Free ($4);
  833. !                 Free (Tsb);
  834.               }
  835.           |    error {
  836.                   $$ = NULL;
  837. ***************
  838. *** 892,901 ****
  839.                                   (char *)NULL),
  840.                           Tsb1 = ListAppend("$:", $6, "$)" ),
  841.                           (char *) NULL);
  842. !                 free (Tsb);
  843. !                 free (Tsb1);
  844. !                 free ($3);
  845. !                 free ($6);
  846.               }
  847.           |    reftok {
  848.                   $$ = $1;
  849. --- 906,915 ----
  850.                                   (char *)NULL),
  851.                           Tsb1 = ListAppend("$:", $6, "$)" ),
  852.                           (char *) NULL);
  853. !                 Free (Tsb);
  854. !                 Free (Tsb1);
  855. !                 Free ($3);
  856. !                 Free ($6);
  857.               }
  858.           |    reftok {
  859.                   $$ = $1;
  860. ***************
  861. *** 908,916 ****
  862.                   $$ = ListAppend(Tsb = ListAppend ("${", (char *)Cbuf, (char *)NULL),
  863.                           Tsb1 = ListAppend ($5, "$}", (char *) NULL),
  864.                            (char *) NULL);
  865. !                 free (Tsb);
  866. !                 free (Tsb1);
  867. !                 free ($5);
  868.               }
  869.   
  870.                   |    PROGRAM LPAREN IDENT COMMA rwaddr RPAREN {
  871. --- 922,930 ----
  872.                   $$ = ListAppend(Tsb = ListAppend ("${", (char *)Cbuf, (char *)NULL),
  873.                           Tsb1 = ListAppend ($5, "$}", (char *) NULL),
  874.                            (char *) NULL);
  875. !                 Free (Tsb);
  876. !                 Free (Tsb1);
  877. !                 Free ($5);
  878.               }
  879.   
  880.                   |    PROGRAM LPAREN IDENT COMMA rwaddr RPAREN {
  881. ***************
  882. *** 918,931 ****
  883.                   $$ = ListAppend(Tsb = ListAppend ("$<", (char *)Cbuf, (char *)NULL),
  884.                           Tsb1 = ListAppend ($5, "", (char *) NULL),
  885.                            (char *) NULL);
  886. !                 free (Tsb);
  887. !                 free (Tsb1);
  888. !                 free ($5);
  889.               }
  890.   
  891.                   |    action LPAREN rwaddr RPAREN {
  892.                   $$ = ListAppend ($1, $3, (char *) NULL);
  893. !                 free ($3);
  894.               }
  895.           ;
  896.   
  897. --- 932,945 ----
  898.                   $$ = ListAppend(Tsb = ListAppend ("$<", (char *)Cbuf, (char *)NULL),
  899.                           Tsb1 = ListAppend ($5, "", (char *) NULL),
  900.                            (char *) NULL);
  901. !                 Free (Tsb);
  902. !                 Free (Tsb1);
  903. !                 Free ($5);
  904.               }
  905.   
  906.                   |    action LPAREN rwaddr RPAREN {
  907.                   $$ = ListAppend ($1, $3, (char *) NULL);
  908. !                 Free ($3);
  909.               }
  910.           ;
  911.   
  912. ***************
  913. *** 932,938 ****
  914.   
  915.   cantok        :    CANON LPAREN canval RPAREN {
  916.                   $$ = Bracket ($3, TRUE);
  917. !                 free ($3);
  918.               }
  919.   
  920.                   ;
  921. --- 946,952 ----
  922.   
  923.   cantok        :    CANON LPAREN canval RPAREN {
  924.                   $$ = Bracket ($3, TRUE);
  925. !                 Free ($3);
  926.               }
  927.   
  928.                   ;
  929. ***************
  930. *** 941,948 ****
  931.               }
  932.           |    canval canvaltok {
  933.                   $$ = ListAppend ($1, $2, (char *) NULL);
  934. !                 free ($1);
  935. !                 free ($2);
  936.               }
  937.           ;
  938.   
  939. --- 955,962 ----
  940.               }
  941.           |    canval canvaltok {
  942.                   $$ = ListAppend ($1, $2, (char *) NULL);
  943. !                 Free ($1);
  944. ! /*                Free ($2); */
  945.               }
  946.           ;
  947.   
  948. ***************
  949. *** 952,958 ****
  950.               }
  951.           |    SCONST {
  952.                   $$ = ListAppend (MacScan ($1), (char *) NULL, (char *) NULL);
  953. !                 free ($1);
  954.               }
  955.                   |    NEXT LPAREN RPAREN {    /* I Used next earlier, but now use default - because it is clearer syntax */
  956.                   $$ = "$:";
  957. --- 966,972 ----
  958.               }
  959.           |    SCONST {
  960.                   $$ = ListAppend (MacScan ($1), (char *) NULL, (char *) NULL);
  961. !                 Free ($1);
  962.               }
  963.                   |    NEXT LPAREN RPAREN {    /* I Used next earlier, but now use default - because it is clearer syntax */
  964.                   $$ = "$:";
  965. ***************
  966. *** 975,981 ****
  967.               }
  968.           |    HOSTNUM LPAREN reftok RPAREN {
  969.                   $$ = Bracket ($3, FALSE);
  970. !                 free ($3);
  971.               }
  972.           ;
  973.   
  974. --- 989,995 ----
  975.               }
  976.           |    HOSTNUM LPAREN reftok RPAREN {
  977.                   $$ = Bracket ($3, FALSE);
  978. !                 Free ($3);
  979.               }
  980.           ;
  981.   
  982. ***************
  983. *** 1023,1030 ****
  984.   
  985.   resolution    :    mailerspec COMMA route {
  986.                   $$ = ListAppend ($1, $3, (char *) NULL);
  987. !                 free ($1);
  988. !                 free ($3);
  989.               }
  990.           |    mailerspec {
  991.               $$ = $1;
  992. --- 1037,1044 ----
  993.   
  994.   resolution    :    mailerspec COMMA route {
  995.                   $$ = ListAppend ($1, $3, (char *) NULL);
  996. !                 Free ($1);
  997. !                 Free ($3);
  998.               }
  999.           |    mailerspec {
  1000.               $$ = $1;
  1001. ***************
  1002. *** 1042,1051 ****
  1003.   route        :    HOST LPAREN hword RPAREN COMMA userspec {
  1004.                   $$ = ListAppend (Tsb = ListAppend ("$@", $3, (char *) NULL),
  1005.                            $6, (char *) NULL);
  1006. !                 free (Tsb);
  1007.   
  1008.   
  1009. !                 free ($6);
  1010.               }
  1011.           |    userspec {
  1012.                   $$ = $1;
  1013. --- 1056,1065 ----
  1014.   route        :    HOST LPAREN hword RPAREN COMMA userspec {
  1015.                   $$ = ListAppend (Tsb = ListAppend ("$@", $3, (char *) NULL),
  1016.                            $6, (char *) NULL);
  1017. !                 Free (Tsb);
  1018.   
  1019.   
  1020. !                 Free ($6);
  1021.               }
  1022.           |    userspec {
  1023.                   $$ = $1;
  1024. ***************
  1025. *** 1057,1063 ****
  1026.               }
  1027.           |    HOSTNUM LPAREN reftok RPAREN {
  1028.                   $$ = Bracket ($3, FALSE);
  1029. !                 free ($3);
  1030.               }
  1031.           ;
  1032.   
  1033. --- 1071,1077 ----
  1034.               }
  1035.           |    HOSTNUM LPAREN reftok RPAREN {
  1036.                   $$ = Bracket ($3, FALSE);
  1037. !                 Free ($3);
  1038.               }
  1039.           ;
  1040.   
  1041. ***************
  1042. *** 1067,1083 ****
  1043.           |    hostid IDENT {
  1044.                   $$ = ListAppend ($1, $2->psb, (char *) NULL);
  1045.                   RemoveSymbol ($2);
  1046. !                 free ($1);
  1047.               }
  1048.           |    hostid rwtok {
  1049.                   $$ = ListAppend ($1, $2, (char *) NULL);
  1050. !                 free ($1);
  1051.               }
  1052.           ;
  1053.   
  1054.   userspec    :    USER LPAREN rwaddr RPAREN {
  1055.                   $$ = ListAppend ("$:", $3, (char *) NULL);
  1056. !                 free ($3);
  1057.               }
  1058.           ;
  1059.   
  1060. --- 1081,1097 ----
  1061.           |    hostid IDENT {
  1062.                   $$ = ListAppend ($1, $2->psb, (char *) NULL);
  1063.                   RemoveSymbol ($2);
  1064. !                 Free ($1);
  1065.               }
  1066.           |    hostid rwtok {
  1067.                   $$ = ListAppend ($1, $2, (char *) NULL);
  1068. !                 Free ($1);    /* NULL */
  1069.               }
  1070.           ;
  1071.   
  1072.   userspec    :    USER LPAREN rwaddr RPAREN {
  1073.                   $$ = ListAppend ("$:", $3, (char *) NULL);
  1074. !                 Free ($3);
  1075.               }
  1076.           ;
  1077.   
  1078. ***************
  1079. *** 1092,1098 ****
  1080.   fdefs        :    /* empty */
  1081.           |    fdefs IDENT idlist COLON ftype SEMI {
  1082.                   AssignType (ListAppend ($2->psb, $3, " "), $5);
  1083. !                 free ($3);
  1084.               }
  1085.           |    error SEMI {
  1086.                   yyerrok;
  1087. --- 1106,1112 ----
  1088.   fdefs        :    /* empty */
  1089.           |    fdefs IDENT idlist COLON ftype SEMI {
  1090.                   AssignType (ListAppend ($2->psb, $3, " "), $5);
  1091. !                 Free ($3);    /* NULL */
  1092.               }
  1093.           |    error SEMI {
  1094.                   yyerrok;
  1095. ***************
  1096. *** 1104,1110 ****
  1097.               }
  1098.           |    idlist COMMA IDENT {
  1099.                   $$ = ListAppend ($1, $3->psb, " ");
  1100. !                 free ($1);
  1101.               }
  1102.           ;
  1103.   
  1104. --- 1118,1124 ----
  1105.               }
  1106.           |    idlist COMMA IDENT {
  1107.                   $$ = ListAppend ($1, $3->psb, " ");
  1108. !                 Free ($1);
  1109.               }
  1110.           ;
  1111.   
  1112. diff -c -r ../3.0/src/strops.c ./src/strops.c
  1113. *** ../3.0/src/strops.c    Mon Feb 25 17:18:49 1991
  1114. --- ./src/strops.c    Mon Feb 25 17:36:32 1991
  1115. ***************
  1116. *** 1,6 ****
  1117.   #ifdef FLUKE
  1118.   # ifndef LINT
  1119. !     static char RCSid[] = "@(#)FLUKE  $Header: /tmp_mnt/home/kreskin/u0/barnett/Src/Ease/ease/src/RCS/strops.c,v 3.0 1991/02/22 18:50:27 barnett Exp $";
  1120.   # endif LINT
  1121.   #endif FLUKE
  1122.   
  1123. --- 1,6 ----
  1124.   #ifdef FLUKE
  1125.   # ifndef LINT
  1126. !     static char RCSid[] = "@(#)FLUKE  $Header: /home/kreskin/u0/barnett/Src/Ease/ease/src/RCS/strops.c,v 3.1 1991/02/25 22:09:52 barnett Exp $";
  1127.   # endif LINT
  1128.   #endif FLUKE
  1129.   
  1130. ***************
  1131. *** 18,23 ****
  1132. --- 18,26 ----
  1133.    *    All rights reserved.
  1134.    *
  1135.    * $Log: strops.c,v $
  1136. +  * Revision 3.1  1991/02/25  22:09:52  barnett
  1137. +  * Fixed some portability problems
  1138. +  *
  1139.    * Revision 3.0  1991/02/22  18:50:27  barnett
  1140.    * Added support for HP/UX and IDA sendmail.
  1141.    *
  1142. ***************
  1143. *** 42,47 ****
  1144. --- 45,51 ----
  1145.   extern void      FatalError (),
  1146.             PrintError (),
  1147.             ErrorReport ();
  1148. + extern char *      malloc ();
  1149.   
  1150.   short  Rformat = FALSE;            /* class read format flag      */
  1151.   static char   *Ptok   = "$  ";        /* positional token structure     */
  1152. ***************
  1153. *** 55,68 ****
  1154.    *
  1155.    *  Add the three new $%x, $%y, and $!x match operators that Sun introduced
  1156.    *  with release 3.0.
  1157. -  *
  1158. -  *  BUG (probably) - Sun has assigned a predefined meaning to the $y macro;
  1159. -  *  I imagine we will need to teach ease to avoid this letter.
  1160.    */
  1161. ! static char   *Hfield = "$%y";        /*    match in /etc/hosts */
  1162.   static char   *Mfield = "$% ";        /*    match in specified YP map */
  1163.   static char   *Nfield = "$! ";        /* no match in specified YP map */
  1164.   static char   *Mtest  = "$? ";        /* conditional macro test string  */
  1165.   
  1166.   
  1167. --- 59,68 ----
  1168.    *
  1169.    *  Add the three new $%x, $%y, and $!x match operators that Sun introduced
  1170.    *  with release 3.0.
  1171.    */
  1172.   static char   *Mfield = "$% ";        /*    match in specified YP map */
  1173.   static char   *Nfield = "$! ";        /* no match in specified YP map */
  1174.   static char   *Mtest  = "$? ";        /* conditional macro test string  */
  1175.   
  1176.   
  1177. ***************
  1178. *** 208,215 ****
  1179.       register char *searchptr;    /* string search pointer     */
  1180.       register char *bptr, *eptr;    /* macro begin and end pointers */
  1181.       char macname [MAXNAME];        /* macro name buffer        */
  1182. !     char s[11];            /* temp storage for warning below */
  1183. !     int    quote;            /* flag for detecting a quote() function */
  1184.   
  1185.       if ((searchptr = pstring) == NULL)
  1186.           return ((char *) NULL);
  1187. --- 208,214 ----
  1188.       register char *searchptr;    /* string search pointer     */
  1189.       register char *bptr, *eptr;    /* macro begin and end pointers */
  1190.       char macname [MAXNAME];        /* macro name buffer        */
  1191. !     int    quote = 0;            /* flag for detecting a quote() function */
  1192.   
  1193.       if ((searchptr = pstring) == NULL)
  1194.           return ((char *) NULL);
  1195. ***************
  1196. *** 230,236 ****
  1197.                   quote=0;
  1198.                   *searchptr++='!'; /* insert a quote */
  1199.                   /* insert the macro letter */
  1200. !                 *searchptr++ = MakeMac (LookupSymbol (macname), ID_MACRO);
  1201.                   /* now looking at quote(   */
  1202.                   /* must skip over everything until )}, and then rewrite
  1203.                      the rest of the macro */
  1204. --- 229,236 ----
  1205.                   quote=0;
  1206.                   *searchptr++='!'; /* insert a quote */
  1207.                   /* insert the macro letter */
  1208. !                 *searchptr++ = MakeMac (LookupSymbol (macname),
  1209. !                             (unsigned) ID_MACRO);
  1210.                   /* now looking at quote(   */
  1211.                   /* must skip over everything until )}, and then rewrite
  1212.                      the rest of the macro */
  1213. ***************
  1214. *** 244,250 ****
  1215.                     *bptr++ = *eptr;
  1216.                   while (*eptr++ != '\0');
  1217.               } else {
  1218. !                 *searchptr++ = MakeMac (LookupSymbol (macname), ID_MACRO);
  1219.                   bptr = eptr = searchptr;
  1220.                   while (*eptr++ != '}')    /* delete until end of {name} */
  1221.                     /* empty */ ;
  1222. --- 244,251 ----
  1223.                     *bptr++ = *eptr;
  1224.                   while (*eptr++ != '\0');
  1225.               } else {
  1226. !                 *searchptr++ = MakeMac (LookupSymbol (macname),
  1227. !                             (unsigned) ID_MACRO);
  1228.                   bptr = eptr = searchptr;
  1229.                   while (*eptr++ != '}')    /* delete until end of {name} */
  1230.                     /* empty */ ;
  1231. ***************
  1232. *** 259,265 ****
  1233.                   PrintError ("Invalid macro format: %s", searchptr + 1);
  1234.                   return ((char *) NULL);
  1235.               } 
  1236. !             *searchptr++ = MakeMac (LookupSymbol (macname), ID_MACRO);
  1237.               bptr = eptr = searchptr;
  1238.               while (isupper(*eptr))    /* delete old macro chars */
  1239.                   eptr++;
  1240. --- 260,267 ----
  1241.                   PrintError ("Invalid macro format: %s", searchptr + 1);
  1242.                   return ((char *) NULL);
  1243.               } 
  1244. !             *searchptr++ = MakeMac (LookupSymbol (macname),
  1245. !                         (unsigned) ID_MACRO);
  1246.               bptr = eptr = searchptr;
  1247.               while (isupper(*eptr))    /* delete old macro chars */
  1248.                   eptr++;
  1249. ***************
  1250. *** 336,342 ****
  1251.   {
  1252.       register char *res;    /* resultant conditional string             */
  1253.   
  1254. !     Mtest[2] = MakeMac (testmac, ID_MACRO);       /* get one-char macro rep */
  1255.       res = (char *) malloc (strlen (ifstring) + 6);
  1256.       if (res == NULL)
  1257.           FatalError ("System out of string space in MakeCond ()", (char *) NULL);
  1258. --- 338,344 ----
  1259.   {
  1260.       register char *res;    /* resultant conditional string             */
  1261.   
  1262. !     Mtest[2] = MakeMac (testmac, (unsigned) ID_MACRO); /* get one-char macro rep */
  1263.       res = (char *) malloc (strlen (ifstring) + 6);
  1264.       if (res == NULL)
  1265.           FatalError ("System out of string space in MakeCond ()", (char *) NULL);
  1266. ***************
  1267. *** 474,484 ****
  1268.                        *  a simple macro name for a YP map.
  1269.                        *  FLUKE jps 25-apr-86
  1270.                        */
  1271. !                     Nfield[2] = MakeMac (class, ID_MACRO);
  1272.                       return (Nfield);
  1273.                   } else {
  1274.                   Cfield[1] = '~';
  1275. !                 Cfield[2] = MakeMac (class, ID_CLASS);
  1276.                   return (Cfield);
  1277.                 }
  1278.                 }
  1279. --- 476,486 ----
  1280.                        *  a simple macro name for a YP map.
  1281.                        *  FLUKE jps 25-apr-86
  1282.                        */
  1283. !                     Nfield[2] = MakeMac (class, (unsigned) ID_MACRO);
  1284.                       return (Nfield);
  1285.                   } else {
  1286.                   Cfield[1] = '~';
  1287. !                 Cfield[2] = MakeMac (class, (unsigned) ID_CLASS);
  1288.                   return (Cfield);
  1289.                 }
  1290.                 }
  1291. ***************
  1292. *** 493,503 ****
  1293.                        *  a simple macro name for a YP map.
  1294.                        *  FLUKE jps 25-apr-86
  1295.                        */
  1296. !                     Mfield[2] = MakeMac (class, ID_MACRO);
  1297.                       return (Mfield);
  1298.                   } else {
  1299.                   Cfield[1] = '=';
  1300. !                 Cfield[2] = MakeMac (class, ID_CLASS);
  1301.                   return (Cfield);
  1302.                   }
  1303.                 }
  1304. --- 495,505 ----
  1305.                        *  a simple macro name for a YP map.
  1306.                        *  FLUKE jps 25-apr-86
  1307.                        */
  1308. !                     Mfield[2] = MakeMac (class, (unsigned) ID_MACRO);
  1309.                       return (Mfield);
  1310.                   } else {
  1311.                   Cfield[1] = '=';
  1312. !                 Cfield[2] = MakeMac (class, (unsigned) ID_CLASS);
  1313.                   return (Cfield);
  1314.                   }
  1315.                 }
  1316.  
  1317. --
  1318. Bruce G. Barnett    barnett@crd.ge.com    uunet!crdgw1!barnett
  1319.