From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24868 invoked from network); 6 Aug 1999 23:31:46 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 6 Aug 1999 23:31:46 -0000 Received: (qmail 22134 invoked by alias); 6 Aug 1999 23:31:41 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 7392 Received: (qmail 22125 invoked from network); 6 Aug 1999 23:31:40 -0000 Date: Fri, 6 Aug 1999 19:31:07 -0400 From: Ed Osinski To: zsh-workers@sunsite.auc.dk Subject: gawk problem during build, and patches Message-ID: <19990806193107.B29273@valis.NYU.EDU> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Mailer: Mutt 0.95.6i While building zsh 3.0.6, I got the following: gawk -f ./rlimits.awk /usr/include/sys/resource.h > rlimits.h gcc -c -I.. -I. -I. -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=3D64 -DHAVE_CON= FIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2 builtin.c In file included from builtin.c:3679: rlimits.h:7: parse error at null character When I looked at rlimits.h, I see: ----------------------------------------------------------- /** rlimits.h **/ /** architecture-customized limits for zsh **/ #define ZSH_NLIMITS 7 static char *recs[ZSH_NLIMITS+1] =3D { =00cputime=00, =00filesize=00, =00datasize=00, =00stacksize=00, =00coredumpsize=00, =00descriptors=00, =00vmemorysize=00, NULL }; ----------------------------------------------------------- signames.h had similar problems. The culprits were lines like printf("\t%c%s%c,\n", 034, lim[i], 034) in the .awk files. Somehow, the 034 was not being interpreted as a quote ("). I have gawk 3.0.4 installed, but I see that I configured it with the --enable-non-decimal-data switch. I assume this means that 034 is taken to be an octal number, which is not intended. I changed the .awk files to just use \" in the format string instead of %c and a parameter. I've included patches below. (I'm not a subscriber to the list, so if there are any problems, please send me email.) - Ed ----------------------------------------------------------- *** Src/rlimits.awk~ Wed Apr 28 01:21:43 1999 --- Src/rlimits.awk Fri Aug 6 18:51:54 1999 *************** *** 63,69 **** if (msg[i] =3D=3D "") { badlimit++ ! printf("\t%c%s%c,\n", 034, lim[i], 034) } else ! printf("\t%c%s%c,\n", 034, msg[i], 034) print "\tNULL" print "};" --- 63,69 ---- if (msg[i] =3D=3D "") { badlimit++ ! printf("\t\"%s\",\n", lim[i]) } else ! printf("\t\"%s\",\n", msg[i]) print "\tNULL" print "};" ----------------------------------------------------------- *** Src/signames.awk~ Wed Apr 28 01:21:45 1999 --- Src/signames.awk Fri Aug 6 18:54:32 1999 *************** *** 52,63 **** END { ps =3D "%s" ! ifdstr =3D sprintf("#ifdef USE_SUSPENDED\n\t%csuspended%s%c,\n%selse\= n\t%cstopped%s%c,\n#endif\n", 034, ps, 034, "#", 034, ps, 034) =20 ! printf("%s\n%s\n\n%s\t%d\n\n%s\n\n%s\n\t%c%s%c,\n", "/** signals.h = **/", "/** architecture-customized signals.h = for zsh **/", "#define SIGCOUNT", max, "#ifdef GLOBALS", "char *sigmsg[SIGC= OUNT+2] =3D {", 034, "done", 034) =20 for (i =3D 1; i <=3D 0 + max; i++) if (msg[i] =3D=3D "") { if (sig[i] =3D=3D "") ! printf("\t%c%c,\n", 034, 034) else if (sig[i] =3D=3D "STOP") printf ifdstr, " (signal)", " (signal)" --- 52,63 ---- END { ps =3D "%s" ! ifdstr =3D sprintf("#ifdef USE_SUSPENDED\n\t\"suspended%s\",\n%selse\= n\t\"stopped%s\",\n#endif\n", ps, "#", ps) =20 ! printf("%s\n%s\n\n%s\t%d\n\n%s\n\n%s\n\t\"%s\",\n", "/** signals.h = **/", "/** architecture-customized signals.h = for zsh **/", "#define SIGCOUNT", max, "#ifdef GLOBALS", "char *sigmsg[SIGC= OUNT+2] =3D {", "done") =20 for (i =3D 1; i <=3D 0 + max; i++) if (msg[i] =3D=3D "") { if (sig[i] =3D=3D "") ! printf "\t\"\",\n" else if (sig[i] =3D=3D "STOP") printf ifdstr, " (signal)", " (signal)" *************** *** 69,87 **** printf ifdstr, " (tty output)", " (tty output)" else ! printf("\t%cSIG%s%c,\n", 034, sig[i], 034) } else ! printf("\t%c%s%c,\n", 034, msg[i], 034) print "\tNULL" print "};" print "" printf "char *sigs[SIGCOUNT+4] =3D {\n" ! printf("\t%cEXIT%c,\n", 034, 034) for (i =3D 1; i <=3D 0 + max; i++) if (sig[i] =3D=3D "") ! printf("\t%c%d%c,\n", 034, i, 034) else ! printf("\t%c%s%c,\n", 034, sig[i], 034) ! printf("\t%cZERR%c,\n", 034, 034) ! printf("\t%cDEBUG%c,\n", 034, 034) print "\tNULL" print "};" --- 69,87 ---- printf ifdstr, " (tty output)", " (tty output)" else ! printf("\t\"SIG%s\",\n", sig[i]) } else ! printf("\t\"%s\",\n", msg[i]) print "\tNULL" print "};" print "" printf "char *sigs[SIGCOUNT+4] =3D {\n" ! printf "\t\"EXIT\",\n" for (i =3D 1; i <=3D 0 + max; i++) if (sig[i] =3D=3D "") ! printf("\t\"%d\",\n", i) else ! printf("\t\"%s\",\n", sig[i]) ! printf "\t\"ZERR\",\n" ! printf "\t\"DEBUG\",\n" print "\tNULL" print "};" -----------------------------------------------------------