From: Bartosz Golaszewski Date: Fri, 28 Jul 2017 11:00:41 +0000 (+0200) Subject: tools: use program_invocation_name X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=b0774a79b4c9ee639b7429df2e62bc27adafe6a5;p=qemu-gpiodev%2Flibgpiod.git tools: use program_invocation_name Remove set_progname() from tools-common and use the global program_invocation_name variable. Signed-off-by: Bartosz Golaszewski --- diff --git a/src/tools/gpiodetect.c b/src/tools/gpiodetect.c index 6ef25f5..aa50b16 100644 --- a/src/tools/gpiodetect.c +++ b/src/tools/gpiodetect.c @@ -38,8 +38,6 @@ int main(int argc, char **argv) struct gpiod_chip *chip; int optc, opti; - set_progname(argv[0]); - for (;;) { optc = getopt_long(argc, argv, shortopts, longopts, &opti); if (optc < 0) diff --git a/src/tools/gpiofind.c b/src/tools/gpiofind.c index 3a8b85b..221687b 100644 --- a/src/tools/gpiofind.c +++ b/src/tools/gpiofind.c @@ -38,8 +38,6 @@ int main(int argc, char **argv) struct gpiod_chip *chip; int optc, opti; - set_progname(argv[0]); - for (;;) { optc = getopt_long(argc, argv, shortopts, longopts, &opti); if (optc < 0) diff --git a/src/tools/gpioget.c b/src/tools/gpioget.c index 0575694..2cf081b 100644 --- a/src/tools/gpioget.c +++ b/src/tools/gpioget.c @@ -43,8 +43,6 @@ int main(int argc, char **argv) bool active_low = false; char *device, *end; - set_progname(argv[0]); - for (;;) { optc = getopt_long(argc, argv, shortopts, longopts, &opti); if (optc < 0) diff --git a/src/tools/gpioinfo.c b/src/tools/gpioinfo.c index 84ebb35..7ae58f8 100644 --- a/src/tools/gpioinfo.c +++ b/src/tools/gpioinfo.c @@ -155,8 +155,6 @@ int main(int argc, char **argv) struct gpiod_chip *chip; int i, optc, opti; - set_progname(argv[0]); - for (;;) { optc = getopt_long(argc, argv, shortopts, longopts, &opti); if (optc < 0) diff --git a/src/tools/gpiomon.c b/src/tools/gpiomon.c index 75eacf4..23add45 100644 --- a/src/tools/gpiomon.c +++ b/src/tools/gpiomon.c @@ -182,8 +182,6 @@ int main(int argc, char **argv) unsigned int offset; char *end; - set_progname(argv[0]); - memset(&config, 0, sizeof(config)); for (;;) { diff --git a/src/tools/gpioset.c b/src/tools/gpioset.c index 9d2ded7..c14f93e 100644 --- a/src/tools/gpioset.c +++ b/src/tools/gpioset.c @@ -183,8 +183,6 @@ int main(int argc, char **argv) bool active_low = false; char *device, *end; - set_progname(argv[0]); - memset(&cbdata, 0, sizeof(cbdata)); for (;;) { diff --git a/src/tools/tools-common.c b/src/tools/tools-common.c index 1e968e0..6e3ce65 100644 --- a/src/tools/tools-common.c +++ b/src/tools/tools-common.c @@ -22,16 +22,9 @@ #define NORETURN __attribute__((noreturn)) -static char *progname = "unknown"; - -void set_progname(char *name) -{ - progname = name; -} - const char * get_progname(void) { - return progname; + return program_invocation_name; } void NORETURN PRINTF(1, 2) die(const char *fmt, ...) @@ -39,7 +32,7 @@ void NORETURN PRINTF(1, 2) die(const char *fmt, ...) va_list va; va_start(va, fmt); - fprintf(stderr, "%s: ", progname); + fprintf(stderr, "%s: ", program_invocation_name); vfprintf(stderr, fmt, va); fprintf(stderr, "\n"); va_end(va); @@ -52,7 +45,7 @@ void NORETURN PRINTF(1, 2) die_perror(const char *fmt, ...) va_list va; va_start(va, fmt); - fprintf(stderr, "%s: ", progname); + fprintf(stderr, "%s: ", program_invocation_name); vfprintf(stderr, fmt, va); fprintf(stderr, ": %s\n", strerror(errno)); va_end(va); @@ -62,20 +55,10 @@ void NORETURN PRINTF(1, 2) die_perror(const char *fmt, ...) void print_version(void) { - char *prog, *tmp; - - tmp = strdup(progname); - if (!tmp) - prog = progname; - else - prog = basename(tmp); - - printf("%s (libgpiod) %s\n", prog, gpiod_version_string()); + printf("%s (libgpiod) %s\n", + program_invocation_short_name, gpiod_version_string()); printf("Copyright (C) 2017 Bartosz Golaszewski\n"); printf("License: LGPLv2.1\n"); printf("This is free software: you are free to change and redistribute it.\n"); printf("There is NO WARRANTY, to the extent permitted by law.\n"); - - if (tmp) - free(tmp); } diff --git a/src/tools/tools-common.h b/src/tools/tools-common.h index 663cac0..defa109 100644 --- a/src/tools/tools-common.h +++ b/src/tools/tools-common.h @@ -22,7 +22,6 @@ #define PRINTF(fmt, arg) __attribute__((format(printf, fmt, arg))) #define ARRAY_SIZE(x) (sizeof(x) / sizeof(*(x))) -void set_progname(char *name); const char * get_progname(void); void die(const char *fmt, ...); void die_perror(const char *fmt, ...);