Hi, Nice work! You ought to attach it to http://savannah.gnu.org/bugs/?23273
BTW, I’m CC’ing the debian bug, in case someone reads about it there and wants to comment. Greetings, Joachim Am Mittwoch, den 09.07.2008, 20:11 +0100 schrieb James Coleman: > Sorry I'm not sure about where to submit a patch. > http://savannah.gnu.org/projects/make/ ? > > > I keep on thinking about this since I saw your request Joachim! > Now maybe I can lay it to rest whether this is used or not. > > > As simple as possible I think. > Don't call to fatal so that easter egg error text is clear of adornment. > Exits using die(2) as fatal does. > Doesn't trigger action if -k (continue on error) is specified. > There's already a strcmp() call in remake.c (strncmp used for this patch). > There's already a getuid() call in misc.c, I think for all platforms. > Tested on linux, solaris and cygwin. > > > patch also attached > > $ cat make_me_some_tea.patch > Index: remake.c > =================================================================== > RCS file: /sources/make/make/remake.c,v > retrieving revision 1.137 > diff -u -r1.137 remake.c > --- remake.c 5 Nov 2007 14:15:20 -0000 1.137 > +++ remake.c 9 Jul 2008 16:58:29 -0000 > @@ -353,6 +353,13 @@ > > if (!keep_going_flag) > { > + // bug #23273: http://xkcd.com/149/ > + if (!strncmp ("me", file->name, 3)) > + if (getuid()) > + fputs ("What? Make it yourself.\n", stderr), die (2); > + else > + fputs ("Okay.\n", stderr), die (2); > + > if (file->parent == 0) > fatal (NILF, msg_noparent, "", file->name, ""); > > > > > $ ./make the cat some tea > make: *** No rule to make target `the'. Stop. > > $ ./make me a sandwich > What? Make it yourself. > > $ sudo ./make me a sandwich > Okay. > > $ ./make -k me a sandwich > make: *** No rule to make target `me'. > make: *** No rule to make target `a'. > make: *** No rule to make target `sandwich'. > > $ ./make -f Makefile.me -k me a sandwich > make: Nothing to be done for `me'. > make: *** No rule to make target `a'. > make: Nothing to be done for `sandwich'. > > $ ./make -f Makefile.me me a sandwich > make: Nothing to be done for `me'. > make: *** No rule to make target `a'. Stop. > > $ ./make me a cup of tea please > What? Make it yourself. > > $ make -k me a god > make: *** No rule to make target `me'. > make: *** No rule to make target `a'. > make: *** No rule to make target `god'. > > $ su - > > [EMAIL PROTECTED] # cd ~yyy/make-3.81 > > [EMAIL PROTECTED] # ./make me a god > Okay. > > [EMAIL PROTECTED] # ./make haste not waste > make: *** No rule to make target `haste'. Stop. > > > > > Joachim Breitner wrote: > > Follow-up Comment #3, bug #23273 (project make): > > > > Sure, I know how to make this happen on my machine (also by shell aliases > > etc.), but that’s not the point of an easter egg. I imagine someone reading > > that comic strip, trying it out just for the sake of it and then be really > > surprised that it works. > > > > _______________________________________________________ > > > > Reply to this item at: > > > > <http://savannah.gnu.org/bugs/?23273> > > > > einfaches Textdokument-Anlage (make_me_some_tea.patch) > Index: remake.c > =================================================================== > RCS file: /sources/make/make/remake.c,v > retrieving revision 1.137 > diff -u -r1.137 remake.c > --- remake.c 5 Nov 2007 14:15:20 -0000 1.137 > +++ remake.c 9 Jul 2008 16:58:29 -0000 > @@ -353,6 +353,13 @@ > > if (!keep_going_flag) > { > + // bug #23273: http://xkcd.com/149/ > + if (!strncmp ("me", file->name, 3)) > + if (getuid()) > + fputs ("What? Make it yourself.\n", stderr), die (2); > + else > + fputs ("Okay.\n", stderr), die (2); > + > if (file->parent == 0) > fatal (NILF, msg_noparent, "", file->name, ""); > -- Joachim "nomeata" Breitner Debian Developer [EMAIL PROTECTED] | ICQ# 74513189 | GPG-Keyid: 4743206C JID: [EMAIL PROTECTED] | http://people.debian.org/~nomeata
signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil