home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-05-17 | 49.4 KB | 1,759 lines |
- This is the official Patch 2 for Ease 3
- It converts Ease 3.1 to Ease 3.2
-
- Fixes include
-
- Better support for System V machines
- Better support for machines with read-only text areas
- Better support for IDA sendmail databases
- Bug fixes
-
- Included is a better cfdiff and cfstrip shell scripts
-
- Install by going to the directory containing the sources of ease
- and typing
- patch -p <Patch2
-
-
- diff -c -r ../3.1/CONVERTING ./CONVERTING
- *** ../3.1/CONVERTING Thu May 16 12:49:42 1991
- --- ./CONVERTING Thu May 16 12:38:45 1991
- ***************
- *** 34,40 ****
- --- 34,45 ----
- HP/UX
- => cfc -i -CGUS
-
- + A/UX
- + => cfc -i -CUNI
-
- + CGI IRIS
- + => cfc -i -C FKSVN
- +
- Step 2. Convert the ease file to cf:
-
- % et <sendmail.ease >sendmail.cf
- ***************
- *** 49,63 ****
- -C XYZ flags.
-
- The remaining errors are either warnings or mistakes
- ! in the translation. NOTE: - some configuration files use macros
- ! that are not defined. For instance, Sun's sendmail.main.cf has
- ! an undefined D macro. Ultrix has several undefined macros, that if
- ! you define them, cause your sendmail to exhibit change behavior.
- ! These are warnings, and are perfectly fine. If you want to
- ! you can define the missing rulesets. Don't define the missing
- ! macros unless you examine the sendmail rules and see what happens with
- ! the change.
-
- So look at the warnings and errors, and repeat step 1 until you
- feel comfortable with the change.
-
- --- 54,112 ----
- -C XYZ flags.
-
- The remaining errors are either warnings or mistakes
- ! in the translation.
- ! Let's look at some examples:
-
- + line 1598: Warning: Ruleset not defined: RULESET_12
- +
- + This says there is a line that has
- + RULESET_12 = ruleset 12;
- +
- + Comment it out if you wish.
- +
- +
- + case 2)
- +
- + line 1598: Warning: Macro not defined: Y
- + or
- + line 1598: Warning: Class not defined: Y
- +
- + This is just a warning and is probably okay. There may be a rule that
- + does different actions if the macro is set or not. Example:
- +
- + if ( one_or_more ) /* add local domain */
- + next (concat ("$1<@",ifset (Y, "${Y}", "${m_sitename}"))>);
- +
- + If this bothers you, rewrite to rule to not need the Y macro:
- +
- + if ( one_or_more ) /* add local domain */
- + next ("$1<@${m_sitename}"))>);
- +
- + Do not define them, even to define them to be nothing!
- + An empty string is still defined, and may break your sendmail rules.
- +
- + case 3)
- +
- + line 88 near ";": Warning: Appending to previously defined class T.
- + This is okay. Sendmail allows you to define a class over several lines.
- + combine them into one line if you wish.
- +
- + case 4)
- +
- + line 1485: Warning: Mailer not defined: ERROR
- +
- + Ease treats upper and lower case letters as different.
- + Sendmail does not. Change the case to be consistent
- +
- + case 5)
- +
- + warning: Unknown option 'M' on line 387
- +
- + cfc found an unusual option. It tries to convert it into
- + an asm("...') string.
- +
- +
- + .....
- So look at the warnings and errors, and repeat step 1 until you
- feel comfortable with the change.
-
- ***************
- *** 77,85 ****
-
- set path = ( $cwd/bin $path );rehash;cfdiff /etc/sendmail.cf ./sendmail.cf
-
- ! You will see some differences in lines that have been split into
- ! two lines, and the "Ob" option is converted into the more
- ! verbose "Obackground" option. If there is any other difference,
- please send me a bug report, and see if you can make changes to your
- ease input file to match the original file. You may need the asm("")
- command.
- --- 126,162 ----
-
- set path = ( $cwd/bin $path );rehash;cfdiff /etc/sendmail.cf ./sendmail.cf
-
- ! You may see some differences. Examples:
- !
- ! < Odbackground
- ! ---
- ! > Odb
- !
- ! Okay: ease outputs the full name instead of the abbreviation
- !
- ! < Muucp, P=/usr/bin/uux, F=sDFhuU, S=13, R=23, M=100000,
- ! < A=uux - $h!rmail ($u)
- ! ---
- ! > Muucp, P=/usr/bin/uux, F=sDFhuU, S=13, R=23, M=100000, A=uux - $h!rmail ($u)
- !
- ! Okay: this is on two lines instead of one.
- !
- ! < CTuucp UUCP arpa ARPA bitnet BITNET csnet CSNET mailnet MAILNET decnet DECNET rscs RSCS
- ! ---
- ! > CTuucp UUCP arpa ARPA bitnet BITNET csnet CSNET mailnet
- ! > CTMAILNET decnet DECNET rscs RSCS
- !
- ! OKAY: this is just a different number of lines.
- !
- !
- ! Differences in the spaces in the rules)
- ! The syntax of sendmail specifies that there are tabs between the
- ! left hand side and the right hand side, and a tab between the right
- ! hand side and the comments.
- !
- ! Any spaces in the middle of the rules are cosmetic. Ignore differences.
- !
- ! If there is any other difference,
- please send me a bug report, and see if you can make changes to your
- ease input file to match the original file. You may need the asm("")
- command.
- diff -c -r ../3.1/INTRO ./INTRO
- *** ../3.1/INTRO Thu May 16 12:50:33 1991
- --- ./INTRO Thu May 16 12:38:46 1991
- ***************
- *** 71,88 ****
- output:
-
- Input Output
- ! a!b!c!d!user <@a.UUCP>!b!c!d!user
- user@a.uucp user<@a.uucp>
- bigvax::user user<@bigvax.DECNET>
- ! user%a.com@b.edu user%a.com<@b.edu>
- a!b!user@abc.edu a!b!user<@abc.edu>
- @a:user@b.com <@a>:user@b.com
-
- As you can see, the machine that will accept the message will be
- different depending on the address. Ruleset 3 must find the right
- machine, and also clean up any addresses if appropriate.
- It does it's work by looking for a pattern, and transforming the
- ! address when it matches the pattern.
-
- The cleaning up part can be confusing, but typically ruleset 3 calls
- other rules to do this. One rule is used to clean up addresses before
- --- 71,91 ----
- output:
-
- Input Output
- ! a!b!c!d!user <@a.UUCP>!b!c!d!user or
- ! b!c!d!user<@a.UUCP>
- user@a.uucp user<@a.uucp>
- bigvax::user user<@bigvax.DECNET>
- ! user%a.com@b.edu user%a.com<@b.edu> or - it you are agressive
- ! user<@a.com>
- a!b!user@abc.edu a!b!user<@abc.edu>
- @a:user@b.com <@a>:user@b.com
- + "Bruce" <barnett@local> barnett<@local>
-
- As you can see, the machine that will accept the message will be
- different depending on the address. Ruleset 3 must find the right
- machine, and also clean up any addresses if appropriate.
- It does it's work by looking for a pattern, and transforming the
- ! address when it matches the pattern.
-
- The cleaning up part can be confusing, but typically ruleset 3 calls
- other rules to do this. One rule is used to clean up addresses before
- diff -c -r ../3.1/Makefile ./Makefile
- *** ../3.1/Makefile Thu May 16 12:51:33 1991
- --- ./Makefile Thu May 16 12:43:04 1991
- ***************
- *** 1,6 ****
- ! # $Header: /home/kreskin/u0/barnett/Src/Ease/ease/RCS/Makefile,v 1.2 1991/02/25 22:07:29 barnett Exp $
- #
- # $Log: Makefile,v $
- # Revision 1.2 1991/02/25 22:07:29 barnett
- # Added RCS header, amd specified value for MAKE variable
- #
- --- 1,9 ----
- ! # $Header: /home/kreskin/u0/barnett/Src/ease/RCS/Makefile,v 3.2 1991/05/16 10:51:13 barnett Exp $
- #
- # $Log: Makefile,v $
- + # Revision 3.2 1991/05/16 10:51:13 barnett
- + # Fixed a few typos and added the MAKE variable
- + #
- # Revision 1.2 1991/02/25 22:07:29 barnett
- # Added RCS header, amd specified value for MAKE variable
- #
- ***************
- *** 19,24 ****
- --- 22,30 ----
- #ORIGINAL=/usr/lib/sendmail.subsidiary.cf
-
- # What arguments to cfc do you want for cfc (see the file CONVERTING)
- + # IDA
- + #CONVERT_FLAGS=-i
- + #SunOS Subsidiary
- CONVERT_FLAGS=-s -CV
-
- #what extenstion do you want for the manual pages?
- ***************
- *** 55,60 ****
- --- 61,68 ----
- cd src; ${MAKE} ${MFLAGS} $@
- cd cfc; ${MAKE} ${MFLAGS} $@
- cd utils; ${MAKE} ${MFLAGS} $@
- + /bin/rm all
- +
-
- debug: all sendmail.ease
- BD=${BINDIR};cd debug; ${MAKE} ${MFLAGS} BINDIR=$$BD $@
- diff -c -r ../3.1/README ./README
- *** ../3.1/README Thu May 16 12:49:45 1991
- --- ./README Thu May 16 12:38:20 1991
- ***************
- *** 1,6 ****
- README - Tue May 1 14:46:33 PDT 1990
-
- ! This is release 3.0 of the CFC and Ease programs.
-
- Ease is a compiler for sendmail configuration files. It reads a high-level
- mail configuration language and produces a sendmail.cf file. If you've ever
- --- 1,6 ----
- README - Tue May 1 14:46:33 PDT 1990
-
- ! This is release 3.2 of the CFC and Ease programs.
-
- Ease is a compiler for sendmail configuration files. It reads a high-level
- mail configuration language and produces a sendmail.cf file. If you've ever
- ***************
- *** 27,32 ****
- --- 27,38 ----
- Andrew Partan of the Corporation for Open Systems,
- Rich Salz of Bolt Beranak, and Newman.
-
- + Bugs/patches to Ease 3.0 have been sent in by:
- + bent@lccinc.UUCP (Ben Taylor)
- + "Jonathan I. Kamens" <jik@pit-manager.mit.edu>
- + Matt Heffron <heffron@falstaff.css.beckman.com>
- + William Roberts <liam@cs.qmw.ac.uk>
- + rainer@flyer.uni-duisburg.de (Rainer Bieniek)
- Cfc was written by Arnold D. Robbins, and has been enhanced by Bruce Barnett
- (see below).
-
- ***************
- *** 36,46 ****
-
- -----------------------------------------------------------
-
- ! Ease 3.0 and cfc Release Notes:
- Bruce Barnett barnett@crdgw1.ge.com
- ! February 1991
-
- ! This document describes Ease 3.0. This version was originally a
- modified version of the last official release of ease 2.1. I called it
- 2.1 Beta and sent it to several dozen people. I sent the patches to the authors
- of ease and cfc, but an updated version was never posted to the net.
- --- 42,52 ----
-
- -----------------------------------------------------------
-
- ! Ease 3.2 and cfc Release Notes:
- Bruce Barnett barnett@crdgw1.ge.com
- ! May 1991
-
- ! This document describes Ease 3.2. This version was originally a
- modified version of the last official release of ease 2.1. I called it
- 2.1 Beta and sent it to several dozen people. I sent the patches to the authors
- of ease and cfc, but an updated version was never posted to the net.
- ***************
- *** 48,55 ****
- the baton now.
-
- Since this is a major release, I decided to call it Ease 3.0
-
- ! The main feature of Ease/Cfc 3.0:
-
-
- I subjected the Cfc/Ease programs to a test suite
- --- 54,62 ----
- the baton now.
-
- Since this is a major release, I decided to call it Ease 3.0
- + Two updates have been release since then.
-
- ! The main feature of Ease/Cfc 3.2:
-
-
- I subjected the Cfc/Ease programs to a test suite
- ***************
- *** 70,80 ****
- langauge and feel confident that you won't break anything.
-
-
- ! Current status of Ease 3.0
- It will handle 100% of the standard Ultrix, SunOS, HP, and Berkeley
- ! versions of sendmail (I hope). It handles 99% of the IDA
- ! enhancement package. See the TODO file for problems.
-
- I don't plan to do any major work maintaining this package,
- but I will gladly accept bug fixes and enhancements.
-
- --- 77,89 ----
- langauge and feel confident that you won't break anything.
-
-
- ! Current status of Ease 3.2
- It will handle 100% of the standard Ultrix, SunOS, HP, and Berkeley
- ! versions of sendmail (I hope). It handles 99.5% of the IDA
- ! enhancement package. It compiles of dozens of different machines.
- ! See the TODO file for problems.
-
- +
- I don't plan to do any major work maintaining this package,
- but I will gladly accept bug fixes and enhancements.
-
- ***************
- *** 140,146 ****
- R$+@$- $@$1@$[$2$:$2.UUCP $]
-
-
- - Not everything in IDA is supported. (Remember to use the asm() command!)
-
- ----------------
- General Improvements to the Ease Program:
- --- 149,154 ----
- ***************
- *** 171,177 ****
- e.g. -C ADG => added classes A, B, and G
-
- See the file CONVERTING on tips to convert your sendmail file into ease.
- ! I have included some scritps that can compare the original sendmail
- file to the output of ease. If the rules are identical, then you can
- feel comfortable using ease instead of raw cf.
-
- --- 179,185 ----
- e.g. -C ADG => added classes A, B, and G
-
- See the file CONVERTING on tips to convert your sendmail file into ease.
- ! I have included some scripts that can compare the original sendmail
- file to the output of ease. If the rules are identical, then you can
- feel comfortable using ease instead of raw cf.
-
- ***************
- *** 199,204 ****
- --- 207,232 ----
- Also - see the directory test. This includes a shell script to test
- sendmail files, written by Simon Kenyon. You have two ways to debug
- sendmail files now!
- +
- +
- + Release Notes:
- +
- + 3.2:
- + Added better support for IDA sendmail
- + Added better support for unusual values in mailer flags, and options
- + Better BSD/SYSV Portability (See the Makefile)
- + Better support for those machines with read only text areas.
- + (See compile flag DATA_RW in makefile)
- + The cfstrip and cfdiff script was improved
- + The documentation was improved
- +
- + Release 3.1:
- + Fixed bug with machines that didn't like free(0).
- + Other portability problems
- + Added support for MALLOC_DEBUG flag
- +
- + Release 3.0:
- + First release of Bruce's changes to the net in alt.sources
-
- ============================================================================
-
- diff -c -r ../3.1/TESTING ./TESTING
- *** ../3.1/TESTING Thu May 16 12:49:46 1991
- --- ./TESTING Thu May 16 12:38:46 1991
- ***************
- *** 27,35 ****
-
- where 22 is a mailer rewrite ruleset for a mailer (i.e. UUCP).
-
- ! Ruleset 0 must be avoided when testing the re-write rules for
- ! mailers because ruleset 0 outputs a triple (user, host, mailer),
- ! and only one part (user) passed to the mailers.
-
- The makefile generates a file in tbl(1) format that
- lists the following:
- --- 27,40 ----
-
- where 22 is a mailer rewrite ruleset for a mailer (i.e. UUCP).
-
- ! Ruleset 0 must be avoided when testing the re-write rules for mailers
- ! because ruleset 0 outputs a triple (user, host, mailer), and only one
- ! part (user) passed to the mailers. Therefore you would typically have
- ! ruleset 0 when testing resolution decisions, and omit it when testing
- ! for mailer re-writes like UUCP and TCP final delivery.
- !
- ! Some newer versions of sendmail do not automatically run ruleset 3 when
- ! in debugging mode. You will have to add '3,' before each rule.
-
- The makefile generates a file in tbl(1) format that
- lists the following:
- diff -c -r ../3.1/TODO ./TODO
- *** ../3.1/TODO Thu May 16 12:49:47 1991
- --- ./TODO Thu May 16 12:38:28 1991
- ***************
- *** 1,23 ****
- Things to do for Ease 3.?
- ! Support More IDA extensions
- ! dbm() $(x in RHS
- ! Keyed databases OKP/usr/lib/aliases
- ! Ignore case when checking for mailer names existance
- ! (local vs. LOCAL)
-
- ! Eliminate the concat() construct.
-
- ! check for if (exactly_one) next($2); type error.
- ! check for matching < and > in rulesets
- ! Check for mailers "local" and "prog"
-
- CFC improvements
- Make it a real two-pass parser. This way, it can
- properly specify the rulesets, macros, and classes it
- ! needs.
-
- Error Detections
- Eliminate syntax errors that just report "syntax error"
-
- --
- Bruce G. Barnett <barnett@crdgw1.ge.com> a.k.a.
- --- 1,35 ----
- Things to do for Ease 3.?
- ! -------------------------
-
- ! Keyed databases definitions (OKP/usr/lib/aliases) should not need an asm()
-
- ! Ignore case when checking for mailer names existance
- ! (local vs. LOCAL)
-
- + Fix the following construct so that cfc/et handles the conversion properly:
- +
- + HReceived: from $?s$s$|localhost$. by $w$?r with $r$.
- + id $i; $b; sendmail $v/$V
- + (from $f for $u)
- +
- + Eliminate the concat() construct.
- +
- + check for if (exactly_one) next($2); type error.
- + check for matching < and > in rulesets
- + Check for mailers "local" and "prog"
- +
- CFC improvements
- Make it a real two-pass parser. This way, it can
- properly specify the rulesets, macros, and classes it
- ! needs. Or else write a shell script that determines which rulesets,
- ! macros, and classes are needed.
-
- Error Detections
- Eliminate syntax errors that just report "syntax error"
- +
- + Regression Testing script:
- +
- + rewrite it into perl for speed
-
- --
- Bruce G. Barnett <barnett@crdgw1.ge.com> a.k.a.
- diff -c -r ../3.1/cfc/cfc.c ./cfc/cfc.c
- *** ../3.1/cfc/cfc.c Thu May 16 12:50:49 1991
- --- ./cfc/cfc.c Thu May 16 12:43:01 1991
- ***************
- *** 1,9 ****
- #ifndef lint
- ! static char RCSid[] = "$Header: /home/kreskin/u0/barnett/Src/ease/cfc/RCS/cfc.c,v 3.0 1991/02/22 19:33:07 barnett Exp $";
- #endif
-
- /*
- * $Log: cfc.c,v $
- * Revision 3.0 1991/02/22 19:33:07 barnett
- * Many enhancements for IDA and HP sendmail.cf files
- *
- --- 1,14 ----
- #ifndef lint
- ! static char RCSid[] = "$Header: /home/kreskin/u0/barnett/Src/ease/cfc/RCS/cfc.c,v 3.2 1991/05/16 10:49:33 barnett Exp $";
- #endif
-
- /*
- * $Log: cfc.c,v $
- + * Revision 3.2 1991/05/16 10:49:33 barnett
- + * Support for IDA databases
- + * More tolerant handling of unusual conditions
- + * more bug fixes
- + *
- * Revision 3.0 1991/02/22 19:33:07 barnett
- * Many enhancements for IDA and HP sendmail.cf files
- *
- ***************
- *** 133,139 ****
- "warning: ignoring non-flag command line arguments\n");
-
- printf ("/***********************************************************/\n");
- ! printf ("/* This ease file generated by cfc version $Revision: 3.0 $*/\n");
- printf ("/* automatically from a sendmail.cf file */\n");
- printf ("/* It may need to be edited before feeding to ease. */\n");
- printf ("/***********************************************************/\n");
- --- 138,144 ----
- "warning: ignoring non-flag command line arguments\n");
-
- printf ("/***********************************************************/\n");
- ! printf ("/* This ease file generated by cfc version $Revision: 3.2 $*/\n");
- printf ("/* automatically from a sendmail.cf file */\n");
- printf ("/* It may need to be edited before feeding to ease. */\n");
- printf ("/***********************************************************/\n");
- ***************
- *** 567,573 ****
- if (diddefault) {
- putchar (')');
- diddefault--;
- ! }
- break;
- case '{':
- printf ("ypmap (%s, ", macro (*++cp)); /* sunos */
- --- 572,579 ----
- if (diddefault) {
- putchar (')');
- diddefault--;
- ! } else
- ! canon--;
- break;
- case '{':
- printf ("ypmap (%s, ", macro (*++cp)); /* sunos */
- ***************
- *** 627,633 ****
- }
- open++;
- } else {
- ! printf("\", \"");
- }
- break;
- case ':':
- --- 633,640 ----
- }
- open++;
- } else {
- ! printf(", ");
- ! /* printf("\", \""); */
- }
- break;
- case ':':
- ***************
- *** 648,667 ****
- }
- break;
- case '(':
- ! if (*(cp+1) == '@') { /* then IDA alias lookup */
- ! cp++; /* point past '@' */
- ! printf("alias(");
- ! indbm++;
- ! open++;
- ! } else { /* lookup */
- ! printf("dbm(");
- ! printf("$%s, \"",macro(*cp++));
- ! }
- break;
- case ')':
- ! printf("))");
- open--;
- ! indbm--;
- break;
- case '&':
- printf(" eval(%s) ",macro(*(++cp)));
- --- 655,676 ----
- }
- break;
- case '(':
- ! printf((*(++cp) == '@')
- ! ? " alias(" /* IDA alias lookup */
- ! : " dbm($%c, " /* IDA database lookup */
- ! , *cp);
- ! indbm++;
- ! open++;
- break;
- case ')':
- ! putchar (')');
- open--;
- ! if (diddefault) {
- ! putchar (')');
- ! diddefault--;
- ! }
- ! else
- ! indbm--;
- break;
- case '&':
- printf(" eval(%s) ",macro(*(++cp)));
- ***************
- *** 1397,1410 ****
- option ()
- {
- register char *name = buffer + 1, *value = buffer + 2;
-
- printf ("options\n\t");
- ! if (*name == 'd') /* delivery */
- ! printf ("o_delivery = %s;\n", delivoption (*value));
- ! else if (*name == 'e') /* handling */
- ! printf ("o_handling = %s;\n", handle_option (*value));
- ! else
- printf ("%s = \"%s\";\n", optionname (*name), value);
- }
-
- /* trusted --- define the list of trusted users */
- --- 1406,1440 ----
- option ()
- {
- register char *name = buffer + 1, *value = buffer + 2;
- + char *newname;
- + char *newvalue;
-
- printf ("options\n\t");
- ! if (*name == 'd') { /* delivery */
- ! newvalue = delivoption (*value);
- ! if ( newvalue == NULL) {
- ! printf("/* Unknown value for delivery option */\n");
- ! printf("/* Supplying the default value of d_background */\n");
- ! printf ("o_delivery = d_background ;\n" );
- ! } else
- ! printf ("o_delivery = %s;\n", newvalue);
- ! } else if (*name == 'e') { /* handling */
- ! newvalue = handle_option(*value);
- ! if (newvalue == NULL ) {
- ! printf("/* Unknown value for delivery option */\n");
- ! printf("/* Supplying the default value of h_print */\n");
- ! printf ("o_handling = h_print ;\n");
- ! } else
- ! printf ("o_handling = %s;\n", newvalue);
- ! } else if (*name == 'K' ) { /* IDA Keyed Database */
- ! printf("asm(\"OK%s\");\n", value);
- ! } else {
- ! newname = optionname(*name);
- ! if (newname == NULL)
- ! printf("asm(\"O%c%s\");\n", *name, value);
- ! else
- printf ("%s = \"%s\";\n", optionname (*name), value);
- + }
- }
-
- /* trusted --- define the list of trusted users */
- ***************
- *** 1496,1502 ****
- return ("m_ufrom");
-
- case 'm': /* The Domain Name (SunOS) */
- ! if (sunos) {
- return ("m_domain");
- } else {
- buf[0] = c;
- --- 1526,1532 ----
- return ("m_ufrom");
-
- case 'm': /* The Domain Name (SunOS) */
- ! if (sunos || ida ) {
- return ("m_domain");
- } else {
- buf[0] = c;
- ***************
- *** 1561,1566 ****
- --- 1591,1597 ----
- char c;
- {
- static char buf[2] = { '\0', '\0' };
- + char tstring[100];
-
- switch (c) {
- case 'f': return ("f_ffrom");
- ***************
- *** 1592,1602 ****
- case 'V': return ("f_relativize"); /* IDA sendmail */
- default:
- warn:
- ! fprintf (stderr,
- ! "warning: non standard mailer flag '%c' on line %d\n",
- ! c, line);
- ! buf[0] = c;
- ! return buf;
- }
- }
-
- --- 1623,1633 ----
- case 'V': return ("f_relativize"); /* IDA sendmail */
- default:
- warn:
- ! fprintf (stderr,
- ! "warning: non standard mailer flag '%c' on line %d\n",
- ! c, line);
- ! sprintf(tstring, "/* unknown mailer flag: %c */", c);
- ! return tstring;
- }
- }
-
- ***************
- *** 1656,1665 ****
- default:
- warn:
- fprintf (stderr,
- ! "warning: non standard option '%c' on line %d\n",
- c, line);
- ! buf[0] = c;
- ! return buf;
- }
- }
-
- --- 1687,1696 ----
- default:
- warn:
- fprintf (stderr,
- ! "warning: Unknown option '%c' on line %d\n",
- c, line);
- ! /* buf[0] = c; */
- ! return NULL;
- }
- }
-
- ***************
- *** 1677,1684 ****
- default:
- fprintf (stderr,
- "warning: non standard delivery option '%c' on line %d\n", c, line);
- ! buf[0] = c;
- ! return buf;
- }
- }
-
- --- 1708,1714 ----
- default:
- fprintf (stderr,
- "warning: non standard delivery option '%c' on line %d\n", c, line);
- ! return NULL;
- }
- }
-
- ***************
- *** 1695,1705 ****
- case 'm': return ("h_mail");
- case 'w': return ("h_write");
- case 'e': return ("h_mailz");
- default:
- fprintf (stderr,
- "warning: non standard handling option '%c' on line %d\n", c, line);
- ! buf[0] = c;
- ! return buf;
- }
- }
-
- --- 1725,1738 ----
- case 'm': return ("h_mail");
- case 'w': return ("h_write");
- case 'e': return ("h_mailz");
- + case '\0':
- + fprintf (stderr,
- + "warning: value not specified for option on line %d\n", line);
- + return NULL;
- default:
- fprintf (stderr,
- "warning: non standard handling option '%c' on line %d\n", c, line);
- ! return NULL;
- }
- }
-
- diff -c -r ../3.1/src/Makefile ./src/Makefile
- *** ../3.1/src/Makefile Thu May 16 12:51:35 1991
- --- ./src/Makefile Thu May 16 12:43:14 1991
- ***************
- *** 1,8 ****
- # Makefile for Ease Translator (et).
- #
- ! # $Header: /home/kreskin/u0/barnett/Src/Ease/ease/src/RCS/Makefile,v 3.1 1991/02/25 22:09:52 barnett Exp $
- #
- # $Log: Makefile,v $
- # Revision 3.1 1991/02/25 22:09:52 barnett
- # Fixed some portability problems
- #
- --- 1,12 ----
- # Makefile for Ease Translator (et).
- #
- ! # $Header: /home/kreskin/u0/barnett/Src/ease/src/RCS/Makefile,v 3.2 1991/05/16 10:45:25 barnett Exp $
- #
- # $Log: Makefile,v $
- + # Revision 3.2 1991/05/16 10:45:25 barnett
- + # Better support for System V machines
- + # Support for machines with read only text segments
- + #
- # Revision 3.1 1991/02/25 22:09:52 barnett
- # Fixed some portability problems
- #
- ***************
- *** 29,35 ****
- OWNER = root
- GROUP = staff
- MODE = 755
- ! # Some systems don't have a working version of install
- #INSTALL = install -c -m ${MODE} -o ${OWNER} -g ${GROUP}
- INSTALL=cp
-
- --- 33,68 ----
- OWNER = root
- GROUP = staff
- MODE = 755
- ! # Important Compile flags are defined here
- ! # DATA_RW - this is defined if your system allows string constants to
- ! # be modifiable. If you have one of the following systems, I am told
- ! # you should NOT define it: (Thanks to rainer@flyer.uni-duisburg.de)
- ! # - A sun 3/60 using gcc
- ! # - A esix SysV PC with gcc
- ! # - A HP9000/845 with cc
- ! # The default is to define it, because this is what earlier versions
- ! # of Ease did.
- ! #
- ! # SYSV
- ! # If you have a system V machine, and have <string.h>
- ! # instead of <strings.h>, then define this
- ! #
- ! #OFLAGS=-DSYSV
- ! OFLAGS=-DDATA_RW
- !
- ! DEFS = ${OFLAGS}
- ! LIBS = -ll
- ! CFLAGS = -O ${DEFS} ${INCLUDE}
- ! CC = cc
- ! #CC = gcc
- ! YACC = yacc
- ! #YACC = bison -y
- !
- ! LP = lpr
- ! LPFLAGS = -J"Ease Source"
- !
- !
- ! # System V install different from BSD install sigh...
- #INSTALL = install -c -m ${MODE} -o ${OWNER} -g ${GROUP}
- INSTALL=cp
-
- ***************
- *** 40,53 ****
- #DEFS = -DMALLOC_DEBUG # Part of the SunOS malloc package
- #LIBS = /usr/lib/debug/malloc.o -ll
- #CFLAGS = -g ${DEFS} ${INCLUDE}
- - #
- - # Normally, You will want the selections below
- - DEFS =
- - LIBS = -ll
- - CFLAGS = -O ${DEFS} ${INCLUDE}
-
- - LP = lpr
- - LPFLAGS = -J"Ease Source"
-
- HDR = symtab.h
- SRC = main.c emitcf.c errors.c idman.c strops.c symtab.c fixstrings.c
- --- 73,79 ----
- ***************
- *** 60,66 ****
- all: et
-
- et: ${OBJ}
- ! cc ${CFLAGS} -o et ${OBJ} ${LIBS}
-
- clean: FRC
- rm -f et *.o lexan.c parser.c y.output yacc.acts yacc.tmp \
- --- 86,92 ----
- all: et
-
- et: ${OBJ}
- ! ${CC} ${CFLAGS} -o et ${OBJ} ${LIBS}
-
- clean: FRC
- rm -f et *.o lexan.c parser.c y.output yacc.acts yacc.tmp \
- ***************
- *** 98,104 ****
-
- y.tab.h parser.c: parser.y
- @rm -f parser.c
- ! yacc -v -d parser.y
- sed 's/=yylex/=yyyylex/' < y.tab.c >parser.c
-
- # the following dummy rule is because of the results of 'make depend'
- --- 124,130 ----
-
- y.tab.h parser.c: parser.y
- @rm -f parser.c
- ! ${YACC} -v -d parser.y
- sed 's/=yylex/=yyyylex/' < y.tab.c >parser.c
-
- # the following dummy rule is because of the results of 'make depend'
- ***************
- *** 120,144 ****
-
- FRC:
-
- # DO NOT DELETE THIS LINE -- make depend uses it
-
- ! main.o: main.c ./fixstrings.h /usr/include/stdio.h
- ! emitcf.o: emitcf.c /usr/include/stdio.h ./symtab.h ./fixstrings.h
- ! errors.o: errors.c /usr/include/stdio.h ./fixstrings.h
- ! idman.o: idman.c /usr/include/stdio.h ./symtab.h ./fixstrings.h
- ! strops.o: strops.c ./fixstrings.h /usr/include/stdio.h /usr/include/strings.h
- ! strops.o: ./symtab.h
- ! symtab.o: symtab.c ./fixstrings.h /usr/include/stdio.h /usr/include/ctype.h
- ! symtab.o: ./symtab.h
- ! fixstrings.o: fixstrings.c /usr/include/strings.h
- ! parser.o: parser.c ./fixstrings.h /usr/include/stdio.h ./symtab.h
- ! lexan.o: lexan.c /usr/include/stdio.h ./fixstrings.h ./symtab.h ./lexdefs.h
- ! main.o: main.c ./fixstrings.h /usr/include/stdio.h
- ! emitcf.o: emitcf.c /usr/include/stdio.h ./symtab.h ./fixstrings.h
- ! errors.o: errors.c /usr/include/stdio.h ./fixstrings.h
- ! idman.o: idman.c /usr/include/stdio.h ./symtab.h ./fixstrings.h
- ! strops.o: strops.c ./fixstrings.h /usr/include/stdio.h /usr/include/strings.h
- ! strops.o: ./symtab.h
- ! symtab.o: symtab.c ./fixstrings.h /usr/include/stdio.h /usr/include/ctype.h
- ! symtab.o: ./symtab.h
- ! fixstrings.o: fixstrings.c /usr/include/strings.h
- --- 146,179 ----
-
- FRC:
-
- +
- # DO NOT DELETE THIS LINE -- make depend uses it
-
- ! main.o: main.c fixstrings.h
- ! emitcf.o: emitcf.c symtab.h fixstrings.h
- ! errors.o: errors.c fixstrings.h
- ! idman.o: idman.c symtab.h fixstrings.h
- ! strops.o: strops.c fixstrings.h
- ! strops.o: symtab.h
- ! symtab.o: symtab.c fixstrings.h
- ! symtab.o: symtab.h
- ! fixstrings.o: fixstrings.c
- ! parser.o: parser.c fixstrings.h symtab.h
- ! lexan.o: lexan.c fixstrings.h symtab.h lexdefs.h
- ! main.o: main.c fixstrings.h
- ! emitcf.o: emitcf.c symtab.h fixstrings.h
- ! errors.o: errors.c fixstrings.h
- ! idman.o: idman.c symtab.h fixstrings.h
- ! strops.o: strops.c fixstrings.h
- ! strops.o: symtab.h
- ! symtab.o: symtab.c fixstrings.h
- ! symtab.o: symtab.h
- ! fixstrings.o: fixstrings.c
- !
- !
- !
- !
- !
- !
- !
- !
- diff -c -r ../3.1/src/ease.sh ./src/ease.sh
- *** ../3.1/src/ease.sh Thu May 16 12:50:04 1991
- --- ./src/ease.sh Thu May 16 12:43:19 1991
- ***************
- *** 9,15 ****
- # number of your config file into the generated sendmail.cf.
- #
- # For example, if your ease input file contains the RCS version string
- ! # $Revision: 1.6 $
- # and the lines
- # define ("Received:",
- # "by ${m_oname} (${VERSION})"
- --- 9,15 ----
- # number of your config file into the generated sendmail.cf.
- #
- # For example, if your ease input file contains the RCS version string
- ! # $Revision: 1.7 $
- # and the lines
- # define ("Received:",
- # "by ${m_oname} (${VERSION})"
- ***************
- *** 32,50 ****
- # This makes it a little easier to track down problems in networks comprising
- # dozens or hundreds of machines.
- #
- ! # $Source: /isis/usr2/share/src/local/tc/ease/src/RCS/ease.sh,v $
- # $Locker: $
- #
- ! # $Revision: 1.6 $
- ! # Check-in $Date: 90/05/07 11:15:04 $
- # $State: Exp $
- #
- ! # $Author: jeff $
- #
- ! # $Log: /isis/usr2/share/src/local/tc/ease/src/RCS/ease.sh,v $
- ! # Version 1.6 90/05/07 11:15:04 jeff
- # Add support for the "-q" flag added to ease.
- ! #
- # Version 1.5 90/02/22 15:51:12 jeff
- # Improved the comments in preparation for netwide release.
- #
- --- 32,54 ----
- # This makes it a little easier to track down problems in networks comprising
- # dozens or hundreds of machines.
- #
- ! # $Source: /home/kreskin/u0/barnett/Src/ease/src/RCS/ease.sh,v $
- # $Locker: $
- #
- ! # $Revision: 1.7 $
- ! # Check-in $Date: 1991/05/16 10:45:25 $
- # $State: Exp $
- #
- ! # $Author: barnett $
- #
- ! # $Log: ease.sh,v $
- ! # Revision 1.7 1991/05/16 10:45:25 barnett
- ! # Better support for System V machines
- ! # Support for machines with read only text segments
- ! #
- ! # Revision 1.6 1990/05/07 11:15:04 jeff
- # Add support for the "-q" flag added to ease.
- ! #
- # Version 1.5 90/02/22 15:51:12 jeff
- # Improved the comments in preparation for netwide release.
- #
- ***************
- *** 63,71 ****
- # Initial version
- #
- #
- ! # @(#)FLUKE source file: $Header: /isis/usr2/share/src/local/tc/ease/src/RCS/ease.sh,v 1.6 90/05/07 11:15:04 jeff Exp $
-
- ! PATH=/bin:/usr/bin:/usr/ucb:/usr/local export PATH
-
- echo "#"
- echo "# Compiled via: $0 $*"
- --- 67,76 ----
- # Initial version
- #
- #
- ! # @(#)FLUKE source file: $Header: /home/kreskin/u0/barnett/Src/ease/src/RCS/ease.sh,v 1.7 1991/05/16 10:45:25 barnett Exp $
-
- ! PATH=.:/bin:/usr/bin:/usr/ucb:/usr/local/bin
- ! export PATH
-
- echo "#"
- echo "# Compiled via: $0 $*"
- ***************
- *** 78,85 ****
- echo "# located in the directory named above."
- echo "#"
-
- ! cppflags= etflags='-q'
-
- for i in ${1+"$@"} ;do
- case "$1" in
- '') break;;
- --- 83,93 ----
- echo "# located in the directory named above."
- echo "#"
-
- ! cppflags=
- ! etflags='-q'
- ! CPP='cc -E'
-
- +
- for i in ${1+"$@"} ;do
- case "$1" in
- '') break;;
- ***************
- *** 101,107 ****
-
- # The sed commands delete empty comment lines and those preprocessor output
- # lines which indicate the linenumber and filename.
- ! /lib/cpp -DVERSION=\"version\ $Rev\" $cppflags $file |
- et $etflags |
- sed -e '/^# *$/d' \
- -e '/^#[ ]*[0123456789][0123456789]*[ ]*".*"[ ]*$/d'
- --- 109,115 ----
-
- # The sed commands delete empty comment lines and those preprocessor output
- # lines which indicate the linenumber and filename.
- ! $CPP -DVERSION=\"version\ $Rev\" $cppflags $file |
- et $etflags |
- sed -e '/^# *$/d' \
- -e '/^#[ ]*[0123456789][0123456789]*[ ]*".*"[ ]*$/d'
- diff -c -r ../3.1/src/errors.c ./src/errors.c
- *** ../3.1/src/errors.c Thu May 16 12:50:22 1991
- --- ./src/errors.c Thu May 16 12:43:16 1991
- ***************
- *** 1,6 ****
- #ifdef FLUKE
- # ifndef LINT
- ! static char RCSid[] = "@(#)FLUKE $Header: /isis/usr2/share/src/local/tc/ease/src/RCS/errors.c,v 2.1 90/01/30 14:17:29 jeff Exp $";
- # endif LINT
- #endif FLUKE
-
- --- 1,6 ----
- #ifdef FLUKE
- # ifndef LINT
- ! static char RCSid[] = "@(#)FLUKE $Header: /home/kreskin/u0/barnett/Src/ease/src/RCS/errors.c,v 2.2 1991/05/16 10:45:25 barnett Exp $";
- # endif LINT
- #endif FLUKE
-
- ***************
- *** 16,25 ****
- *
- * All rights reserved.
- *
- ! * $Log: /isis/usr2/share/src/local/tc/ease/src/RCS/errors.c,v $
- ! * Version 2.1 90/01/30 14:17:29 jeff
- * Bruce Barnett - extensions for SunOS/Ultrix.
- ! *
- * Revision 2.0 88/06/15 14:41:10 root
- * Baseline release for net posting. ADR.
- */
- --- 16,29 ----
- *
- * All rights reserved.
- *
- ! * $Log: errors.c,v $
- ! * Revision 2.2 1991/05/16 10:45:25 barnett
- ! * Better support for System V machines
- ! * Support for machines with read only text segments
- ! *
- ! * Revision 2.1 1990/01/30 14:17:29 jeff
- * Bruce Barnett - extensions for SunOS/Ultrix.
- ! *
- * Revision 2.0 88/06/15 14:41:10 root
- * Baseline release for net posting. ADR.
- */
- ***************
- *** 83,88 ****
- --- 87,93 ----
- }
- if (colon)
- fputs(": ",DIAGf);
- + fflush(DIAGf);
- }
-
-
- ***************
- *** 158,163 ****
- --- 163,169 ----
- {
- fprintf (DIAGf, "%s, line %d: Fatal Error In Translator: %s %s\n",
- FNbuf, Lcount, sbErr, sbArg);
- + fflush(stderr);
- exit (1);
- }
-
- diff -c -r ../3.1/src/fixstrings.c ./src/fixstrings.c
- *** ../3.1/src/fixstrings.c Thu May 16 12:50:05 1991
- --- ./src/fixstrings.c Thu May 16 12:43:17 1991
- ***************
- *** 1,13 ****
- /*
- ! * $Revision: 2.1 $
- ! * Check-in $Date: 90/01/30 14:25:14 $
- *
- ! * $Author: jeff $
- *
- ! * $Log: /isis/usr2/share/src/local/tc/ease/src/RCS/fixstrings.c,v $
- ! * Version 2.1 90/01/30 14:25:14 jeff
- * Comment changes only.
- ! *
- * Revision 2.0 88/06/15 14:41:19 root
- * Baseline release for net posting. ADR.
- *
- --- 1,17 ----
- /*
- ! * $Revision: 2.2 $
- ! * Check-in $Date: 1991/05/16 10:45:25 $
- *
- ! * $Author: barnett $
- *
- ! * $Log: fixstrings.c,v $
- ! * Revision 2.2 1991/05/16 10:45:25 barnett
- ! * Better support for System V machines
- ! * Support for machines with read only text segments
- ! *
- ! * Revision 2.1 1990/01/30 14:25:14 jeff
- * Comment changes only.
- ! *
- * Revision 2.0 88/06/15 14:41:19 root
- * Baseline release for net posting. ADR.
- *
- ***************
- *** 17,23 ****
- */
- #ifdef FLUKE
- # ifndef LINT
- ! static char RCSid[] = "@(#)FLUKE $Header: /isis/usr2/share/src/local/tc/ease/src/RCS/fixstrings.c,v 2.1 90/01/30 14:25:14 jeff Exp $";
- # endif LINT
- #endif FLUKE
-
- --- 21,27 ----
- */
- #ifdef FLUKE
- # ifndef LINT
- ! static char RCSid[] = "@(#)FLUKE $Header: /home/kreskin/u0/barnett/Src/ease/src/RCS/fixstrings.c,v 2.2 1991/05/16 10:45:25 barnett Exp $";
- # endif LINT
- #endif FLUKE
-
- ***************
- *** 31,37 ****
- --- 35,47 ----
- * pointers. In the other C files, cpp macros are used to revector the
- * standard string functions to this file.
- */
- + #ifdef SYSV
- + #include <string.h>
- + #define index strchr
- + #define rindex strrchr
- + #else
- #include <strings.h>
- + #endif
- #define fix(s) ((s) ? (s) : "")
-
- char *Xstrcat (s1, s2)
- diff -c -r ../3.1/src/fixstrings.h ./src/fixstrings.h
- *** ../3.1/src/fixstrings.h Thu May 16 12:51:35 1991
- --- ./src/fixstrings.h Thu May 16 12:43:17 1991
- ***************
- *** 1,11 ****
- /*
- ! * $Revision: 3.1 $
- ! * Check-in $Date: 1991/02/25 22:09:52 $
- * $State: Exp $
- *
- * $Author: barnett $
- *
- * $Log: fixstrings.h,v $
- * Revision 3.1 1991/02/25 22:09:52 barnett
- * Fixed some portability problems
- *
- --- 1,15 ----
- /*
- ! * $Revision: 3.2 $
- ! * Check-in $Date: 1991/05/16 10:45:25 $
- * $State: Exp $
- *
- * $Author: barnett $
- *
- * $Log: fixstrings.h,v $
- + * Revision 3.2 1991/05/16 10:45:25 barnett
- + * Better support for System V machines
- + * Support for machines with read only text segments
- + *
- * Revision 3.1 1991/02/25 22:09:52 barnett
- * Fixed some portability problems
- *
- ***************
- *** 20,25 ****
- --- 24,36 ----
- /* FLUKE jps 16-apr-86 - revector the string routines to custom-coded ones
- * which handle NULL pointers.
- */
- + #ifdef SYSV
- + #define strchr Xindex
- + #define strrchr Xrindex
- + #else
- + #define index Xindex
- + #define rindex Xrindex
- + #endif
- #define strcat Xstrcat
- #define strncat Xstrncat
- #define strcmp Xstrcmp
- ***************
- *** 27,34 ****
- #define strcpy Xstrcpy
- #define strncpy Xstrncpy
- #define strlen Xstrlen
- - #define index Xindex
- - #define rindex Xrindex
-
- extern char *Xstrcpy();
- extern char *Xindex();
- --- 38,43 ----
- diff -c -r ../3.1/src/lexan.l ./src/lexan.l
- *** ../3.1/src/lexan.l Thu May 16 12:51:37 1991
- --- ./src/lexan.l Thu May 16 12:43:20 1991
- ***************
- *** 2,8 ****
-
- #ifdef FLUKE
- # ifndef LINT
- ! 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 $";
- # endif LINT
- #endif FLUKE
-
- --- 2,8 ----
-
- #ifdef FLUKE
- # ifndef LINT
- ! static char RCSid[] = "@(#)FLUKE $Header: /home/kreskin/u0/barnett/Src/ease/src/RCS/lexan.l,v 3.2 1991/05/16 10:45:25 barnett Exp $";
- # endif LINT
- #endif FLUKE
-
- ***************
- *** 23,28 ****
- --- 23,32 ----
- * All rights reserved.
- *
- * $Log: lexan.l,v $
- + * Revision 3.2 1991/05/16 10:45:25 barnett
- + * Better support for System V machines
- + * Support for machines with read only text segments
- + *
- * Revision 3.1 1991/02/25 22:09:52 barnett
- * Fixed some portability problems
- *
- ***************
- *** 128,133 ****
- --- 132,138 ----
- { "d_background", DOPTB },
- { "d_interactive", DOPTI },
- { "d_queue", DOPTQ },
- + { "dbm", DBM }, /* IDA */
- { "default", DEFAULT }, /* IDA */
- { "define", DEFINE },
- { "eval", EVAL },
- diff -c -r ../3.1/src/main.c ./src/main.c
- *** ../3.1/src/main.c Thu May 16 12:51:38 1991
- --- ./src/main.c Thu May 16 12:43:20 1991
- ***************
- *** 1,6 ****
- #ifdef FLUKE
- # ifndef LINT
- ! 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 $";
- # endif LINT
- #endif FLUKE
-
- --- 1,6 ----
- #ifdef FLUKE
- # ifndef LINT
- ! static char RCSid[] = "@(#)FLUKE $Header: /home/kreskin/u0/barnett/Src/ease/src/RCS/main.c,v 3.2 1991/05/16 10:45:25 barnett Exp $";
- # endif LINT
- #endif FLUKE
-
- ***************
- *** 17,22 ****
- --- 17,26 ----
- * All rights reserved.
- *
- * $Log: main.c,v $
- + * Revision 3.2 1991/05/16 10:45:25 barnett
- + * Better support for System V machines
- + * Support for machines with read only text segments
- + *
- * Revision 3.1 1991/02/25 22:09:52 barnett
- * Fixed some portability problems
- *
- ***************
- *** 48,53 ****
- --- 52,61 ----
- #include "fixstrings.h"
- #include <stdio.h>
- #include <ctype.h>
- + #ifdef SYSV
- + #define index strchr
- + #define rindex strrchr
- + #endif
- #ifdef MALLOC_DEBUG
- extern int malloc_debug();
- extern int malloc_verify();
- ***************
- *** 57,62 ****
- --- 65,74 ----
- char *infile = 0; /* input file name */
- char *outfile = 0; /* output file name */
- extern void InitError (),
- + #ifndef DATA_RW
- + InitStrOps (),
- + InitParser (),
- + #endif
- InitSymbolTable (),
- DefScan (),
- FatalError (),
- ***************
- *** 94,99 ****
- --- 106,116 ----
- malloc_debug(1);
- #endif MALLOC_DEBUG
- InitError (); /* initialize error conditions */
- + #ifndef DATA_RW
- + InitParser ();
- + InitStrOps();
- +
- + #endif
- InitSymbolTable (); /* initialize the symbol table */
- PreLoad (); /* preload special identifiers */
- GetArgs (argc, argv); /* set up argument files */
- ***************
- *** 193,199 ****
- printf ("## TO THIS FILE WILL DISAPPEAR THE ##\n");
- printf ("## NEXT TIME THAT EASE IS RUN. ##\n");
- printf ("## ##\n");
- ! printf ("## $Revision: 3.1 $ ##\n");
- printf ("## ##\n");
- printf ("###################################################\n");
- }
- --- 210,216 ----
- printf ("## TO THIS FILE WILL DISAPPEAR THE ##\n");
- printf ("## NEXT TIME THAT EASE IS RUN. ##\n");
- printf ("## ##\n");
- ! printf ("## $Revision: 3.2 $ ##\n");
- printf ("## ##\n");
- printf ("###################################################\n");
- }
- diff -c -r ../3.1/src/parser.y ./src/parser.y
- *** ../3.1/src/parser.y Thu May 16 12:51:41 1991
- --- ./src/parser.y Thu May 16 12:43:15 1991
- ***************
- *** 1,7 ****
- %{
- #ifdef FLUKE
- # ifndef LINT
- ! 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 $";
- # endif LINT
- #endif FLUKE
-
- --- 1,7 ----
- %{
- #ifdef FLUKE
- # ifndef LINT
- ! static char RCSid[] = "@(#)FLUKE $Header: /home/kreskin/u0/barnett/Src/ease/src/RCS/parser.y,v 3.2 1991/05/16 10:45:25 barnett Exp $";
- # endif LINT
- #endif FLUKE
-
- ***************
- *** 22,27 ****
- --- 22,31 ----
- * All rights reserved.
- *
- * $Log: parser.y,v $
- + * Revision 3.2 1991/05/16 10:45:25 barnett
- + * Better support for System V machines
- + * Support for machines with read only text segments
- + *
- * Revision 3.1 1991/02/25 22:09:52 barnett
- * Fixed some portability problems
- *
- ***************
- *** 53,58 ****
- --- 57,63 ----
- extern char *MakePosTok ();
- extern char *GetField ();
- extern char *Bracket ();
- + extern char *DbmParen ();
- extern char *MakeRSCall ();
- extern char *CheckMailer ();
- extern char *CheckRS ();
- ***************
- *** 61,70 ****
- --- 66,82 ----
- extern void AssignType ();
- extern void RemoveSymbol ();
- extern void yyerror ();
- + extern void FatalError ();
- extern short RMatch; /* ruleset match flag */
-
- + extern char *strdup();
- + #ifdef DATA_RW
- char *Cbuf = " "; /* character buffer */
- char *Mbuf = "$ "; /* macro buffer */
- + #else
- + char *Cbuf = NULL;
- + char *Mbuf = NULL;
- + #endif
- char *Tsb; /* pointer to temporary string buffer */
- char *Tsb1; /* pointer to another temporary string buffer */
- char *Flaglist; /* pointer to header flag list */
- ***************
- *** 73,78 ****
- --- 85,98 ----
- extern int yychar;
- extern int yydebug;
-
- + #ifndef DATA_RW
- + void InitParser()
- + {
- + if(!(Cbuf = strdup(" ")) || !(Mbuf = strdup("$ ")))
- + FatalError("Out of memory in InitParser()", (char *)NULL);
- + }
- + #endif
- +
- static void
- Free( ptr )
- char *ptr;
- ***************
- *** 165,170 ****
- --- 185,191 ----
- %token MRECIPIENT MSENDER NEXT OPTIONS PRECEDENCE READCLASS RESOLVE
- %token RETRY RETURN RULESET TRUSTED USER
- %token YPALIAS YPMAP YPPASSWD EVAL RESOLVED QUOTE ASM PROGRAM DEFAULT ALIAS
- + %token DBM
-
- %token ASGN COLON COMMA DEFINE DOLLAR FIELD LBRACE LPAREN RBRACE
- %token RPAREN SEMI STAR SLASH
- ***************
- *** 184,189 ****
- --- 205,211 ----
- %type <psb> doptid eoptid idlist fcond dlist mflags route mdefs
- %type <psb> matchaddr matchtok action actionstmt mailerspec mtdef
- %type <psb> rwaddr rwtok ftype reftok rword cantok resolution
- + %type <psb> dbmtok dbmval dbmvaltok dbmstuff
- %type <psb> userspec hword hostid dheader mdefine
- %type <psb> catstring catstringlist canval canvaltok
- %type <ival> anychar
- ***************
- *** 896,901 ****
- --- 918,926 ----
- | cantok {
- $$ = $1;
- }
- + | dbmtok {
- + $$ = $1;
- + }
- | ALIAS LPAREN reftok RPAREN {
- $$ = ListAppend("$(@", $3, "$:$)");
- }
- ***************
- *** 990,995 ****
- --- 1015,1075 ----
- | HOSTNUM LPAREN reftok RPAREN {
- $$ = Bracket ($3, FALSE);
- Free ($3);
- + }
- + ;
- +
- + dbmtok : DBM LPAREN DOLLAR IDENT COMMA dbmstuff RPAREN {
- + $$ = DbmParen ($4->psb, $6);
- + RemoveSymbol($4);
- + Free ($6);
- + }
- + ;
- + dbmstuff : dbmval COMMA dbmval {
- + $$ = ListAppend ($1, Tsb = ListAppend ("$@", $3, (char *) NULL),
- + (char *) NULL);
- + Free (Tsb);
- + }
- + | dbmval {
- + $$ = $1;
- + }
- + ;
- +
- + dbmval : dbmvaltok {
- + $$ = $1;
- + }
- + | dbmval dbmvaltok {
- + $$ = ListAppend ($1, $2, (char *) NULL);
- + Free ($1);
- + /* Free ($2); */
- + }
- + ;
- +
- + dbmvaltok : IDENT {
- + $$ = ListAppend ($1->psb, (char *) NULL, (char *) NULL);
- + RemoveSymbol ($1);
- + }
- + | SCONST {
- + $$ = ListAppend (MacScan ($1), (char *) NULL, (char *) NULL);
- + Free ($1);
- + }
- + | NEXT LPAREN RPAREN { /* I Used next earlier, but now use default - because it is clearer syntax */
- + $$ = "$:";
- + }
- + | NEXT LPAREN dbmval RPAREN {
- + $$ = ListAppend("$:", $3, (char *)NULL);
- + }
- + | DEFAULT LPAREN RPAREN {
- + $$ = "$:";
- + }
- + | DEFAULT LPAREN dbmval RPAREN {
- + $$ = ListAppend("$:", $3, (char *)NULL);
- + }
- + | reftok {
- + $$ = $1;
- + }
- + | SEPCHAR {
- + *Cbuf = $1;
- + $$ = ListAppend (Cbuf, (char *) NULL, (char *) NULL);
- }
- ;
-
- diff -c -r ../3.1/src/strops.c ./src/strops.c
- *** ../3.1/src/strops.c Thu May 16 12:51:42 1991
- --- ./src/strops.c Thu May 16 12:43:21 1991
- ***************
- *** 1,6 ****
- #ifdef FLUKE
- # ifndef LINT
- ! 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 $";
- # endif LINT
- #endif FLUKE
-
- --- 1,6 ----
- #ifdef FLUKE
- # ifndef LINT
- ! static char RCSid[] = "@(#)FLUKE $Header: /home/kreskin/u0/barnett/Src/ease/src/RCS/strops.c,v 3.2 1991/05/16 10:45:25 barnett Exp $";
- # endif LINT
- #endif FLUKE
-
- ***************
- *** 18,23 ****
- --- 18,27 ----
- * All rights reserved.
- *
- * $Log: strops.c,v $
- + * Revision 3.2 1991/05/16 10:45:25 barnett
- + * Better support for System V machines
- + * Support for machines with read only text segments
- + *
- * Revision 3.1 1991/02/25 22:09:52 barnett
- * Fixed some portability problems
- *
- ***************
- *** 48,55 ****
- --- 52,64 ----
- extern char * malloc ();
-
- short Rformat = FALSE; /* class read format flag */
- + #ifdef DATA_RW
- static char *Ptok = "$ "; /* positional token structure */
- static char *Cfield = "$= "; /* class reference structure */
- + #else
- + static char *Ptok = NULL; /* positional token structure */
- + static char *Cfield = NULL; /* class reference structure */
- + #endif
- static char *Ofield = "$-"; /* one token match structure */
- static char *Zfield = "$*"; /* zero or more tokens structure */
- static char *Pfield = "$+"; /* one or more tokens structure */
- ***************
- *** 61,71 ****
- --- 70,110 ----
- * with release 3.0.
- */
-
- + #ifdef DATA_RW
- static char *Mfield = "$% "; /* match in specified YP map */
- static char *Nfield = "$! "; /* no match in specified YP map */
- static char *Mtest = "$? "; /* conditional macro test string */
- + #else
- + static char *Mfield = NULL; /* match in specified YP map */
- + static char *Nfield = NULL; /* no match in specified YP map */
- + static char *Mtest = NULL; /* conditional macro test string */
- + #endif
-
- + #ifndef DATA_RW
- + /* This section of code is for those machines with split text and data
- + * areas - where string constants are not modifiable
- + */
- + #define nil (char *)0
-
- + char * Strdup(string) /* a clone of the strdup() routine */
- + char *string;
- + {
- + char *s;
- + s=malloc(length(string));
- + if (!s) return (nil);
- + (void) sprintf(s,"%s",string);
- + return (s);
- + }
- + void InitStrOps()
- + {
- + if(!(Ptok = Strdup("$ ")) || !(Cfield = Strdup("$= ")) ||
- + !(Mfield = Strdup("$% ")) || !(Nfield = Strdup("$! ")) ||
- + !(Mtest = Strdup("$? ")))
- + FatalError("Out of memory in InitStrOps()", (char *)NULL);
- + }
- + #endif
- +
- +
- /*
- * ConvOpt () -- Convert an Ease option identifier (optid) by returning a
- * string representation of the cf format.
- ***************
- *** 404,409 ****
- --- 443,471 ----
- if (dflag)
- res = strcat (res, "$");
- res = strcat (res, "]");
- + return (res);
- + }
- + /*
- + * DbmParen () -- Construct and return a cf string form of the
- + * dbm reference of the IDA database identifier passed in
- + * the string parameter db_psb, looking up the string identifier
- + * passed in the string parameter lup_psb.
- + *
- + */
- + char *
- + DbmParen (db_psb, lup_psb)
- + char *db_psb; /* identifier of data base */
- + char *lup_psb; /* identifier being looked up */
- + {
- + register char *res; /* resultant cf form */
- +
- + res = (char *) malloc (strlen (lup_psb) + 7);
- + if (res == NULL)
- + FatalError ("System out of string space in DbmParen ()", (char *) NULL);
- + res = strcpy (res, "$(x ");
- + *(res+2) = *db_psb;
- + res = strcat (res, lup_psb);
- + res = strcat (res, " $)");
- return (res);
- }
-
- diff -c -r ../3.1/utils/Makefile ./utils/Makefile
- *** ../3.1/utils/Makefile Thu May 16 12:50:13 1991
- --- ./utils/Makefile Thu May 16 12:38:36 1991
- ***************
- *** 7,13 ****
- clean:
-
- install:
- ! ${INSTALL} cfdiff.csh ${BINDIR}/cfdiff
- ! ${INSTALL} cfstrip.csh ${BINDIR}/cfstrip
- chmod 755 ${BINDIR}/cfstrip ${BINDIR}/cfdiff
-
- --- 7,13 ----
- clean:
-
- install:
- ! ${INSTALL} cfdiff.sh ${BINDIR}/cfdiff
- ! ${INSTALL} cfstrip.sh ${BINDIR}/cfstrip
- chmod 755 ${BINDIR}/cfstrip ${BINDIR}/cfdiff
-
-