summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Meyering <meyering@redhat.com>2008-06-03 08:34:09 +0200
committerJim Meyering <meyering@redhat.com>2008-06-03 09:15:00 +0200
commit896b672499d6a31a6caf85411bcbdde6edc57668 (patch)
tree27683a9e32614e6ea09de5e06d7967164593bbd7
parent1b0b6c8d08785bf9b05931371259ac710a806e51 (diff)
downloadcoreutils-896b672499d6a31a6caf85411bcbdde6edc57668.tar.xz
use gnulib's progname module
* bootstrap.conf (gnulib_modules): Add progname. * src/*.c (program_name): Remove declaration. * (main): Call set_program_name rather than setting program_name. * src/nice.c (main): Cast program_name to "(char *)". * src/prog-fprintf.c: Include "system.h" * src/system.h: Include "progname.h". * maint.mk (sc_program_name): Adjust rule. Suggestion from Eric Blake.
-rw-r--r--bootstrap.conf1
-rw-r--r--maint.mk6
-rw-r--r--src/base64.c5
-rw-r--r--src/basename.c5
-rw-r--r--src/cat.c5
-rw-r--r--src/chcon.c5
-rw-r--r--src/chgrp.c5
-rw-r--r--src/chmod.c5
-rw-r--r--src/chown.c5
-rw-r--r--src/chroot.c5
-rw-r--r--src/cksum.c5
-rw-r--r--src/comm.c5
-rw-r--r--src/copy.c3
-rw-r--r--src/cp.c5
-rw-r--r--src/csplit.c5
-rw-r--r--src/cut.c5
-rw-r--r--src/date.c5
-rw-r--r--src/dd.c5
-rw-r--r--src/df.c5
-rw-r--r--src/dircolors.c4
-rw-r--r--src/dirname.c5
-rw-r--r--src/du.c5
-rw-r--r--src/echo.c5
-rw-r--r--src/env.c5
-rw-r--r--src/expand.c5
-rw-r--r--src/expr.c5
-rw-r--r--src/factor.c5
-rw-r--r--src/fmt.c5
-rw-r--r--src/fold.c5
-rw-r--r--src/groups.c5
-rw-r--r--src/head.c5
-rw-r--r--src/hostid.c5
-rw-r--r--src/hostname.c5
-rw-r--r--src/id.c5
-rw-r--r--src/install.c5
-rw-r--r--src/join.c5
-rw-r--r--src/kill.c5
-rw-r--r--src/link.c5
-rw-r--r--src/ln.c5
-rw-r--r--src/logname.c5
-rw-r--r--src/ls.c5
-rw-r--r--src/md5sum.c5
-rw-r--r--src/mkdir.c5
-rw-r--r--src/mkfifo.c5
-rw-r--r--src/mknod.c5
-rw-r--r--src/mktemp.c5
-rw-r--r--src/mv.c5
-rw-r--r--src/nice.c7
-rw-r--r--src/nl.c5
-rw-r--r--src/nohup.c4
-rw-r--r--src/od.c5
-rw-r--r--src/paste.c5
-rw-r--r--src/pathchk.c5
-rw-r--r--src/pinky.c5
-rw-r--r--src/pr.c5
-rw-r--r--src/printenv.c5
-rw-r--r--src/printf.c5
-rw-r--r--src/prog-fprintf.c4
-rw-r--r--src/ptx.c5
-rw-r--r--src/pwd.c5
-rw-r--r--src/readlink.c5
-rw-r--r--src/remove.c2
-rw-r--r--src/rm.c5
-rw-r--r--src/rmdir.c5
-rw-r--r--src/runcon.c5
-rw-r--r--src/seq.c5
-rw-r--r--src/setuidgid.c4
-rw-r--r--src/shred.c5
-rw-r--r--src/shuf.c5
-rw-r--r--src/sleep.c5
-rw-r--r--src/sort.c5
-rw-r--r--src/split.c5
-rw-r--r--src/stat.c4
-rw-r--r--src/stty.c5
-rw-r--r--src/su.c5
-rw-r--r--src/sum.c5
-rw-r--r--src/sync.c5
-rw-r--r--src/system.h2
-rw-r--r--src/tac.c5
-rw-r--r--src/tail.c5
-rw-r--r--src/tee.c5
-rw-r--r--src/test.c4
-rw-r--r--src/timeout.c4
-rw-r--r--src/touch.c5
-rw-r--r--src/tr.c5
-rw-r--r--src/true.c5
-rw-r--r--src/tsort.c5
-rw-r--r--src/tty.c5
-rw-r--r--src/uname.c5
-rw-r--r--src/unexpand.c5
-rw-r--r--src/uniq.c5
-rw-r--r--src/unlink.c5
-rw-r--r--src/uptime.c5
-rw-r--r--src/users.c5
-rw-r--r--src/wc.c5
-rw-r--r--src/who.c5
-rw-r--r--src/whoami.c5
-rw-r--r--src/yes.c5
98 files changed, 101 insertions, 373 deletions
diff --git a/bootstrap.conf b/bootstrap.conf
index 7b5be8386..5685ad55b 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -70,6 +70,7 @@ gnulib_modules="
posix-shell
posixtm
posixver
+ progname
propername
putenv
quote quotearg raise readlink areadlink-with-size
diff --git a/maint.mk b/maint.mk
index 25551a84a..f4b0bae32 100644
--- a/maint.mk
+++ b/maint.mk
@@ -342,13 +342,13 @@ sc_system_h_headers: .re-list
fi
# Ensure that each .c file containing a "main" function also
-# declares "char *program_name", with or without "const".
+# calls set_program_name.
sc_program_name:
@if $(VC_LIST_EXCEPT) | grep '\.c$$' > /dev/null; then \
files=$$(grep -l '^main *(' $$($(VC_LIST_EXCEPT) | grep '\.c$$')); \
- grep -EL '^(char const|(const )?char) \*program_name;' $$files \
+ grep -LE 'set_program_name *\(m?argv\[0\]\);' $$files \
| grep . && \
- { echo '$(ME): the above files do not declare program_name' \
+ { echo '$(ME): the above files do not call set_program_name' \
1>&2; exit 1; } || :; \
else :; \
fi
diff --git a/src/base64.c b/src/base64.c
index fd9d114dd..3e66c12e0 100644
--- a/src/base64.c
+++ b/src/base64.c
@@ -37,9 +37,6 @@
#define AUTHORS proper_name ("Simon Josefsson")
-/* The invocation name of this program. */
-char const *program_name;
-
static const struct option long_options[] = {
{"decode", no_argument, 0, 'd'},
{"wrap", required_argument, 0, 'w'},
@@ -248,7 +245,7 @@ main (int argc, char **argv)
uintmax_t wrap_column = 76;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/basename.c b/src/basename.c
index fe056fcd6..38e887923 100644
--- a/src/basename.c
+++ b/src/basename.c
@@ -39,9 +39,6 @@
#define AUTHORS proper_name ("FIXME unknown")
-/* The name this program was run with. */
-char const *program_name;
-
void
usage (int status)
{
@@ -99,7 +96,7 @@ main (int argc, char **argv)
char *name;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/cat.c b/src/cat.c
index fd6c9df0d..d762f4549 100644
--- a/src/cat.c
+++ b/src/cat.c
@@ -51,9 +51,6 @@
#undef max
#define max(h,i) ((h) > (i) ? (h) : (i))
-/* Name under which this program was invoked. */
-char const *program_name;
-
/* Name of input file. May be "-". */
static char const *infile;
@@ -565,7 +562,7 @@ main (int argc, char **argv)
};
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/chcon.c b/src/chcon.c
index dacce2b45..659664e3d 100644
--- a/src/chcon.c
+++ b/src/chcon.c
@@ -55,9 +55,6 @@ enum Verbosity
V_off
};
-/* The name the program was run with. */
-char const *program_name;
-
/* If nonzero, and the systems has support for it, change the context
of symbolic links rather than any files they point to. */
static bool affect_symlink_referent;
@@ -426,7 +423,7 @@ main (int argc, char **argv)
int optc;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/chgrp.c b/src/chgrp.c
index c42fad87f..db83c59df 100644
--- a/src/chgrp.c
+++ b/src/chgrp.c
@@ -42,9 +42,6 @@
# define endgrent() ((void) 0)
#endif
-/* The name the program was run with. */
-char const *program_name;
-
/* The argument to the --reference option. Use the group ID of this file.
This file must exist. */
static char *reference_file;
@@ -184,7 +181,7 @@ main (int argc, char **argv)
int optc;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/chmod.c b/src/chmod.c
index 8002ef5f3..80fc363aa 100644
--- a/src/chmod.c
+++ b/src/chmod.c
@@ -58,9 +58,6 @@ enum Verbosity
V_off
};
-/* The name the program was run with. */
-char const *program_name;
-
/* The desired change to the mode. */
static struct mode_change *change;
@@ -394,7 +391,7 @@ main (int argc, char **argv)
int c;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/chown.c b/src/chown.c
index 02e0148f7..e5740d259 100644
--- a/src/chown.c
+++ b/src/chown.c
@@ -47,9 +47,6 @@
proper_name ("David MacKenzie"), \
proper_name ("Jim Meyering")
-/* The name the program was run with. */
-char const *program_name;
-
/* The argument to the --reference option. Use the owner and group IDs
of this file. This file must exist. */
static char *reference_file;
@@ -186,7 +183,7 @@ main (int argc, char **argv)
int optc;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/chroot.c b/src/chroot.c
index 8081b1696..399f76c30 100644
--- a/src/chroot.c
+++ b/src/chroot.c
@@ -32,9 +32,6 @@
#define AUTHORS proper_name ("Roland McGrath")
-/* The name this program was run with, for error messages. */
-char const *program_name;
-
void
usage (int status)
{
@@ -66,7 +63,7 @@ int
main (int argc, char **argv)
{
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/cksum.c b/src/cksum.c
index 6f1151484..ce6e9c056 100644
--- a/src/cksum.c
+++ b/src/cksum.c
@@ -113,9 +113,6 @@ main (void)
/* Number of bytes to read at once. */
# define BUFLEN (1 << 16)
-/* The name this program was run with. */
-char const *program_name;
-
static uint_fast32_t const crctab[256] =
{
0x00000000,
@@ -284,7 +281,7 @@ main (int argc, char **argv)
bool ok;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/comm.c b/src/comm.c
index 4700ca00e..a71d61afc 100644
--- a/src/comm.c
+++ b/src/comm.c
@@ -39,9 +39,6 @@
#undef min
#define min(x, y) ((x) < (y) ? (x) : (y))
-/* The name this program was run with. */
-char const *program_name;
-
/* True if the LC_COLLATE locale is hard. */
static bool hard_LC_COLLATE;
@@ -230,7 +227,7 @@ main (int argc, char **argv)
int c;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/copy.c b/src/copy.c
index 7d33cb33a..82c6978e4 100644
--- a/src/copy.c
+++ b/src/copy.c
@@ -107,9 +107,6 @@ static bool owner_failure_ok (struct cp_options const *x);
static char const *top_level_src_name;
static char const *top_level_dst_name;
-/* The invocation name of this program. */
-extern char *program_name;
-
/* FIXME: describe */
/* FIXME: rewrite this to use a hash table so we avoid the quadratic
performance hit that's probably noticeable only on trees deeper
diff --git a/src/cp.c b/src/cp.c
index 66304492a..01b9c18d3 100644
--- a/src/cp.c
+++ b/src/cp.c
@@ -88,9 +88,6 @@ enum
/* Initial number of entries in the inode hash table. */
#define INITIAL_ENTRY_TAB_SIZE 70
-/* The invocation name of this program. */
-char const *program_name;
-
/* True if the kernel is SELinux enabled. */
static bool selinux_enabled;
@@ -898,7 +895,7 @@ main (int argc, char **argv)
bool no_target_directory = false;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/csplit.c b/src/csplit.c
index 7d9904c3e..7e63ca831 100644
--- a/src/csplit.c
+++ b/src/csplit.c
@@ -128,9 +128,6 @@ static void delete_all_files (bool);
static void save_line_to_file (const struct cstring *line);
void usage (int status);
-/* The name this program was run with. */
-char const *program_name;
-
/* Start of buffer list. */
static struct buffer_record *head = NULL;
@@ -1330,7 +1327,7 @@ main (int argc, char **argv)
unsigned long int val;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/cut.c b/src/cut.c
index a91cca716..0e151fd3e 100644
--- a/src/cut.c
+++ b/src/cut.c
@@ -120,9 +120,6 @@ enum operating_mode
field_mode
};
-/* The name this program was run with. */
-char const *program_name;
-
static enum operating_mode operating_mode;
/* If true do not output lines containing no delimeter characters.
@@ -762,7 +759,7 @@ main (int argc, char **argv)
char *spec_list_string IF_LINT(= NULL);
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/date.c b/src/date.c
index 36b282695..86b322540 100644
--- a/src/date.c
+++ b/src/date.c
@@ -77,9 +77,6 @@ ARGMATCH_VERIFY (time_spec_string, time_spec);
/* A format suitable for Internet RFC 2822. */
static char const rfc_2822_format[] = "%a, %d %b %Y %H:%M:%S %z";
-/* The name this program was run with, for error messages. */
-char const *program_name;
-
/* For long options that have no equivalent short option, use a
non-character as a pseudo short option, starting with CHAR_MAX + 1. */
enum
@@ -325,7 +322,7 @@ main (int argc, char **argv)
int option_specified_date;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/dd.c b/src/dd.c
index 947e6876c..ead957464 100644
--- a/src/dd.c
+++ b/src/dd.c
@@ -128,9 +128,6 @@ enum
STATUS_NOXFER = 01
};
-/* The name this program was run with. */
-char const *program_name;
-
/* The name of the input file, or NULL for the standard input. */
static char const *input_file = NULL;
@@ -1671,7 +1668,7 @@ main (int argc, char **argv)
off_t offset;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/df.c b/src/df.c
index 2b320cf98..66e920774 100644
--- a/src/df.c
+++ b/src/df.c
@@ -42,9 +42,6 @@
proper_name ("David MacKenzie"), \
proper_name ("Paul Eggert")
-/* Name this program was run with. */
-char const *program_name;
-
/* If true, show inode information. */
static bool inode_format;
@@ -781,7 +778,7 @@ main (int argc, char **argv)
struct stat *stats IF_LINT (= 0);
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/dircolors.c b/src/dircolors.c
index 55cbd2616..44ec537fd 100644
--- a/src/dircolors.c
+++ b/src/dircolors.c
@@ -87,8 +87,6 @@ static struct option const long_options[] =
{NULL, 0, NULL, 0}
};
-char const *program_name;
-
void
usage (int status)
{
@@ -402,7 +400,7 @@ main (int argc, char **argv)
bool print_database = false;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/dirname.c b/src/dirname.c
index 3c93d0357..3a319128f 100644
--- a/src/dirname.c
+++ b/src/dirname.c
@@ -35,9 +35,6 @@
proper_name ("David MacKenzie"), \
proper_name ("Jim Meyering")
-/* The name this program was run with. */
-char const *program_name;
-
void
usage (int status)
{
@@ -78,7 +75,7 @@ main (int argc, char **argv)
size_t len;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/du.c b/src/du.c
index 8b04b65d1..32cb3631d 100644
--- a/src/du.c
+++ b/src/du.c
@@ -126,9 +126,6 @@ struct dulevel
struct duinfo subdir;
};
-/* Name under which this program was invoked. */
-char const *program_name;
-
/* If true, display counts for all files, not just directories. */
static bool opt_all = false;
@@ -685,7 +682,7 @@ main (int argc, char **argv)
cwd_only[1] = NULL;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/echo.c b/src/echo.c
index 4b8f56071..ebbf5b82e 100644
--- a/src/echo.c
+++ b/src/echo.c
@@ -50,9 +50,6 @@ on System V systems with the -E option.
enum { DEFAULT_ECHO_TO_XPG = false };
#endif
-/* The name this program was run with. */
-char const *program_name;
-
void
usage (int status)
{
@@ -134,7 +131,7 @@ main (int argc, char **argv)
bool do_v9 = DEFAULT_ECHO_TO_XPG;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/env.c b/src/env.c
index 5103cc927..67e411f18 100644
--- a/src/env.c
+++ b/src/env.c
@@ -96,9 +96,6 @@ int putenv ();
extern char **environ;
-/* The name by which this program was run. */
-char const *program_name;
-
static struct option const longopts[] =
{
{"ignore-environment", no_argument, NULL, 'i'},
@@ -143,7 +140,7 @@ main (int argc, char **argv)
bool ignore_environment = false;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/expand.c b/src/expand.c
index 2cce8fbea..8efb81b33 100644
--- a/src/expand.c
+++ b/src/expand.c
@@ -51,9 +51,6 @@
allocated for the output line. */
#define OUTPUT_BLOCK 256
-/* The name this program was run with. */
-char const *program_name;
-
/* If true, convert blanks even after nonblank characters have been
read on the line. */
static bool convert_entire_line;
@@ -370,7 +367,7 @@ main (int argc, char **argv)
int c;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/expr.c b/src/expr.c
index e658402c5..d6b19855b 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -81,9 +81,6 @@ typedef struct valinfo VALUE;
/* The arguments given to the program, minus the program name. */
static char **args;
-/* The name this program was run with. */
-char const *program_name;
-
static VALUE *eval (bool);
static bool nomoreargs (void);
static bool null (VALUE *v);
@@ -188,7 +185,7 @@ main (int argc, char **argv)
VALUE *v;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/factor.c b/src/factor.c
index 681db362d..f46953c8b 100644
--- a/src/factor.c
+++ b/src/factor.c
@@ -59,9 +59,6 @@ static const unsigned char wheel_tab[] =
#define WHEEL_START (wheel_tab + WHEEL_SIZE)
#define WHEEL_END (wheel_tab + (sizeof wheel_tab / sizeof wheel_tab[0]))
-/* The name this program was run with. */
-char const *program_name;
-
void
usage (int status)
{
@@ -192,7 +189,7 @@ main (int argc, char **argv)
bool ok;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/fmt.c b/src/fmt.c
index 1f4e1da52..708e60bca 100644
--- a/src/fmt.c
+++ b/src/fmt.c
@@ -167,9 +167,6 @@ static void put_line (WORD *w, int indent);
static void put_word (WORD *w);
static void put_space (int space);
-/* The name this program was run with. */
-char const *program_name;
-
/* Option values. */
/* If true, first 2 lines may have different indent (default false). */
@@ -324,7 +321,7 @@ main (int argc, char **argv)
char const *max_width_option = NULL;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/fold.c b/src/fold.c
index 8d63a8b52..57ff123c7 100644
--- a/src/fold.c
+++ b/src/fold.c
@@ -34,9 +34,6 @@
#define AUTHORS proper_name ("David MacKenzie")
-/* The name this program was run with. */
-char const *program_name;
-
/* If nonzero, try to break on whitespace. */
static bool break_spaces;
@@ -247,7 +244,7 @@ main (int argc, char **argv)
bool ok;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/groups.c b/src/groups.c
index c67ac6e0a..ef9640005 100644
--- a/src/groups.c
+++ b/src/groups.c
@@ -29,9 +29,6 @@
#include "error.h"
#include "group-list.h"
-/* The name this program was run with. */
-char const *program_name;
-
/* The official name of this program (e.g., no `g' prefix). */
#define PROGRAM_NAME "groups"
@@ -76,7 +73,7 @@ main (int argc, char **argv)
uid_t ruid;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/head.c b/src/head.c
index a52f151cf..7a0e2ada9 100644
--- a/src/head.c
+++ b/src/head.c
@@ -64,9 +64,6 @@ enum header_mode
multiple_files, always, never
};
-/* The name this program was run with. */
-char const *program_name;
-
/* Have we ever read standard input? */
static bool have_read_stdin;
@@ -920,7 +917,7 @@ main (int argc, char **argv)
char const *const *file_list;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/hostid.c b/src/hostid.c
index e481c1c1e..dbcb98df8 100644
--- a/src/hostid.c
+++ b/src/hostid.c
@@ -33,9 +33,6 @@
#define AUTHORS proper_name ("Jim Meyering")
-/* The name this program was run with, for error messages. */
-char const *program_name;
-
void
usage (int status)
{
@@ -64,7 +61,7 @@ main (int argc, char **argv)
unsigned int id;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/hostname.c b/src/hostname.c
index 23aab17b6..cf8e9535b 100644
--- a/src/hostname.c
+++ b/src/hostname.c
@@ -50,9 +50,6 @@ sethostname (char *name, size_t namelen)
# define HAVE_SETHOSTNAME 1 /* Now we have it... */
#endif
-/* The name this program was run with. */
-char const *program_name;
-
void
usage (int status)
{
@@ -81,7 +78,7 @@ main (int argc, char **argv)
char *hostname;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/id.c b/src/id.c
index 53cb0f47f..14b558d65 100644
--- a/src/id.c
+++ b/src/id.c
@@ -44,9 +44,6 @@ static int just_context = 0;
static void print_user (uid_t uid);
static void print_full_info (const char *username);
-/* The name this program was run with. */
-char const *program_name;
-
/* If true, output user/group name instead of ID number. -n */
static bool use_name = false;
@@ -121,7 +118,7 @@ main (int argc, char **argv)
bool just_user = false;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/install.c b/src/install.c
index decdd7d36..aa14b948d 100644
--- a/src/install.c
+++ b/src/install.c
@@ -96,9 +96,6 @@ static int make_ancestor (char const *dir, char const *component,
void *options);
void usage (int status);
-/* The name this program was run with, for error messages. */
-char const *program_name;
-
/* The user name that will own the files, or NULL to make the owner
the current user ID. */
static char *owner_name;
@@ -338,7 +335,7 @@ main (int argc, char **argv)
selinux_enabled = (0 < is_selinux_enabled ());
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/join.c b/src/join.c
index 111f9714c..32872681c 100644
--- a/src/join.c
+++ b/src/join.c
@@ -79,9 +79,6 @@ struct seq
struct line *lines;
};
-/* The name this program was run with. */
-char const *program_name;
-
/* The previous line read from each file. */
static struct line *prevline[2];
@@ -934,7 +931,7 @@ main (int argc, char **argv)
int i;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/kill.c b/src/kill.c
index 21799076b..1fd495840 100644
--- a/src/kill.c
+++ b/src/kill.c
@@ -60,9 +60,6 @@
# endif
#endif
-/* The name this program was run with, for error messages. */
-char const *program_name;
-
static char const short_options[] =
"0::1::2::3::4::5::6::7::8::9::"
"A::B::C::D::E::F::G::H::I::J::K::L::M::"
@@ -241,7 +238,7 @@ main (int argc, char **argv)
char signame[SIG2STR_MAX];
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/link.c b/src/link.c
index eeb79e7ff..1b09fe327 100644
--- a/src/link.c
+++ b/src/link.c
@@ -35,9 +35,6 @@
#define AUTHORS proper_name ("Michael Stone")
-/* Name this program was run with. */
-char const *program_name;
-
void
usage (int status)
{
@@ -63,7 +60,7 @@ int
main (int argc, char **argv)
{
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/ln.c b/src/ln.c
index 4b9c9949a..137224073 100644
--- a/src/ln.c
+++ b/src/ln.c
@@ -57,9 +57,6 @@
lstat (File, Stat_buf)
#endif
-/* The name by which the program was run, for error messages. */
-char const *program_name;
-
/* FIXME: document */
static enum backup_type backup_type;
@@ -423,7 +420,7 @@ main (int argc, char **argv)
char **file;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/logname.c b/src/logname.c
index ec894e216..a71ac33a1 100644
--- a/src/logname.c
+++ b/src/logname.c
@@ -29,9 +29,6 @@
#define AUTHORS proper_name ("FIXME: unknown")
-/* The name this program was run with. */
-char const *program_name;
-
void
usage (int status)
{
@@ -58,7 +55,7 @@ main (int argc, char **argv)
char *cp;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/ls.c b/src/ls.c
index 9a8ad2def..600d7a507 100644
--- a/src/ls.c
+++ b/src/ls.c
@@ -244,9 +244,6 @@ static void sort_files (void);
static void parse_ls_color (void);
void usage (int status);
-/* The name this program was run with. */
-char const *program_name;
-
/* Initial size of hash table.
Most hierarchies are likely to be shallower than this. */
#define INITIAL_TABLE_SIZE 30
@@ -1150,7 +1147,7 @@ main (int argc, char **argv)
#endif
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/md5sum.c b/src/md5sum.c
index 358497280..dcafe9733 100644
--- a/src/md5sum.c
+++ b/src/md5sum.c
@@ -120,9 +120,6 @@ static bool warn = false;
/* With --check, suppress the "OK" printed for each verified file. */
static bool quiet = false;
-/* The name this program was run with. */
-char const *program_name;
-
/* For long options that have no equivalent short option, use a
non-character as a pseudo short option, starting with CHAR_MAX + 1. */
enum
@@ -613,7 +610,7 @@ main (int argc, char **argv)
/* Setting values of global variables. */
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/mkdir.c b/src/mkdir.c
index c2d52deb5..9644f4c9f 100644
--- a/src/mkdir.c
+++ b/src/mkdir.c
@@ -36,9 +36,6 @@
#define AUTHORS proper_name ("David MacKenzie")
-/* The name this program was run with. */
-char const *program_name;
-
static struct option const longopts[] =
{
{GETOPT_SELINUX_CONTEXT_OPTION_DECL},
@@ -153,7 +150,7 @@ main (int argc, char **argv)
options.created_directory_format = NULL;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/mkfifo.c b/src/mkfifo.c
index 5befd4590..d0d2c4519 100644
--- a/src/mkfifo.c
+++ b/src/mkfifo.c
@@ -32,9 +32,6 @@
#define AUTHORS proper_name ("David MacKenzie")
-/* The name this program was run with. */
-char const *program_name;
-
static struct option const longopts[] =
{
{GETOPT_SELINUX_CONTEXT_OPTION_DECL},
@@ -83,7 +80,7 @@ main (int argc, char **argv)
security_context_t scontext = NULL;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/mknod.c b/src/mknod.c
index 0cd2d2705..d93e2cb9d 100644
--- a/src/mknod.c
+++ b/src/mknod.c
@@ -33,9 +33,6 @@
#define AUTHORS proper_name ("David MacKenzie")
-/* The name this program was run with. */
-char const *program_name;
-
static struct option const longopts[] =
{
{GETOPT_SELINUX_CONTEXT_OPTION_DECL},
@@ -100,7 +97,7 @@ main (int argc, char **argv)
security_context_t scontext = NULL;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/mktemp.c b/src/mktemp.c
index 114fdc2b1..8a09231f9 100644
--- a/src/mktemp.c
+++ b/src/mktemp.c
@@ -35,9 +35,6 @@
static const char *default_template = "tmp.XXXXXXXXXX";
-/* The name this program was run with. */
-char const *program_name;
-
/* For long options that have no equivalent short option, use a
non-character as a pseudo short option, starting with CHAR_MAX + 1. */
enum
@@ -144,7 +141,7 @@ main (int argc, char **argv)
char *dest_name;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/mv.c b/src/mv.c
index 090541a4c..bab26ba46 100644
--- a/src/mv.c
+++ b/src/mv.c
@@ -56,9 +56,6 @@ enum
STRIP_TRAILING_SLASHES_OPTION
};
-/* The name this program was run with. */
-char const *program_name;
-
/* Remove any trailing slashes from each SOURCE argument. */
static bool remove_trailing_slashes;
@@ -364,7 +361,7 @@ main (int argc, char **argv)
char **file;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/nice.c b/src/nice.c
index 3981a7163..1dcb3a3cb 100644
--- a/src/nice.c
+++ b/src/nice.c
@@ -55,9 +55,6 @@
# define NZERO 20
#endif
-/* The name this program was run with. */
-char const *program_name;
-
static struct option const longopts[] =
{
{"adjustment", required_argument, NULL, 'n'},
@@ -99,7 +96,7 @@ main (int argc, char **argv)
int i;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
@@ -126,7 +123,7 @@ main (int argc, char **argv)
char **fake_argv = argv + (i - 1);
/* Ensure that any getopt diagnostics use the right name. */
- fake_argv[0] = program_name;
+ fake_argv[0] = (char *) program_name;
/* Initialize getopt_long's internal state. */
optind = 0;
diff --git a/src/nl.c b/src/nl.c
index 24e9f9861..ddd0fcfde 100644
--- a/src/nl.c
+++ b/src/nl.c
@@ -61,9 +61,6 @@ enum section
Header, Body, Footer, Text
};
-/* The name this program was run with. */
-char const *program_name;
-
/* Format of body lines (-b). */
static char const *body_type = "t";
@@ -460,7 +457,7 @@ main (int argc, char **argv)
bool ok = true;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/nohup.c b/src/nohup.c
index da639f225..61f181dbd 100644
--- a/src/nohup.c
+++ b/src/nohup.c
@@ -43,8 +43,6 @@ enum
NOHUP_FAILURE = 127
};
-char const *program_name;
-
void
usage (int status)
{
@@ -89,7 +87,7 @@ main (int argc, char **argv)
bool redirecting_stderr;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/od.c b/src/od.c
index 9b2f72260..3273ec2ee 100644
--- a/src/od.c
+++ b/src/od.c
@@ -113,9 +113,6 @@ struct tspec
int field_width;
};
-/* The name this program was run with. */
-char const *program_name;
-
/* Convert the number of 8-bit bytes of a binary representation to
the number of characters (digits + sign if the type is signed)
required to represent the same quantity in the specified base/type.
@@ -1565,7 +1562,7 @@ main (int argc, char **argv)
uintmax_t pseudo_start IF_LINT (= 0);
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/paste.c b/src/paste.c
index cc61a09d5..9dee94aa4 100644
--- a/src/paste.c
+++ b/src/paste.c
@@ -54,9 +54,6 @@
/* Indicates that no delimiter should be added in the current position. */
#define EMPTY_DELIM '\0'
-/* Name this program was run with. */
-char const *program_name;
-
/* If nonzero, we have read standard input at some point. */
static bool have_read_stdin;
@@ -466,7 +463,7 @@ main (int argc, char **argv)
char const *delim_arg = "\t";
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/pathchk.c b/src/pathchk.c
index 821fe335b..48001fc03 100644
--- a/src/pathchk.c
+++ b/src/pathchk.c
@@ -71,9 +71,6 @@
static bool validate_file_name (char *, bool, bool);
-/* The name this program was run with. */
-char const *program_name;
-
/* For long options that have no equivalent short option, use a
non-character as a pseudo short option, starting with CHAR_MAX + 1. */
enum
@@ -121,7 +118,7 @@ main (int argc, char **argv)
int optc;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/pinky.c b/src/pinky.c
index b8d453b14..9c80d94d5 100644
--- a/src/pinky.c
+++ b/src/pinky.c
@@ -44,9 +44,6 @@
char *ttyname ();
-/* The name this program was run with. */
-char const *program_name;
-
/* If true, display the hours:minutes since each user has touched
the keyboard, or blank if within the last minute, or days followed
by a 'd' if not within the last day. */
@@ -544,7 +541,7 @@ main (int argc, char **argv)
int n_users;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/pr.c b/src/pr.c
index 28ce71370..27ff8593f 100644
--- a/src/pr.c
+++ b/src/pr.c
@@ -445,9 +445,6 @@ static void cleanup (void);
static void print_sep_string (void);
static void separator_string (const char *optarg_S);
-/* The name under which this program was invoked. */
-char const *program_name;
-
/* All of the columns to print. */
static COLUMN *column_vector;
@@ -869,7 +866,7 @@ main (int argc, char **argv)
size_t n_alloc = 0;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/printenv.c b/src/printenv.c
index b90551cf9..b68fb219b 100644
--- a/src/printenv.c
+++ b/src/printenv.c
@@ -45,9 +45,6 @@ enum { PRINTENV_FAILURE = 2 };
proper_name ("David MacKenzie"), \
proper_name ("Richard Mlynarik")
-/* The name this program was run with. */
-char const *program_name;
-
extern char **environ;
void
@@ -82,7 +79,7 @@ main (int argc, char **argv)
bool ok;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/printf.c b/src/printf.c
index 7081dccd9..a9d5aa144 100644
--- a/src/printf.c
+++ b/src/printf.c
@@ -78,9 +78,6 @@ static bool posixly_correct;
static char const *const cfcc_msg =
N_("warning: %s: character(s) following character constant have been ignored");
-/* The name this program was run with. */
-char const *program_name;
-
void
usage (int status)
{
@@ -637,7 +634,7 @@ main (int argc, char **argv)
int args_used;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/prog-fprintf.c b/src/prog-fprintf.c
index 85aceb61f..cbf7becc6 100644
--- a/src/prog-fprintf.c
+++ b/src/prog-fprintf.c
@@ -18,9 +18,9 @@
#include <stdarg.h>
#include <sys/types.h>
-#include "prog-fprintf.h"
+#include "system.h"
-extern char *program_name;
+#include "prog-fprintf.h"
/* Display program name followed by variable list.
Used for e.g. verbose output */
diff --git a/src/ptx.c b/src/ptx.c
index cdc65137e..28dfc8753 100644
--- a/src/ptx.c
+++ b/src/ptx.c
@@ -68,9 +68,6 @@
/* Imported from "regex.c". */
#define Sword 1
-/* The name this program was run with. */
-char const *program_name;
-
/* Program options. */
enum Format
@@ -1980,7 +1977,7 @@ main (int argc, char **argv)
/* Decode program options. */
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/pwd.c b/src/pwd.c
index adbc5b33d..5038065d3 100644
--- a/src/pwd.c
+++ b/src/pwd.c
@@ -39,9 +39,6 @@ struct file_name
char *start;
};
-/* The name this program was run with. */
-char const *program_name;
-
void
usage (int status)
{
@@ -289,7 +286,7 @@ main (int argc, char **argv)
char *wd;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/readlink.c b/src/readlink.c
index 455b56e85..98a955c0c 100644
--- a/src/readlink.c
+++ b/src/readlink.c
@@ -32,9 +32,6 @@
#define AUTHORS proper_name ("Dmitry V. Levin")
-/* Name this program was run with. */
-char const *program_name;
-
/* If true, do not output the trailing newline. */
static bool no_newline;
@@ -105,7 +102,7 @@ main (int argc, char **argv)
int optc;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/remove.c b/src/remove.c
index 07c2f71ba..4c3ee99ea 100644
--- a/src/remove.c
+++ b/src/remove.c
@@ -128,8 +128,6 @@ struct AD_ent
# define DT_LNK 2
#endif
-extern char *program_name;
-
struct dirstack_state
{
/* The name of the directory (starting with and relative to a command
diff --git a/src/rm.c b/src/rm.c
index eb90bf2cd..7304330c8 100644
--- a/src/rm.c
+++ b/src/rm.c
@@ -66,9 +66,6 @@
proper_name ("Richard M. Stallman"), \
proper_name ("Jim Meyering")
-/* Name this program was run with. */
-char const *program_name;
-
/* For long options that have no equivalent short option, use a
non-character as a pseudo short option, starting with CHAR_MAX + 1. */
enum
@@ -236,7 +233,7 @@ main (int argc, char **argv)
int c;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/rmdir.c b/src/rmdir.c
index 4ed2f7742..64575b091 100644
--- a/src/rmdir.c
+++ b/src/rmdir.c
@@ -38,9 +38,6 @@
#define AUTHORS proper_name ("David MacKenzie")
-/* The name this program was run with. */
-char const *program_name;
-
/* If true, remove empty parent directories. */
static bool remove_empty_parents;
@@ -193,7 +190,7 @@ main (int argc, char **argv)
int optc;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/runcon.c b/src/runcon.c
index 5f9746cf0..a5c2300fc 100644
--- a/src/runcon.c
+++ b/src/runcon.c
@@ -72,9 +72,6 @@ static struct option long_options[] = {
{NULL, 0, NULL, 0}
};
-/* The name the program was run with. */
-char const *program_name;
-
void
usage (int status)
{
@@ -122,7 +119,7 @@ main (int argc, char **argv)
context_t con;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/seq.c b/src/seq.c
index 2fe6ec267..55518dfab 100644
--- a/src/seq.c
+++ b/src/seq.c
@@ -43,9 +43,6 @@
/* If true print all number with equal width. */
static bool equal_width;
-/* The name that this program was run with. */
-char const *program_name;
-
/* The string used to separate two numbers. */
static char const *separator;
@@ -380,7 +377,7 @@ main (int argc, char **argv)
char const *format_str = NULL;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/setuidgid.c b/src/setuidgid.c
index a6262fe4e..e9103572d 100644
--- a/src/setuidgid.c
+++ b/src/setuidgid.c
@@ -39,8 +39,6 @@
#define SETUIDGID_FAILURE 111
-char const *program_name;
-
void
usage (int status)
{
@@ -84,7 +82,7 @@ main (int argc, char **argv)
gid_t primary_gid;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/shred.c b/src/shred.c
index 1b941810c..bfafa96f3 100644
--- a/src/shred.c
+++ b/src/shred.c
@@ -148,9 +148,6 @@ static struct option const long_opts[] =
{NULL, 0, NULL, 0}
};
-/* Global variable for error printing purposes */
-char const *program_name; /* Initialized before any possible use */
-
void
usage (int status)
{
@@ -1100,7 +1097,7 @@ main (int argc, char **argv)
char const *random_source = NULL;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/shuf.c b/src/shuf.c
index 359aeb0c8..ca5345b4b 100644
--- a/src/shuf.c
+++ b/src/shuf.c
@@ -36,9 +36,6 @@
#define AUTHORS proper_name ("Paul Eggert")
-/* The name this program was run with. */
-char const *program_name;
-
void
usage (int status)
{
@@ -261,7 +258,7 @@ main (int argc, char **argv)
size_t *permutation;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/sleep.c b/src/sleep.c
index 5ae704517..4176977f0 100644
--- a/src/sleep.c
+++ b/src/sleep.c
@@ -35,9 +35,6 @@
proper_name ("Jim Meyering"), \
proper_name ("Paul Eggert")
-/* The name by which this program was run. */
-char const *program_name;
-
void
usage (int status)
{
@@ -107,7 +104,7 @@ main (int argc, char **argv)
bool ok = true;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/sort.c b/src/sort.c
index 5b272e7b7..632c5c836 100644
--- a/src/sort.c
+++ b/src/sort.c
@@ -183,9 +183,6 @@ struct month
int val;
};
-/* The name this program was run with. */
-char const *program_name;
-
/* FIXME: None of these tables work with multibyte character sets.
Also, there are many other bugs when handling multibyte characters.
One way to fix this is to rewrite `sort' to use wide characters
@@ -2757,7 +2754,7 @@ main (int argc, char **argv)
char const *outfile = NULL;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/split.c b/src/split.c
index 4937e55a8..71200fb32 100644
--- a/src/split.c
+++ b/src/split.c
@@ -46,9 +46,6 @@
#define DEFAULT_SUFFIX_LENGTH 2
-/* The name this program was run with. */
-char const *program_name;
-
/* Base name of output files. */
static char const *outbase;
@@ -395,7 +392,7 @@ main (int argc, char **argv)
int digits_optind = 0;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/stat.c b/src/stat.c
index 7b750a085..0d52c27b1 100644
--- a/src/stat.c
+++ b/src/stat.c
@@ -173,8 +173,6 @@ static struct option const long_options[] = {
{NULL, 0, NULL, 0}
};
-char const *program_name;
-
/* Whether to follow symbolic links; True for --dereference (-L). */
static bool follow_links;
@@ -1005,7 +1003,7 @@ main (int argc, char *argv[])
bool ok = true;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/stty.c b/src/stty.c
index 344136574..004c3186c 100644
--- a/src/stty.c
+++ b/src/stty.c
@@ -455,9 +455,6 @@ static struct option longopts[] =
{NULL, 0, NULL, 0}
};
-/* The name this program was run with. */
-char const *program_name;
-
static void wrapf (const char *message, ...)
__attribute__ ((__format__ (__printf__, 1, 2)));
@@ -745,7 +742,7 @@ main (int argc, char **argv)
const char *device_name;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/su.c b/src/su.c
index d6aaaaa88..f6b61f773 100644
--- a/src/su.c
+++ b/src/su.c
@@ -128,9 +128,6 @@ extern char **environ;
static void run_shell (char const *, char const *, char **, size_t)
ATTRIBUTE_NORETURN;
-/* The name this program was run with. */
-char const *program_name;
-
/* If true, pass the `-f' option to the subshell. */
static bool fast_startup;
@@ -414,7 +411,7 @@ main (int argc, char **argv)
struct passwd pw_copy;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/sum.c b/src/sum.c
index a2aa94570..4dfc86797 100644
--- a/src/sum.c
+++ b/src/sum.c
@@ -36,9 +36,6 @@
proper_name ("Kayvan Aghaiepour"), \
proper_name ("David MacKenzie")
-/* The name this program was run with. */
-char const *program_name;
-
/* True if any of the files read were the standard input. */
static bool have_read_stdin;
@@ -228,7 +225,7 @@ main (int argc, char **argv)
bool (*sum_func) (const char *, int) = bsd_sum_file;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/sync.c b/src/sync.c
index fe09c01ce..96dcf0953 100644
--- a/src/sync.c
+++ b/src/sync.c
@@ -30,9 +30,6 @@
#define AUTHORS proper_name ("Jim Meyering")
-/* The name this program was run with. */
-char const *program_name;
-
void
usage (int status)
{
@@ -57,7 +54,7 @@ int
main (int argc, char **argv)
{
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/system.h b/src/system.h
index f7c689f8e..c69ddca34 100644
--- a/src/system.h
+++ b/src/system.h
@@ -462,6 +462,8 @@ enum
of the 100 binaries. */
#define proper_name(x) (x)
+#include "progname.h"
+
#define case_GETOPT_VERSION_CHAR(Program_name, Authors) \
case GETOPT_VERSION_CHAR: \
version_etc (stdout, Program_name, PACKAGE_NAME, VERSION, Authors, \
diff --git a/src/tac.c b/src/tac.c
index baaf5ed16..9cf6d60dc 100644
--- a/src/tac.c
+++ b/src/tac.c
@@ -75,9 +75,6 @@ tac -r -s '.\|
/* The number of bytes per atomic write. */
#define WRITESIZE 8192
-/* The name this program was run with. */
-char const *program_name;
-
/* The string that separates the records of the file. */
static char const *separator;
@@ -575,7 +572,7 @@ main (int argc, char **argv)
char const *const *file;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/tail.c b/src/tail.c
index f6ade24b2..1ce207e52 100644
--- a/src/tail.c
+++ b/src/tail.c
@@ -162,9 +162,6 @@ enum header_mode
static uintmax_t max_n_unchanged_stats_between_opens =
DEFAULT_MAX_N_UNCHANGED_STATS_BETWEEN_OPENS;
-/* The name this program was run with. */
-char const *program_name;
-
/* The process ID of the process (presumably on the current host)
that is writing to all followed files. */
static pid_t pid;
@@ -1599,7 +1596,7 @@ main (int argc, char **argv)
double sleep_interval = 1.0;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/tee.c b/src/tee.c
index 2f1c7bb55..162455c53 100644
--- a/src/tee.c
+++ b/src/tee.c
@@ -41,9 +41,6 @@ static bool append;
/* If true, ignore interrupts. */
static bool ignore_interrupts;
-/* The name that this program was run with. */
-char const *program_name;
-
static struct option const long_options[] =
{
{"append", no_argument, NULL, 'a'},
@@ -86,7 +83,7 @@ main (int argc, char **argv)
int optc;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/test.c b/src/test.c
index 88579d2ca..858a837e5 100644
--- a/src/test.c
+++ b/src/test.c
@@ -48,8 +48,6 @@
# include <sys/param.h>
#endif
-char const *program_name;
-
/* Exit status for syntax errors, etc. */
enum { TEST_TRUE, TEST_FALSE, TEST_FAILURE };
@@ -809,7 +807,7 @@ main (int margc, char **margv)
return (test_error_return);
#else /* TEST_STANDALONE */
initialize_main (&margc, &margv);
- program_name = margv[0];
+ set_program_name (margv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/timeout.c b/src/timeout.c
index 9373cfa36..f7f9af012 100644
--- a/src/timeout.c
+++ b/src/timeout.c
@@ -83,8 +83,6 @@ static int term_signal = SIGTERM; /* same default as kill command. */
static int monitored_pid;
static int sigs_to_ignore[NSIG]; /* so monitor can ignore sigs it resends. */
-char const *program_name;
-
static struct option const long_options[] = {
{"signal", required_argument, NULL, 's'},
{NULL, 0, NULL, 0}
@@ -224,7 +222,7 @@ main (int argc, char **argv)
char *ep;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/touch.c b/src/touch.c
index b8e4f2e1c..bbc9c6012 100644
--- a/src/touch.c
+++ b/src/touch.c
@@ -48,9 +48,6 @@
#define CH_ATIME 1
#define CH_MTIME 2
-/* The name by which this program was run. */
-char const *program_name;
-
/* Which timestamps to change. */
static int change_times;
@@ -280,7 +277,7 @@ main (int argc, char **argv)
char const *flex_date = NULL;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/tr.c b/src/tr.c
index 532e4f01a..e1bb40499 100644
--- a/src/tr.c
+++ b/src/tr.c
@@ -193,9 +193,6 @@ es_match (struct E_string const *es, size_t i, char c)
return es->s[i] == c && !es->escaped[i];
}
-/* The name by which this program was run. */
-char const *program_name;
-
/* When true, each sequence in the input of a repeated character
(call it c) is replaced (in the output) by a single occurrence of c
for every c in the squeeze set. */
@@ -1671,7 +1668,7 @@ main (int argc, char **argv)
struct Spec_list *s2 = &buf2;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/true.c b/src/true.c
index ae6990a3f..75e53bcf5 100644
--- a/src/true.c
+++ b/src/true.c
@@ -32,9 +32,6 @@
#define AUTHORS proper_name ("Jim Meyering")
-/* The name this program was run with. */
-char const *program_name;
-
void
usage (int status)
{
@@ -58,7 +55,7 @@ int
main (int argc, char **argv)
{
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/tsort.c b/src/tsort.c
index a68ba04dc..703b8557d 100644
--- a/src/tsort.c
+++ b/src/tsort.c
@@ -59,9 +59,6 @@ struct item
struct successor *top;
};
-/* The name this program was run with. */
-char const *program_name;
-
/* The head of the sorted list. */
static struct item *head = NULL;
@@ -534,7 +531,7 @@ main (int argc, char **argv)
bool ok;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/tty.c b/src/tty.c
index fe19b0110..c7b13dcab 100644
--- a/src/tty.c
+++ b/src/tty.c
@@ -42,9 +42,6 @@ enum
#define AUTHORS proper_name ("David MacKenzie")
-/* The name under which this program was run. */
-char const *program_name;
-
/* If true, return an exit status but produce no output. */
static bool silent;
@@ -85,7 +82,7 @@ main (int argc, char **argv)
int optc;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/uname.c b/src/uname.c
index 4691afc5c..3870dfa3d 100644
--- a/src/uname.c
+++ b/src/uname.c
@@ -86,9 +86,6 @@
/* Operating system. */
#define PRINT_OPERATING_SYSTEM 128
-/* The name this program was run with, for error messages. */
-char const *program_name;
-
static struct option const uname_long_options[] =
{
{"all", no_argument, NULL, 'a'},
@@ -269,7 +266,7 @@ main (int argc, char **argv)
unsigned int toprint = 0;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/unexpand.c b/src/unexpand.c
index 1fc65d39e..5a2d0cdeb 100644
--- a/src/unexpand.c
+++ b/src/unexpand.c
@@ -52,9 +52,6 @@
allocated for the output line. */
#define OUTPUT_BLOCK 256
-/* The name this program was run with. */
-char const *program_name;
-
/* If true, convert blanks even after nonblank characters have been
read on the line. */
static bool convert_entire_line;
@@ -464,7 +461,7 @@ main (int argc, char **argv)
bool convert_first_only = false;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/uniq.c b/src/uniq.c
index f8948e26a..5af52710c 100644
--- a/src/uniq.c
+++ b/src/uniq.c
@@ -50,9 +50,6 @@
} \
while (0)
-/* The name this program was run with. */
-char const *program_name;
-
/* True if the LC_COLLATE locale is hard. */
static bool hard_LC_COLLATE;
@@ -418,7 +415,7 @@ main (int argc, char **argv)
file[0] = file[1] = "-";
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/unlink.c b/src/unlink.c
index 0ef24480e..36595c8dc 100644
--- a/src/unlink.c
+++ b/src/unlink.c
@@ -35,9 +35,6 @@
#define AUTHORS proper_name ("Michael Stone")
-/* Name this program was run with. */
-char const *program_name;
-
void
usage (int status)
{
@@ -62,7 +59,7 @@ int
main (int argc, char **argv)
{
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/uptime.c b/src/uptime.c
index 1179ce568..9e3384fc8 100644
--- a/src/uptime.c
+++ b/src/uptime.c
@@ -47,9 +47,6 @@
int getloadavg ();
-/* The name this program was run with. */
-char const *program_name;
-
static void
print_uptime (size_t n, const STRUCT_UTMP *this)
{
@@ -216,7 +213,7 @@ int
main (int argc, char **argv)
{
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/users.c b/src/users.c
index b1e8b3d8b..551616e84 100644
--- a/src/users.c
+++ b/src/users.c
@@ -35,9 +35,6 @@
proper_name ("Joseph Arceneaux"), \
proper_name ("David MacKenzie")
-/* The name this program was run with. */
-char const *program_name;
-
static int
userid_compare (const void *v_a, const void *v_b)
{
@@ -124,7 +121,7 @@ int
main (int argc, char **argv)
{
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/wc.c b/src/wc.c
index 731eb4a47..8073bb0f9 100644
--- a/src/wc.c
+++ b/src/wc.c
@@ -49,9 +49,6 @@
/* Size of atomic reads. */
#define BUFFER_SIZE (16 * 1024)
-/* The name this program was run with. */
-char const *program_name;
-
/* Cumulative number of lines, words, chars and bytes in all files so far.
max_line_length is the maximum over all files processed so far. */
static uintmax_t total_lines;
@@ -589,7 +586,7 @@ main (int argc, char **argv)
struct Tokens tok;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/who.c b/src/who.c
index bec924fb2..34b56481d 100644
--- a/src/who.c
+++ b/src/who.c
@@ -98,9 +98,6 @@
char *ttyname ();
-/* The name this program was run with. */
-char const *program_name;
-
/* If true, attempt to canonicalize hostnames via a DNS lookup. */
static bool do_lookup;
@@ -677,7 +674,7 @@ main (int argc, char **argv)
bool assumptions = true;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/whoami.c b/src/whoami.c
index 7686fd083..c3b709bc4 100644
--- a/src/whoami.c
+++ b/src/whoami.c
@@ -35,9 +35,6 @@
#define AUTHORS proper_name ("Richard Mlynarik")
-/* The name this program was run with. */
-char const *program_name;
-
void
usage (int status)
{
@@ -66,7 +63,7 @@ main (int argc, char **argv)
uid_t uid;
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
diff --git a/src/yes.c b/src/yes.c
index 7dec1ecdd..d72c5da87 100644
--- a/src/yes.c
+++ b/src/yes.c
@@ -31,9 +31,6 @@
#define AUTHORS proper_name ("David MacKenzie")
-/* The name this program was run with. */
-char const *program_name;
-
void
usage (int status)
{
@@ -63,7 +60,7 @@ int
main (int argc, char **argv)
{
initialize_main (&argc, &argv);
- program_name = argv[0];
+ set_program_name (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);