Date: Fri, 19 Feb 1999 05:30:03 -0800 (PST) From: "Matthew D. Fuller" <fullermd@futuresouth.com> To: freebsd-bugs@FreeBSD.org Subject: Re: bin/10152: fortune(6) gives bogus diagnostic sometimes [RFC] Message-ID: <199902191330.FAA00855@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/10152; it has been noted by GNATS. From: "Matthew D. Fuller" <fullermd@futuresouth.com> To: FreeBSD-gnats-submit@FreeBSD.ORG Cc: Mikhail Teterin <mi@misha.cisco.com> Subject: Re: bin/10152: fortune(6) gives bogus diagnostic sometimes [RFC] Date: Fri, 19 Feb 1999 02:42:20 -0600 OK, call for opinions on this. I see where the errors are coming from, but I'm not sure what an appropriate fix is, if a 'fix' is even appropriate. The error in this case is occuring here: if (access(datfile, R_OK) < 0) { free(datfile); DPRINTF(2, (stderr, "FALSE (no \".dat\" file)\n")); return FALSE; } Note that the warning message is NOT printed unless you use the undocumented debug flag, which is only enabled when fortune is compiled with -DDEBUG (which we always do by default). I've attached a patch later to document this in the manpage. When you run it as fortune -DD (see the 2 after DPRINTF there? That's how many times -D must be specified for the message in question to be printed), you see this: (ttyp1):{1672}% fortune -DD adding file "/usr/share/games/fortune/fortunes" path = "/usr/share/games/fortune/fortunes" is_fortfile(/usr/share/games/fortune/fortunes) returns FALSE (no ".dat" file) fortune:/usr/share/games/fortune/fortunes not a fortune file or directory The final error message is dies on doesn't help you at all unless you see the rest of it. There's a number of other reasons is_fortfile() can bomb out, so changing the message directly isn't quite the answer. Maybe is_fortfile() should spout a warning for permission denied? Most of the other warnings are non-fatal, and not even worthy of a warning, but this one seems to be; even if you're not in -D[...] mode. Regardless, I think the changes should be added into the manpage, since it seems to always be compiled with -DDEBUG. How does this look? It only deals with THIS problem, not with any related things, but it's better than nothing: Index: fortune.6 =================================================================== RCS file: /usr/cvs/src/games/fortune/fortune/fortune.6,v retrieving revision 1.5 diff -u -r1.5 fortune.6 --- fortune.6 1997/02/22 14:46:50 1.5 +++ fortune.6 1999/02/19 08:28:10 @@ -43,7 +43,7 @@ .Nd "print a random, hopefully interesting, adage" .Sh SYNOPSIS .Nm fortune -.Op Fl aefilosw +.Op Fl aDefilosw .Op Fl m Ar pattern .Oo .Op Ar \&N% @@ -63,6 +63,9 @@ (See the .Fl o option for more information on offensive fortunes.) +.It Fl D +Enable additional debugging output. +Specify this option multiple times for more verbose output. .It Fl e Consider all fortune files to be of equal size (see discussion below on multiple files). Index: fortune.c =================================================================== RCS file: /usr/cvs/src/games/fortune/fortune/fortune.c,v retrieving revision 1.10 diff -u -r1.10 fortune.c --- fortune.c 1997/06/14 00:37:08 1.10 +++ fortune.c 1999/02/19 08:37:49 @@ -799,8 +799,12 @@ datfile = copy(file, (unsigned int) (strlen(file) + 4)); /* +4 for ".dat" */ strcat(datfile, ".dat"); if (access(datfile, R_OK) < 0) { + DPRINTF(2, (stderr, "FALSE (no readable \".dat\" file)\n")); +#ifdef DEBUG + if (Debug < 2) + DPRINTF(0, (stderr, "Warning: file \"%s\" unreadable\n", datfile)); +#endif free(datfile); - DPRINTF(2, (stderr, "FALSE (no \".dat\" file)\n")); return FALSE; } if (datp != NULL) --- *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* | Matthew Fuller http://www.over-yonder.net/~fullermd | * fullermd@futuresouth.com fullermd@over-yonder.net * | UNIX Systems Administrator Specializing in FreeBSD | * FutureSouth Communications ISPHelp ISP Consulting * | "The only reason I'm burning my candle at both ends, | * is because I haven't figured out how to light the * | middle yet" | *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199902191330.FAA00855>