Mon, 16 May 2016 00:01:59 +0200 Jeremie Courreges-Anglas <j...@wxcvbn.org> > "trondd" <tro...@kagu-tsuchi.com> writes: > > > On Sun, May 15, 2016 1:22 pm, Juan Francisco Cantero Hurtado wrote: > >> On Sun, May 15, 2016 at 06:43:16PM +0200, Jeremie Courreges-Anglas wrote: > >>> "Ted Unangst" <t...@tedunangst.com> writes: > >>> > >>> > i'm tired of seeing bug reports with no subject. i also get a fair bit > >>> of spam > >>> > with no subject and i am easily confused. something is better than > >>> nothing. > >>> > >>> I fear that after that change all bug reports will only have [bug > >>> report] as Subject. Something that wouldn't catch the eye of people > >>> that might be able to understand and fix the problem. > >> > > > > Why not make Subject a required field? Might want to also add a comment > > there like Category and Synopsis have. > > I like this idea, but those are not "required" fields. Also I don't > find the warning message helpful. > > Here's a patch that builds up on Tim's diff. Tell the user which fields > should be filled in, in the order where they are found in the bugreport.
An idea, how about form it Subject: [bugrep] subject, or whatever you would prefer in the brackets, to discern the subjects when intermixed. Apologies for not backing this humble useless suggestion with a patch. > Index: sendbug.c > =================================================================== > RCS file: /cvs/src/usr.bin/sendbug/sendbug.c,v > retrieving revision 1.74 > diff -u -p -p -u -r1.74 sendbug.c > --- sendbug.c 17 Mar 2016 19:40:43 -0000 1.74 > +++ sendbug.c 15 May 2016 21:53:39 -0000 > @@ -30,7 +30,7 @@ > #define BEGIN64 "begin-base64 " > #define END64 "====" > > -int checkfile(const char *); > +void checkfile(const char *); > void debase(void); > void dmesg(FILE *); > int editit(const char *); > @@ -164,8 +164,7 @@ main(int argc, char *argv[]) > errx(1, "report unchanged, nothing sent"); > > prompt: > - if (!checkfile(tmppath)) > - fprintf(stderr, "fields are blank, must be filled in\n"); > + checkfile(tmppath); > c = prompt(); > switch (c) { > case 'a': > @@ -508,26 +507,37 @@ matchline(const char *s, const char *lin > /* > * Are all required fields filled out? > */ > -int > +void > checkfile(const char *pathname) > { > FILE *fp; > size_t len; > - int category = 0, synopsis = 0; > + int category = 0, synopsis = 0, subject = 0; > char *buf; > > if ((fp = fopen(pathname, "r")) == NULL) { > warn("%s", pathname); > - return (0); > + return; > } > while ((buf = fgetln(fp, &len))) { > if (matchline(">Category:", buf, len)) > category = 1; > else if (matchline(">Synopsis:", buf, len)) > synopsis = 1; > + else if (matchline("Subject:", buf, len)) > + subject = 1; > } > fclose(fp); > - return (category && synopsis); > + if (!category || !synopsis || !subject) { > + fprintf(stderr, "Some fields are blank, please fill them in: "); > + if (!subject) > + fprintf(stderr, "Subject "); > + if (!synopsis) > + fprintf(stderr, "Synopsis "); > + if (!category) > + fprintf(stderr, "Category "); > + fputc('\n', stderr); > + } > } > > void >