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)