EASE source
Andrew S. Partan
asp at cos.com
Fri May 13 09:44:45 AEST 1988
I have the Ease from vol 10 of comp.sources.unix with the patches from
vol 13 applied.
I have also applied a patch from ras at sabre.bellcore.com (Raymond A.
Schnitzler) to give the P (postmaster) option.
I also found & fixed a bug in emitcf.c that was dereferencing NULL
pointers.
Here are these patches.
--asp (Andrew Partan @ Corporation for Open Systems)
-- asp at cos.com or asp%cos.com at uunet.uu.net
-- {uunet, sundc, decuac, hqda-ai, hadron}!cos!asp
ASN.1 Object Identifier: "{joint-iso-ccitt mhs(6) group(6) 157}"
Patches follow.
First from Raymond A. Schnitzler:
----------------------------------
Date: Fri, 25 Mar 88 10:36:15 EST
From: sundc!sun!sabre.bellcore.com!ras (Raymond A. Schnitzler)
To: asp at cos.com
Subject: Ease problems/bugs
I have constructed a patch file for you. I don't know
whether patch will handle it or not; I haven't
tested it. Anyway, it's context diffs.
I keep my cfc source in a subdirectory of my main ease
directory, and all of the files here are specified
relative to that ease dir.
There are few comments, if any.
I've defined o_pmaster as the ease version of the P option.
There are other bugs in ease and/or cfc that this still does
not fix.
Here we go:
*** src/parser.y~ Wed Mar 9 11:46:42 1988
--- src/parser.y Mon Mar 21 16:03:27 1988
***************
*** 88,93 ****
--- 88,94 ----
%token MPATH MFLAGS MSENDER MRECIPIENT MARGV MEOL MMAXSIZE
%token AAOPT AOPT BBOPT COPT DOPT DOPTI DOPTB DOPTQ DDOPT EOPT EOPTP EOPTE
%token EOPTM EOPTW EOPTZ FFOPT FOPT GOPT HHOPT IOPT LLOPT MOPT NNOPT OOPT QQOPT
+ %token PPOPT
%token ROPT SSOPT SOPT TTOPT TOPT UOPT VOPT WWOPT XOPT XXOPT
%token FFLAG RFLAG SSFLAG NFLAG LFLAG SFLAG MFLAG FFFLAG DDFLAG MMFLAG XFLAG
%token QOPT YOPT YYOPT ZOPT ZZOPT
***************
*** 310,315 ****
--- 311,319 ----
}
| NNOPT {
$$ = opt_N;
+ }
+ | PPOPT {
+ $$ = opt_P;
}
| OOPT {
$$ = opt_o;
*** src/lexan.l~ Wed Mar 9 11:39:54 1988
--- src/lexan.l Mon Mar 21 16:17:20 1988
***************
*** 135,140 ****
--- 136,142 ----
o_hformat return (OOPT);
o_qfactor return (QOPT);
o_qdir return (QQOPT);
+ o_pmaster return (PPOPT);
o_tread return (ROPT);
o_flog return (SSOPT);
o_safe return (SOPT);
*** src/symtab.h~ Wed Mar 9 12:08:45 1988
--- src/symtab.h Mon Mar 21 16:06:17 1988
***************
*** 48,53 ****
--- 48,54 ----
opt_g, opt_H, opt_i, opt_L, opt_m, opt_N, opt_o, opt_Q, opt_q,
opt_r, opt_S, opt_s, opt_T, opt_t, opt_u, opt_v, opt_W, opt_x,
opt_X, opt_Y, opt_y, opt_Z, opt_z,
+ opt_P,
d_opt_i, d_opt_b, d_opt_q,
e_opt_p, e_opt_e, e_opt_m, e_opt_w, e_opt_z};
*** src/strops.c~ Wed Mar 9 11:39:58 1988
--- src/strops.c Mon Mar 21 16:02:49 1988
***************
*** 80,85 ****
--- 80,86 ----
case e_opt_m: return ("m");
case opt_N : return ("N");
case opt_o : return ("o");
+ case opt_P : return ("P");
case e_opt_p: return ("p");
case opt_Q : return ("Q");
case opt_q : return ("q");
*** doc/ap2~ Wed Mar 9 12:39:06 1988
--- doc/ap2 Thu Mar 24 09:08:16 1988
***************
*** 57,62 ****
--- 57,63 ----
\fIo_rsend\fR m
\fIo_dnet\fR N
\fIo_hformat\fR o
+ \fIo_pmaster\fR P
\fIo_qdir\fR Q
\fIo_qfactor\fR q
\fIo_tread\fR r
*** cfc/cfc.c~ Tue Feb 23 14:52:33 1988
--- cfc/cfc.c Thu Mar 24 08:56:47 1988
***************
*** 973,978 ****
--- 973,979 ----
case 'm': return ("o_rsend");
case 'N': return ("o_dnet");
case 'o': return ("o_hformat");
+ case 'P': return ("o_pmaster");
case 'Q': return ("o_qdir");
case 'q': docompat ("o_qfactor");
case 'r': return ("o_tread");
----------------------------------
Now my patch to emitcf.c:
----------------------------------
From: asp at cos.com (Andrew Partan)
Subject: Patch to emitcf.c to stop dereferencing NULL pointers
Date: Tue May 10 18:27:41 EDT 1988
Found 2 places in emitcf.c where it might dereference a NULL pointer
(and core dump on a Sun). Stopped it from doing so.
--asp
*** emitcf.c.ORIG Tue Feb 23 20:41:37 1988
--- emitcf.c Tue May 10 18:14:56 1988
***************
*** 73,79 ****
targ->idd |= ID_CLASS; /* signal definition */
break;
! case def_option: printf ("O%c", *defstr1);
PrintDef (def_option, defstr2);
break;
--- 73,81 ----
targ->idd |= ID_CLASS; /* signal definition */
break;
! case def_option: if (defstr1 == NULL)
! FatalError ("No option passed in EmitDef()", (char *)NULL);
! printf ("O%c", *defstr1);
PrintDef (def_option, defstr2);
break;
***************
*** 167,172 ****
--- 169,177 ----
register char *dstr; /* definition string */
{
register char *tmp;
+
+ if (dstr == (char *)NULL)
+ dstr = "";
for (tmp = dstr; *tmp != '\0'; tmp++) /* search for line continuations */
if ((*tmp == '\\') && (*++tmp == '\n'))
More information about the Comp.sources.bugs
mailing list