On Sat, Dec 05, 2015 at 03:29:06AM -0500, Ted Unangst wrote: > looks good, but you've got some mostly unrelated changes in here. this should > be separate, but ok for the rest.
It started with a "check argv" code review and ended up with __progname adjustments, so I agree here and removed the newfs parts for a separate commit. Also the gomoku KNF is a bit distracting, so it's gone now, too. Theo pointed out that tradcpp and lex should stay as they are, because they are upstream projects. Joerg mentioned the getprogname function previously, so I left id and nl alone, too. The patch touches these programs now: mt, pax, gomoku, telnet, crunchgen, pppd, and pdisk As I have removed the concerning parts and got OKs for the rest, I will commit it later this day if nobody objects. Index: bin/mt/mt.c =================================================================== RCS file: /cvs/src/bin/mt/mt.c,v retrieving revision 1.36 diff -u -p -u -p -r1.36 mt.c --- bin/mt/mt.c 12 Nov 2013 04:36:02 -0000 1.36 +++ bin/mt/mt.c 5 Dec 2015 10:01:55 -0000 @@ -88,6 +88,8 @@ int _rmtmtioctop(int fd, struct mtop *c struct mtget *_rmtstatus(int fd); void _rmtclose(void); +extern char *__progname; + char *host = NULL; /* remote host (if any) */ int @@ -133,7 +135,6 @@ _rmtclose(void) #endif } -char *progname; int eject = 0; int @@ -145,12 +146,7 @@ main(int argc, char *argv[]) char *p, *tape, *realtape, *opts; size_t len; - if ((progname = strrchr(argv[0], '/'))) - progname++; - else - progname = argv[0]; - - if (strcmp(progname, "eject") == 0) { + if (strcmp(__progname, "eject") == 0) { opts = "t"; eject = 1; tape = NULL; @@ -320,9 +316,9 @@ void usage(void) { if (eject) - (void)fprintf(stderr, "usage: %s [-t] device\n", progname); + (void)fprintf(stderr, "usage: %s [-t] device\n", __progname); else (void)fprintf(stderr, - "usage: %s [-f device] command [count]\n", progname); + "usage: %s [-f device] command [count]\n", __progname); exit(X_USAGE); } Index: bin/pax/options.c =================================================================== RCS file: /cvs/src/bin/pax/options.c,v retrieving revision 1.91 diff -u -p -u -p -r1.91 options.c --- bin/pax/options.c 18 May 2015 20:26:16 -0000 1.91 +++ bin/pax/options.c 5 Dec 2015 10:01:56 -0000 @@ -184,14 +184,12 @@ char *chdname = NULL; void options(int argc, char **argv) { + extern char *__progname; /* * Are we acting like pax, tar or cpio (based on argv[0]) */ - if ((argv0 = strrchr(argv[0], '/')) != NULL) - argv0++; - else - argv0 = argv[0]; + argv0 = __progname; if (strcmp(NM_TAR, argv0) == 0) { tar_options(argc, argv); Index: games/gomoku/main.c =================================================================== RCS file: /cvs/src/games/gomoku/main.c,v retrieving revision 1.29 diff -u -p -u -p -r1.29 main.c --- games/gomoku/main.c 30 Nov 2015 08:44:51 -0000 1.29 +++ games/gomoku/main.c 5 Dec 2015 10:01:56 -0000 @@ -45,10 +45,11 @@ #define PROGRAM 1 /* get input from program */ #define INPUTF 2 /* get input from a file */ +extern char *__progname; /* name of program */ + int interactive = 1; /* true if interactive */ int debug; /* true if debugging */ int test; /* both moves come from 1: input, 2: computer */ -char *prog; /* name of program */ FILE *debugfp; /* file for debug output */ FILE *inputfp; /* file for debug input */ @@ -84,12 +85,6 @@ main(argc, argv) if (pledge("stdio rpath wpath cpath tty", NULL) == -1) err(1, "pledge"); - prog = strrchr(argv[0], '/'); - if (prog) - prog++; - else - prog = argv[0]; - if ((tmpname = getlogin()) != NULL) strlcpy(you, tmpname, sizeof(you)); else @@ -117,7 +112,7 @@ main(argc, argv) default: fprintf(stderr, "usage: %s [-bcdu] [-D debugfile] [inputfile]\n", - prog); + __progname); exit(1); } } @@ -194,8 +189,8 @@ again: } } if (interactive) { - plyr[BLACK] = input[BLACK] == USER ? you : prog; - plyr[WHITE] = input[WHITE] == USER ? you : prog; + plyr[BLACK] = input[BLACK] == USER ? you : __progname; + plyr[WHITE] = input[WHITE] == USER ? you : __progname; bdwho(1); } @@ -222,8 +217,8 @@ again: input[WHITE] = PROGRAM; break; } - plyr[BLACK] = input[BLACK] == USER ? you : prog; - plyr[WHITE] = input[WHITE] == USER ? you : prog; + plyr[BLACK] = input[BLACK] == USER ? you : __progname; + plyr[WHITE] = input[WHITE] == USER ? you : __progname; bdwho(1); goto top; @@ -554,7 +549,7 @@ void panic(str) char *str; { - fprintf(stderr, "%s: %s\n", prog, str); + fprintf(stderr, "%s: %s\n", __progname, str); fputs("resign\n", stdout); quit(0); } Index: usr.bin/telnet/main.c =================================================================== RCS file: /cvs/src/usr.bin/telnet/main.c,v retrieving revision 1.35 diff -u -p -u -p -r1.35 main.c --- usr.bin/telnet/main.c 19 Nov 2015 22:01:33 -0000 1.35 +++ usr.bin/telnet/main.c 5 Dec 2015 10:01:56 -0000 @@ -77,6 +77,7 @@ int main(int argc, char *argv[]) { int ch; + extern char *__progname; char *user, *alias; const char *errstr; @@ -84,10 +85,7 @@ main(int argc, char *argv[]) TerminalSaveState(); - if ((prompt = strrchr(argv[0], '/'))) - ++prompt; - else - prompt = argv[0]; + prompt = __progname; user = alias = NULL; Index: usr.sbin/crunchgen/crunched_main.c =================================================================== RCS file: /cvs/src/usr.sbin/crunchgen/crunched_main.c,v retrieving revision 1.4 diff -u -p -u -p -r1.4 crunched_main.c --- usr.sbin/crunchgen/crunched_main.c 11 Jan 2014 04:43:00 -0000 1.4 +++ usr.sbin/crunchgen/crunched_main.c 5 Dec 2015 10:01:56 -0000 @@ -47,22 +47,19 @@ extern struct stub entry_points[]; int main(int argc, char *argv[], char **envp) { - char *slash, *basename; + extern char *__progname; struct stub *ep; - if (argv[0] == NULL || *argv[0] == '\0') + if (__progname == NULL || *__progname == '\0') crunched_usage(); - slash = strrchr(argv[0], '/'); - basename = slash ? slash + 1 : argv[0]; - for (ep = entry_points; ep->name != NULL; ep++) - if (!strcmp(basename, ep->name)) + if (!strcmp(__progname, ep->name)) break; if (ep->name) return ep->f(argc, argv, envp); - fprintf(stderr, "%s: %s not compiled in\n", EXECNAME, basename); + fprintf(stderr, "%s: %s not compiled in\n", EXECNAME, __progname); crunched_usage(); } Index: usr.sbin/pppd/main.c =================================================================== RCS file: /cvs/src/usr.sbin/pppd/main.c,v retrieving revision 1.52 diff -u -p -u -p -r1.52 main.c --- usr.sbin/pppd/main.c 26 Oct 2015 11:10:53 -0000 1.52 +++ usr.sbin/pppd/main.c 5 Dec 2015 10:01:57 -0000 @@ -90,7 +90,6 @@ extern char *strerror(); char ifname[IFNAMSIZ]; /* Interface name */ int ifunit; /* Interface unit number */ -char *progname; /* Name of this program */ char hostname[HOST_NAME_MAX+1]; /* Our hostname */ static char default_devnam[PATH_MAX]; /* name of default device */ static pid_t pid; /* Our pid */ @@ -222,8 +221,6 @@ main(argc, argv) */ for (i = 0; (protp = protocols[i]) != NULL; ++i) (*protp->init)(0); - - progname = *argv; if (!options_from_file(_PATH_SYSOPTIONS, !privileged, 0, 1) || !options_from_user()) Index: usr.sbin/pppd/options.c =================================================================== RCS file: /cvs/src/usr.sbin/pppd/options.c,v retrieving revision 1.28 diff -u -p -u -p -r1.28 options.c --- usr.sbin/pppd/options.c 16 Jan 2015 06:40:19 -0000 1.28 +++ usr.sbin/pppd/options.c 5 Dec 2015 10:01:58 -0000 @@ -517,7 +517,7 @@ usage() { if (phase == PHASE_INITIALIZE) fprintf(stderr, usage_string, VERSION, PATCHLEVEL, IMPLEMENTATION, - progname); + __progname); } /* @@ -687,7 +687,7 @@ option_error(char *fmt, ...) vfmtmsg(buf, sizeof(buf), fmt, args); va_end(args); if (phase == PHASE_INITIALIZE) - fprintf(stderr, "%s: %s\n", progname, buf); + fprintf(stderr, "%s: %s\n", __progname, buf); syslog(LOG_ERR, "%s", buf); } Index: usr.sbin/pppd/pppd.h =================================================================== RCS file: /cvs/src/usr.sbin/pppd/pppd.h,v retrieving revision 1.20 diff -u -p -u -p -r1.20 pppd.h --- usr.sbin/pppd/pppd.h 12 Sep 2015 12:42:36 -0000 1.20 +++ usr.sbin/pppd/pppd.h 5 Dec 2015 10:01:58 -0000 @@ -77,7 +77,7 @@ extern char hostname[]; /* Our hostname extern u_char outpacket_buf[]; /* Buffer for outgoing packets */ extern int phase; /* Current state of link - see values below */ extern int baud_rate; /* Current link speed in bits/sec */ -extern char *progname; /* Name of this program */ +extern char *__progname; /* Name of this program */ extern int redirect_stderr;/* Connector's stderr should go to file */ extern char peer_authname[];/* Authenticated name of peer */ extern int privileged; /* We were run by real-uid root */ Index: sbin/pdisk/errors.c =================================================================== RCS file: /cvs/src/sbin/pdisk/errors.c,v retrieving revision 1.7 diff -u -p -u -p -r1.7 errors.c --- sbin/pdisk/errors.c 25 May 2010 19:01:32 -0000 1.7 +++ sbin/pdisk/errors.c 5 Dec 2015 10:01:58 -0000 @@ -58,7 +58,7 @@ // // Global Variables // -char *program_name; +extern char *__progname; // @@ -70,20 +70,9 @@ char *program_name; // Routines // void -init_program_name(char **argv) -{ - if ((program_name = strrchr(argv[0], '/')) != (char *)NULL) { - program_name++; - } else { - program_name = argv[0]; - } -} - - -void do_help() { - printf("usage: %s [-hilrv] disk\n", program_name); + printf("usage: %s [-hilrv] disk\n", __progname); /* {"debug", no_argument, 0, 'd'}, {"abbr", no_argument, 0, 'a'}, @@ -112,7 +101,7 @@ fatal(int value, const char *fmt, ...) { va_list ap; - fprintf(stderr, "%s: ", program_name); + fprintf(stderr, "%s: ", __progname); va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); @@ -136,7 +125,7 @@ error(int value, const char *fmt, ...) { va_list ap; - fprintf(stderr, "%s: ", program_name); + fprintf(stderr, "%s: ", __progname); va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); Index: sbin/pdisk/errors.h =================================================================== RCS file: /cvs/src/sbin/pdisk/errors.h,v retrieving revision 1.3 diff -u -p -u -p -r1.3 errors.h --- sbin/pdisk/errors.h 27 Apr 2006 19:52:21 -0000 1.3 +++ sbin/pdisk/errors.h 5 Dec 2015 10:01:58 -0000 @@ -54,7 +54,6 @@ extern int hflag; // Forward declarations // void do_help(void); -void init_program_name(char **argv); void error(int value, const char *fmt, ...); void fatal(int value, const char *fmt, ...); void usage(const char *kind); Index: sbin/pdisk/pdisk.c =================================================================== RCS file: /cvs/src/sbin/pdisk/pdisk.c,v retrieving revision 1.17 diff -u -p -u -p -r1.17 pdisk.c --- sbin/pdisk/pdisk.c 20 Aug 2015 22:02:21 -0000 1.17 +++ sbin/pdisk/pdisk.c 5 Dec 2015 10:01:58 -0000 @@ -131,8 +131,6 @@ main(int argc, char **argv) int name_index; char *versionstr; - init_program_name(argv); - if (sizeof(DPME) != PBLOCK_SIZE) { fatal(-1, "Size of partition map entry (%d) " "is not equal to block size (%d)\n",