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)