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.
Here's the patch that fixes these cases.
In newfs and newfs_ext2fs, I prevent an out-of-boundary access in case
someone calls them with argv[0] set to an empty string. And gomoku
get a little style while at it.
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 7 Nov 2015 11:16:25 -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 7 Nov 2015 11:16:25 -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.28
diff -u -p -u -p -r1.28 main.c
--- games/gomoku/main.c 4 Nov 2015 21:22:10 -0000 1.28
+++ games/gomoku/main.c 7 Nov 2015 11:16:26 -0000
@@ -45,10 +45,11 @@
#define PROGRAM 1 /* get input from program */
#define INPUTF 2 /* get input from a file */
+extern char *__progname;
+
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 */
@@ -67,9 +68,7 @@ char *plyr[2]; /* who's who */
static char you[LOGIN_NAME_MAX]; /* username */
int
-main(argc, argv)
- int argc;
- char **argv;
+main(int argc, char *argv[])
{
char buf[128];
char fname[PATH_MAX];
@@ -81,12 +80,6 @@ main(argc, argv)
};
char *tmpname;
- prog = strrchr(argv[0], '/');
- if (prog)
- prog++;
- else
- prog = argv[0];
-
if ((tmpname = getlogin()) != NULL)
strlcpy(you, tmpname, sizeof(you));
else
@@ -114,7 +107,7 @@ main(argc, argv)
default:
fprintf(stderr,
"usage: %s [-bcdu] [-D debugfile] [inputfile]\n",
- prog);
+ __progname);
exit(1);
}
}
@@ -191,8 +184,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);
}
@@ -219,8 +212,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;
@@ -326,8 +319,7 @@ again:
}
int
-readinput(fp)
- FILE *fp;
+readinput(FILE *fp)
{
char *cp;
int c;
@@ -344,8 +336,7 @@ readinput(fp)
* Handle strange situations.
*/
void
-whatsup(signum)
- int signum;
+whatsup(int signum)
{
int i, pnum, n, s1, s2, d1, d2;
struct spotstr *sp;
@@ -493,8 +484,7 @@ syntax:
* Display debug info.
*/
void
-dlog(str)
- char *str;
+dlog(char *str)
{
if (debugfp)
@@ -506,10 +496,8 @@ dlog(str)
}
void
-logit(str)
- char *str;
+logit(char *str)
{
-
if (debugfp)
fprintf(debugfp, "%s\n", str);
if (interactive)
@@ -522,8 +510,7 @@ logit(str)
* Deal with a fatal error.
*/
void
-qlog(str)
- char *str;
+qlog(char *str)
{
dlog(str);
if (interactive)
@@ -534,8 +521,7 @@ qlog(str)
/* ARGSUSED */
void
-quit(sig)
- int sig;
+quit(int sig)
{
if (interactive) {
bdisp(); /* show final board */
@@ -548,10 +534,9 @@ quit(sig)
* Die gracefully.
*/
void
-panic(str)
- char *str;
+panic(char *str)
{
- fprintf(stderr, "%s: %s\n", prog, str);
+ fprintf(stderr, "%s: %s\n", __progname, str);
fputs("resign\n", stdout);
quit(0);
}
Index: libexec/tradcpp/main.c
===================================================================
RCS file: /cvs/src/libexec/tradcpp/main.c,v
retrieving revision 1.3
diff -u -p -u -p -r1.3 main.c
--- libexec/tradcpp/main.c 9 Oct 2015 12:20:18 -0000 1.3
+++ libexec/tradcpp/main.c 7 Nov 2015 11:16:26 -0000
@@ -93,6 +93,8 @@ struct commandline_macro {
const char *expansion;
};
+extern char *__progname;
+
static struct array commandline_macros;
static
@@ -937,17 +939,17 @@ check_arg_option(const char *opt, const
DEAD static
void
-usage(const char *progname, const char *fmt, ...)
+usage(const char *fmt, ...)
{
va_list ap;
- fprintf(stderr, "%s: ", progname);
+ fprintf(stderr, "%s: ", __progname);
va_start(ap, fmt);
vfprintf(stderr, fmt, ap);
va_end(ap);
fprintf(stderr, "\n");
- fprintf(stderr, "Usage: %s [options] [infile [outfile]]\n", progname);
+ fprintf(stderr, "Usage: %s [options] [infile [outfile]]\n", __progname);
fprintf(stderr, "Common options:\n");
fprintf(stderr, " -C Retain comments\n");
fprintf(stderr, " -Dmacro[=def] Predefine macro\n");
@@ -1028,18 +1030,13 @@ freestringlater(char *s)
int
main(int argc, char *argv[])
{
- const char *progname;
const char *inputfile = NULL;
const char *outputfile = NULL;
struct place cmdplace;
int i;
- progname = strrchr(argv[0], '/');
- progname = progname == NULL ? argv[0] : progname + 1;
- complain_init(progname);
-
if (pledge("stdio rpath wpath cpath", NULL) == -1) {
- fprintf(stderr, "%s: pledge: %s", progname, strerror(errno));
+ fprintf(stderr, "%s: pledge: %s", __progname, strerror(errno));
exit(1);
}
@@ -1067,7 +1064,7 @@ main(int argc, char *argv[])
i++;
continue;
}
- usage(progname, "Invalid option %s", argv[i]);
+ usage("Invalid option %s", argv[i]);
}
if (i < argc) {
inputfile = argv[i++];
@@ -1076,7 +1073,7 @@ main(int argc, char *argv[])
outputfile = argv[i++];
}
if (i < argc) {
- usage(progname, "Extra non-option argument %s", argv[i]);
+ usage("Extra non-option argument %s", argv[i]);
}
mode.output_file = outputfile;
Index: libexec/tradcpp/place.c
===================================================================
RCS file: /cvs/src/libexec/tradcpp/place.c,v
retrieving revision 1.1
diff -u -p -u -p -r1.1 place.c
--- libexec/tradcpp/place.c 30 Jul 2014 16:33:11 -0000 1.1
+++ libexec/tradcpp/place.c 7 Nov 2015 11:16:26 -0000
@@ -47,11 +47,11 @@ struct placefile {
DECLARRAY(placefile, static UNUSED);
DEFARRAY(placefile, static);
+extern char *__progname;
+
static struct placefilearray placefiles;
static bool overall_failure;
-static const char *myprogname;
-
////////////////////////////////////////////////////////////
// seenfiles
@@ -187,13 +187,6 @@ place_printfrom(const struct place *p)
////////////////////////////////////////////////////////////
// complaints
-
-void
-complain_init(const char *pn)
-{
- myprogname = pn;
-}
-
void
complain(const struct place *p, const char *fmt, ...)
{
@@ -204,7 +197,7 @@ complain(const struct place *p, const ch
fprintf(stderr, "%s:%u:%u: ", place_getname(p),
p->line, p->column);
} else {
- fprintf(stderr, "%s: ", myprogname);
+ fprintf(stderr, "%s: ", __progname);
}
va_start(ap, fmt);
vfprintf(stderr, fmt, ap);
Index: sbin/newfs/newfs.c
===================================================================
RCS file: /cvs/src/sbin/newfs/newfs.c,v
retrieving revision 1.100
diff -u -p -u -p -r1.100 newfs.c
--- sbin/newfs/newfs.c 29 Sep 2015 03:19:24 -0000 1.100
+++ sbin/newfs/newfs.c 7 Nov 2015 11:16:26 -0000
@@ -410,7 +410,7 @@ main(int argc, char *argv[])
special);
}
cp = strchr(argv[0], '\0') - 1;
- if (cp == NULL ||
+ if (cp == NULL || cp < argv[0] ||
((*cp < 'a' || *cp > ('a' + maxpartitions - 1))
&& !isdigit((unsigned char)*cp)))
fatal("%s: can't figure out file system partition",
Index: sbin/newfs_ext2fs/newfs_ext2fs.c
===================================================================
RCS file: /cvs/src/sbin/newfs_ext2fs/newfs_ext2fs.c,v
retrieving revision 1.17
diff -u -p -u -p -r1.17 newfs_ext2fs.c
--- sbin/newfs_ext2fs/newfs_ext2fs.c 14 Oct 2015 15:54:49 -0000 1.17
+++ sbin/newfs_ext2fs/newfs_ext2fs.c 7 Nov 2015 11:16:27 -0000
@@ -519,7 +519,8 @@ getpartition(int fsi, const char *specia
if (!S_ISCHR(st.st_mode))
warnx("%s: not a character-special device", special);
cp = strchr(argv[0], '\0') - 1;
- if (cp == NULL || ((*cp < 'a' || *cp > ('a' + getmaxpartitions() - 1))
+ if (cp == NULL || cp < argv[0] ||
+ ((*cp < 'a' || *cp > ('a' + getmaxpartitions() - 1))
&& !isdigit((unsigned char)*cp)))
errx(EXIT_FAILURE, "%s: can't figure out file system
partition", argv[0]);
lp = getdisklabel(special, fsi);
Index: usr.bin/id/id.c
===================================================================
RCS file: /cvs/src/usr.bin/id/id.c,v
retrieving revision 1.26
diff -u -p -u -p -r1.26 id.c
--- usr.bin/id/id.c 9 Oct 2015 01:37:07 -0000 1.26
+++ usr.bin/id/id.c 7 Nov 2015 11:16:27 -0000
@@ -45,8 +45,9 @@ void pretty(struct passwd *);
void group(struct passwd *, int);
void usage(void);
void user(struct passwd *);
-struct passwd *
- who(char *);
+struct passwd *who(char *);
+
+extern char *__progname;
int
main(int argc, char *argv[])
@@ -63,13 +64,13 @@ main(int argc, char *argv[])
cflag = Gflag = gflag = nflag = pflag = rflag = uflag = 0;
- if (strcmp(getprogname(), "groups") == 0) {
+ if (strcmp(__progname, "groups") == 0) {
Gflag = 1;
nflag = 1;
opts = "";
if (argc > 2)
usage();
- } else if (strcmp(getprogname(), "whoami") == 0) {
+ } else if (strcmp(__progname, "whoami") == 0) {
uflag = 1;
nflag = 1;
opts = "";
@@ -340,9 +341,9 @@ who(char *u)
void
usage(void)
{
- if (strcmp(getprogname(), "groups") == 0) {
+ if (strcmp(__progname, "groups") == 0) {
(void)fprintf(stderr, "usage: groups [user]\n");
- } else if (strcmp(getprogname(), "whoami") == 0) {
+ } else if (strcmp(__progname, "whoami") == 0) {
(void)fprintf(stderr, "usage: whoami\n");
} else {
(void)fprintf(stderr, "usage: id [user]\n");
Index: usr.bin/nl/nl.c
===================================================================
RCS file: /cvs/src/usr.bin/nl/nl.c,v
retrieving revision 1.6
diff -u -p -u -p -r1.6 nl.c
--- usr.bin/nl/nl.c 9 Oct 2015 01:37:08 -0000 1.6
+++ usr.bin/nl/nl.c 7 Nov 2015 11:16:27 -0000
@@ -74,6 +74,8 @@ void filter(void);
void parse_numbering(const char *, int);
__dead void usage(void);
+extern char *__progname;
+
/*
* Delimiter characters that indicate the start of a logical page section.
*/
@@ -361,6 +363,6 @@ usage(void)
{
(void)fprintf(stderr, "usage: %s [-p] [-b type] [-d delim] [-f type] "
"[-h type] [-i incr] [-l num]\n\t[-n format] [-s sep] "
- "[-v startnum] [-w width] [file]\n", getprogname());
+ "[-v startnum] [-w width] [file]\n", __progname);
exit(EXIT_FAILURE);
}
Index: usr.bin/telnet/main.c
===================================================================
RCS file: /cvs/src/usr.bin/telnet/main.c,v
retrieving revision 1.30
diff -u -p -u -p -r1.30 main.c
--- usr.bin/telnet/main.c 22 Jul 2014 07:30:24 -0000 1.30
+++ usr.bin/telnet/main.c 7 Nov 2015 11:16:27 -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 7 Nov 2015 11:16:27 -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 7 Nov 2015 11:16:28 -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 7 Nov 2015 11:16:29 -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 7 Nov 2015 11:16:29 -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 7 Nov 2015 11:16:29 -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 7 Nov 2015 11:16:29 -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 7 Nov 2015 11:16:29 -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",
Index: usr.bin/lex/main.c
===================================================================
RCS file: /cvs/src/usr.bin/lex/main.c,v
retrieving revision 1.15
diff -u -p -u -p -r1.15 main.c
--- usr.bin/lex/main.c 10 Oct 2015 05:47:54 -0000 1.15
+++ usr.bin/lex/main.c 7 Nov 2015 11:16:30 -0000
@@ -104,10 +104,7 @@ int end_of_buffer_state;
char **input_files;
int num_input_files;
-/* Make sure program_name is initialized so we don't crash if writing
- * out an error message before getting the program name from argv[0].
- */
-char *program_name = "flex";
+extern char *__progname;
#ifndef SHORT_FILE_NAMES
static const char outfile_template[] = "lex.%s.%s";
@@ -138,8 +135,7 @@ char **argv;
if (pledge("stdio rpath wpath cpath", NULL) == -1)
{
- fprintf( stderr, _( "%s: pledge\n" ),
- program_name);
+ fprintf( stderr, _( "%s: pledge\n" ), __progname);
exit(1);
}
@@ -413,7 +409,7 @@ int exit_status;
if ( printstats )
{
fprintf( stderr, _( "%s version %s usage statistics:\n" ),
- program_name, flex_version );
+ __progname, flex_version );
fprintf( stderr, _( " scanner options: -" ) );
@@ -616,10 +612,8 @@ char **argv;
defs1_offset = prolog_offset = action_offset = action_index = 0;
action_array[0] = '\0';
- program_name = argv[0];
-
- if ( program_name[0] != '\0' &&
- program_name[strlen( program_name ) - 1] == '+' )
+ if (__progname[0] != '\0' &&
+ __progname[strlen(__progname) - 1] == '+')
C_plus_plus = true;
/* read flags */
@@ -802,7 +796,7 @@ char **argv;
case 'V':
printf( _( "%s version %s\n" ),
- program_name, flex_version );
+ __progname, flex_version );
exit( 0 );
case 'w':
@@ -820,8 +814,8 @@ char **argv;
default:
fprintf( stderr,
_( "%s: unknown flag '%c'. For usage, try\n\t%s --help\n" ),
- program_name, (int) arg[i],
- program_name );
+ __progname, (int) arg[i],
+ __progname );
exit( 1 );
}
@@ -1123,7 +1117,7 @@ void usage()
fprintf( f,
_( "%s [-bdfhilnpstvwBFILTV78+? -C[aefFmr] -ooutput -Pprefix -Sskeleton]\n" ),
- program_name );
+ __progname );
fprintf( f, _( "\t[--help --version] [file ...]\n" ) );
fprintf( f, _( "\t-b generate backing-up information to %s\n" ),
@@ -1158,8 +1152,8 @@ _( "%s [-bdfhilnpstvwBFILTV78+? -C[aefFm
fprintf( f,
_( "\t-I generate interactive scanner (opposite of -B)\n" ) );
fprintf( f, _( "\t-L suppress #line directives in scanner\n" ) );
- fprintf( f, _( "\t-T %s should run in trace mode\n" ), program_name );
- fprintf( f, _( "\t-V report %s version\n" ), program_name );
+ fprintf( f, _( "\t-T %s should run in trace mode\n" ), __progname );
+ fprintf( f, _( "\t-V report %s version\n" ), __progname );
fprintf( f, _( "\t-7 generate 7-bit scanner\n" ) );
fprintf( f, _( "\t-8 generate 8-bit scanner\n" ) );
fprintf( f, _( "\t-+ generate C++ scanner class\n" ) );
@@ -1180,5 +1174,5 @@ _( "\t\t-CF do not compress scanner tab
fprintf( f, _( "\t-P specify scanner prefix other than \"yy\"\n" ) );
fprintf( f, _( "\t-S specify skeleton file\n" ) );
fprintf( f, _( "\t--help produce this help message\n" ) );
- fprintf( f, _( "\t--version report %s version\n" ), program_name );
+ fprintf( f, _( "\t--version report %s version\n" ), __progname );
}
Index: usr.bin/lex/misc.c
===================================================================
RCS file: /cvs/src/usr.bin/lex/misc.c,v
retrieving revision 1.14
diff -u -p -u -p -r1.14 misc.c
--- usr.bin/lex/misc.c 15 Oct 2015 05:57:09 -0000 1.14
+++ usr.bin/lex/misc.c 7 Nov 2015 11:16:30 -0000
@@ -37,6 +37,7 @@
#include "flexdef.h"
+extern char *__progname;
void action_define( defname, value )
char *defname;
@@ -334,7 +335,7 @@ void dataflush()
void flexerror( msg )
const char msg[];
{
- fprintf( stderr, "%s: %s\n", program_name, msg );
+ fprintf( stderr, "%s: %s\n", __progname, msg );
flexend( 1 );
}
@@ -345,7 +346,7 @@ void flexfatal( msg )
const char msg[];
{
fprintf( stderr, _( "%s: fatal internal error, %s\n" ),
- program_name, msg );
+ __progname, msg );
exit( 1 );
}