Theo Buehler wrote:
> ping.
>
ok
> On Tue, Dec 08, 2015 at 07:15:39PM +0100, Theo Buehler wrote:
> > On Sat, Nov 07, 2015 at 12:20:42PM +0100, Tobias Stoeckmann wrote:
> > > Based on Todd's patch for at and cron, I did a grep through our base
> > > tree to see if there are more occurrences of self-made __progname
> > > handling.
> >
> > A few more of those:
> >
> > Index: caesar/caesar.c
> > ===================================================================
> > RCS file: /var/cvs/src/games/caesar/caesar.c,v
> > retrieving revision 1.17
> > diff -u -p -r1.17 caesar.c
> > --- caesar/caesar.c 14 Oct 2015 08:12:12 -0000 1.17
> > +++ caesar/caesar.c 8 Dec 2015 17:40:00 -0000
> > @@ -69,7 +69,8 @@ int
> > main(int argc, char *argv[])
> > {
> > int ch, i, nread;
> > - char *inbuf, *p, **av;
> > + extern char *__progname;
> > + char *inbuf;
> > int obs[26], try, winner;
> > double dot, winnerdot;
> >
> > @@ -77,11 +78,7 @@ main(int argc, char *argv[])
> > err(1, "pledge");
> >
> > /* check to see if we were called as rot13 */
> > - av = argv;
> > - p = strrchr(*av, '/');
> > - if (p++ == NULL)
> > - p = *av;
> > - if (strcmp(p,"rot13") == 0)
> > + if (strcmp(__progname, "rot13") == 0)
> > printit(13);
> >
> > if (argc > 1) {
> > Index: hack/hack.end.c
> > ===================================================================
> > RCS file: /var/cvs/src/games/hack/hack.end.c,v
> > retrieving revision 1.13
> > diff -u -p -r1.13 hack.end.c
> > --- hack/hack.end.c 24 Oct 2015 18:26:13 -0000 1.13
> > +++ hack/hack.end.c 8 Dec 2015 17:53:00 -0000
> > @@ -613,7 +613,7 @@ charcat(char *s, char c)
> > void
> > prscore(int argc, char **argv)
> > {
> > - extern char *hname;
> > + extern char *__progname;
> > char **players;
> > int playerct;
> > int rank;
> > @@ -699,7 +699,7 @@ prscore(int argc, char **argv)
> > if(playerct > 1) printf("any of ");
> > for(i=0; i<playerct; i++)
> > printf("%s%s", players[i], (i<playerct-1)?", ":".\n");
> > - printf("Call is: %s -s [playernames]\n", hname);
> > + printf("Call is: %s -s [playernames]\n", __progname);
> > }
> > }
> > return;
> > Index: hack/hack.main.c
> > ===================================================================
> > RCS file: /var/cvs/src/games/hack/hack.main.c,v
> > retrieving revision 1.18
> > diff -u -p -r1.18 hack.main.c
> > --- hack/hack.main.c 4 Nov 2015 21:22:10 -0000 1.18
> > +++ hack/hack.main.c 8 Dec 2015 17:54:14 -0000
> > @@ -90,7 +90,6 @@ int locknum; /* max num of
> > players */
> > char *catmore; /* default pager */
> > #endif
> > char SAVEF[PL_NSIZ + 11] = "save/"; /* save/99999player */
> > -char *hname; /* name of the game (argv[0] of call) */
> > char obuf[BUFSIZ]; /* BUFSIZ is defined in stdio.h */
> >
> > extern char *nomovemsg;
> > @@ -103,12 +102,12 @@ static void chdirx(char *, boolean);
> > int
> > main(int argc, char **argv)
> > {
> > + extern char *__progname;
> > int fd;
> > #ifdef CHDIR
> > char *dir;
> > #endif
> >
> > - hname = argv[0];
> > hackpid = getpid();
> >
> > #ifdef CHDIR /* otherwise no chdir() */
> > @@ -187,7 +186,7 @@ main(int argc, char **argv)
> > * Find the creation date of this game,
> > * so as to avoid restoring outdated savefiles.
> > */
> > - gethdate(hname);
> > + gethdate(__progname);
> >
> > /*
> > * We cannot do chdir earlier, otherwise gethdate will fail.
> > Index: hunt/huntd/driver.c
> > ===================================================================
> > RCS file: /var/cvs/src/games/hunt/huntd/driver.c,v
> > retrieving revision 1.22
> > diff -u -p -r1.22 driver.c
> > --- hunt/huntd/driver.c 25 Sep 2015 17:50:53 -0000 1.22
> > +++ hunt/huntd/driver.c 8 Dec 2015 18:07:36 -0000
> > @@ -52,7 +52,6 @@
> > #include "conf.h"
> > #include "server.h"
> >
> > -char *First_arg; /* pointer to argv[0] */
> > u_int16_t Server_port;
> > int Server_socket; /* test socket to answer datagrams */
> > FLAG should_announce = TRUE; /* true if listening on standard port */
> > @@ -88,6 +87,7 @@ main(ac, av)
> > static FLAG server = FALSE;
> > extern int optind;
> > extern char *optarg;
> > + extern char *__progname;
> > int c;
> > static struct timeval linger = { 0, 0 };
> > static struct timeval timeout = { 0, 0 }, *to;
> > @@ -97,8 +97,6 @@ main(ac, av)
> > int fd;
> > int background = 0;
> >
> > - First_arg = av[0];
> > -
> > config();
> >
> > while ((c = getopt(ac, av, "bsp:a:D:")) != -1) {
> > @@ -127,7 +125,7 @@ erred:
> > fprintf(stderr,
> > "usage: %s [-bs] [-a addr] [-D var=value] "
> > "[-p port]\n",
> > - av[0]);
> > + __progname);
> > exit(2);
> > }
> > }
> > Index: sail/main.c
> > ===================================================================
> > RCS file: /var/cvs/src/games/sail/main.c,v
> > retrieving revision 1.8
> > diff -u -p -r1.8 main.c
> > --- sail/main.c 11 Mar 2014 07:42:55 -0000 1.8
> > +++ sail/main.c 8 Dec 2015 18:02:01 -0000
> > @@ -43,6 +43,7 @@ main(argc, argv)
> > int argc;
> > char **argv;
> > {
> > + extern char *__progname;
> > char *p;
> > int i;
> > int fd;
> > @@ -56,10 +57,7 @@ main(argc, argv)
> > exit(1);
> > close(fd);
> >
> > - if ((p = strrchr(*argv, '/')))
> > - p++;
> > - else
> > - p = *argv;
> > + p = __progname;
> > if (strcmp(p, "driver") == 0 || strcmp(p, "saildriver") == 0)
> > mode = MODE_DRIVER;
> > else if (strcmp(p, "sail.log") == 0)
> >
>