tools: use program_invocation_name
authorBartosz Golaszewski <bartekgola@gmail.com>
Fri, 28 Jul 2017 11:00:41 +0000 (13:00 +0200)
committerBartosz Golaszewski <bartekgola@gmail.com>
Fri, 28 Jul 2017 11:00:41 +0000 (13:00 +0200)
Remove set_progname() from tools-common and use the global
program_invocation_name variable.

Signed-off-by: Bartosz Golaszewski <bartekgola@gmail.com>
src/tools/gpiodetect.c
src/tools/gpiofind.c
src/tools/gpioget.c
src/tools/gpioinfo.c
src/tools/gpiomon.c
src/tools/gpioset.c
src/tools/tools-common.c
src/tools/tools-common.h

index 6ef25f528947d25f19dd002b5903a8a590a40a79..aa50b16948802aa091711a52eddbdd09f9a1beeb 100644 (file)
@@ -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)
index 3a8b85b8e5d3bac08572c8b5f026c44f2bc4903a..221687bd67bab0897af25e55d305a3189a88c882 100644 (file)
@@ -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)
index 0575694ada4be557b7cce59c01bd95c737730380..2cf081b5b3e13f9203bf868e5407ad8bb8cd2ea5 100644 (file)
@@ -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)
index 84ebb35df2ec1d5c076fd2f5f21fd3abef145aa1..7ae58f868a161497b1cdd74b4aa502caf0ca2130 100644 (file)
@@ -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)
index 75eacf4a2f207c474035c67c38275238de24bd11..23add45046ee927e00953f1ede5be5d8bace50ef 100644 (file)
@@ -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 (;;) {
index 9d2ded751ff23c3229d38a576cd2aec6261ccb80..c14f93e0b705b44c0cb2bbb85b8cc86d6883f8c3 100644 (file)
@@ -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 (;;) {
index 1e968e02a2c47ae7d40d7beb504a94c723529182..6e3ce6572faae38abb3ef08a703dd15ef26b1d41 100644 (file)
 
 #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);
 }
index 663cac06c1ba32b5846a94c4512242f6549a19da..defa1093f85261fb103a925be5e3b86d990a5b10 100644 (file)
@@ -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, ...);