ping.
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)
>