Date: Sun, 26 Dec 1999 17:34:21 +0800 From: Peter Wemm <peter@netplex.com.au> To: "Daniel C. Sobral" <dcs@newsguy.com> Cc: Marcel Moolenaar <marcel@scc.nl>, Bruce Evans <bde@zeta.org.au>, Dag-Erling Smorgrav <des@flood.ping.uio.no>, cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src Makefile.inc1 Message-ID: <19991226093421.875B91CC6@overcee.netplex.com.au> In-Reply-To: Message from "Daniel C. Sobral" <dcs@newsguy.com> of "Sun, 26 Dec 1999 15:52:33 %2B0900." <3865BB31.880BDA2D@newsguy.com>
next in thread | previous in thread | raw e-mail | index | archive | help
"Daniel C. Sobral" wrote: > Peter Wemm wrote: > > > > -C is silly. It adds a flag to the header of the generated files to say > > "this data *might* have a comment". fortune looks to see if there "might" > > be a comment and skips the double delimiters if so. The double delimiter > > is otherwise illegal. If an old fortune binary sees a new file, it won't > > know about the double delimiter. If a new fortune sees the double > > delimiter it will ignore it. This is exactly the same behavior that would > > happen if -C was unconditional. > > That is not true. Just try making a file without -C containing a > "comment" and then fortune'ing it. No problem, RELENG_2_2's strfile and fortune, *with* the ignore-comments patch but without -C: ... 96162 fortune NAMI "/usr/share/games/fortune/fortunes2" 96162 fortune RET open 3 ... 96162 fortune CALL open(0x8051000,0,0x1) 96162 fortune NAMI "/usr/share/games/fortune/fortunes2.dat" 96162 fortune RET open 4 ... 96162 fortune CALL write(0x1,0x8054000,0x27) 96162 fortune GIO fd 1 wrote 39 bytes "Others will look to you for stability, " 96162 fortune RET write 39/0x27 96162 fortune CALL write(0x1,0x8054000,0x22) 96162 fortune GIO fd 1 wrote 34 bytes "so hide when you bite your nails. " 96162 fortune RET write 34/0x22 pwroot@overcee[5:18pm]~src/games/fortune/datfiles-269# strfile No input file name strfile [-iorsx] [-c char] sourcefile [datafile] pwroot@overcee[5:19pm]~src/games/fortune/datfiles-270# more /usr/share/games/fortune/fortunes2 %% $FreeBSD: src/games/fortune/datfiles/fortunes2,v 1.17 1999/11/27 07:18:33 wes Exp $ ======================================================================= || || || The FORTUNE-COOKIE program is soon to be a Major Motion Picture! || ... -C is just a build inconvenience to make %% parsing optional. We have enough options already without adding them for things that don't make sense to be an option. And.. with an *unpatched* RELENG_2_2 fortune and strfile: pwroot@overcee[5:21pm]~src/games/fortune/fortune-274# fortune /usr/share/games/fortune/fortunes2 The more the merrier. -- John Heywood ie: it still works. Even if it didn't, we don't need -C at 'make world' time because strfile does nothing special with the %% lines, and a new fortune(1) is installed at exactly the same time as the new datfiles. strfile from as far back as RELEASE_2_0 works with the -current datfiles and -current fortune(1). (However, an x86 strfile won't generate a .dat file that will work on an Alpha because there are 'unsigned long's in the header. IMHO, we should make thie u_int32_t before 4.0-R. strfile would need to be a x86->alpha cross build tool). A patch to remove the bogus -C (but keep comment skip code), and to fix a couple of style bugs (long/int32 stuff left out, but I have that too): Index: datfiles/Makefile =================================================================== RCS file: /home/ncvs/src/games/fortune/datfiles/Makefile,v retrieving revision 1.24 diff -u -r1.24 Makefile --- datfiles/Makefile 1999/12/23 19:09:59 1.24 +++ datfiles/Makefile 1999/12/26 09:00:48 @@ -34,12 +34,12 @@ .for f in fortunes fortunes2 fortunes2-o limerick startrek zippy $f.dat: $f PATH=$$PATH:/usr/games:${.OBJDIR}/../strfile \ - strfile -Crs ${.ALLSRC} ${.TARGET} + strfile -rs ${.ALLSRC} ${.TARGET} .endfor fortunes-o.dat: fortunes-o PATH=$$PATH:/usr/games:${.OBJDIR}/../strfile \ - strfile -Crsx ${.ALLSRC} ${.TARGET} + strfile -rsx ${.ALLSRC} ${.TARGET} fortunes-o: fortunes-o.${TYPE} tr a-zA-Z n-za-mN-ZA-M < ${.ALLSRC} > ${.TARGET} Index: fortune/fortune.c =================================================================== RCS file: /home/ncvs/src/games/fortune/fortune/fortune.c,v retrieving revision 1.18 diff -u -r1.18 fortune.c --- fortune/fortune.c 1999/11/30 03:48:52 1.18 +++ fortune/fortune.c 1999/12/26 09:00:48 @@ -262,9 +262,8 @@ *p = 'a' + (ch - 'a' + 13) % 26; } } - if (fp->tbl.str_flags & STR_COMMENTS - && line[0] == fp->tbl.str_delim - && line[1] == fp->tbl.str_delim) + if (line[0] == fp->tbl.str_delim && + line[1] == fp->tbl.str_delim) continue; fputs(line, stdout); } @@ -1359,9 +1358,8 @@ sp = Fortbuf; in_file = FALSE; while (fgets(sp, Fort_len, fp->inf) != NULL) - if (fp->tbl.str_flags & STR_COMMENTS - && sp[0] == fp->tbl.str_delim - && sp[1] == fp->tbl.str_delim) + if (sp[0] == fp->tbl.str_delim && + sp[1] == fp->tbl.str_delim) continue; else if (!STR_ENDSTRING(sp, fp->tbl)) sp += strlen(sp); Index: strfile/strfile.8 =================================================================== RCS file: /home/ncvs/src/games/fortune/strfile/strfile.8,v retrieving revision 1.5 diff -u -r1.5 strfile.8 --- strfile/strfile.8 1999/10/27 18:34:04 1.5 +++ strfile/strfile.8 1999/12/26 09:00:48 @@ -65,15 +65,6 @@ .Pp The options are as follows: .Bl -tag -width "-c char" -.It Fl C -Flag the file as containing comments. This option cases the -.Dv STR_COMMENTS -bit in the header -.Ar str_flags -field to be set. -Comments are designated by two delimiter characters at the -beginning of the line, though strfile does not give any special -treatment to comment lines. .It Fl c Ar char Change the delimiting character from the percent sign to .Ar char . @@ -108,6 +99,9 @@ .Ar str_flags field to be set. .El +.Pp +Comments are designated by two delimiter characters at the +beginning of the line. .Pp The format of the header is: .Bd -literal Index: strfile/strfile.c =================================================================== RCS file: /home/ncvs/src/games/fortune/strfile/strfile.c,v retrieving revision 1.15 diff -u -r1.15 strfile.c --- strfile/strfile.c 1999/11/16 02:57:00 1.15 +++ strfile/strfile.c 1999/12/26 09:00:48 @@ -115,7 +115,6 @@ Outfile[MAXPATHLEN] = "", /* output file name */ Delimch = '%'; /* delimiting character */ -int Cflag = FALSE; /* embedded comments */ int Sflag = FALSE; /* silent run flag */ int Oflag = FALSE; /* ordering flag */ int Iflag = FALSE; /* ignore case flag */ @@ -218,9 +217,6 @@ (void) fclose(inf); Tbl.str_numstr = Num_pts - 1; - if (Cflag) - Tbl.str_flags |= STR_COMMENTS; - if (Oflag) do_order(); else if (Rflag) @@ -268,11 +264,8 @@ extern int optind; int ch; - while ((ch = getopt(argc, argv, "Cc:iorsx")) != EOF) + while ((ch = getopt(argc, argv, "c:iorsx")) != EOF) switch(ch) { - case 'C': /* embedded comments */ - Cflag++; - break; case 'c': /* new delimiting char */ Delimch = *optarg; if (!isascii(Delimch)) { @@ -319,7 +312,7 @@ void usage() { (void) fprintf(stderr, - "strfile [-Ciorsx] [-c char] sourcefile [datafile]\n"); + "strfile [-iorsx] [-c char] sourcefile [datafile]\n"); exit(1); } Index: strfile/strfile.h =================================================================== RCS file: /home/ncvs/src/games/fortune/strfile/strfile.h,v retrieving revision 1.3 diff -u -r1.3 strfile.h --- strfile/strfile.h 1999/10/02 12:33:37 1.3 +++ strfile/strfile.h 1999/12/26 09:00:49 @@ -49,7 +49,6 @@ #define STR_RANDOM 0x1 /* randomized pointers */ #define STR_ORDERED 0x2 /* ordered pointers */ #define STR_ROTATED 0x4 /* rot-13'd text */ -#define STR_COMMENTS 0x8 /* embedded comments */ unsigned long str_flags; /* bit field for flags */ unsigned char stuff[4]; /* long aligned space */ #define str_delim stuff[0] /* delimiting character */ Cheers, -Peter -- Peter Wemm - peter@FreeBSD.org; peter@yahoo-inc.com; peter@netplex.com.au To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19991226093421.875B91CC6>