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)

Reply via email to