]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
getopt: fix -n name for BSD
authorRuediger Meier <ruediger.meier@ga-group.nl>
Mon, 7 Mar 2016 10:44:55 +0000 (11:44 +0100)
committerRuediger Meier <ruediger.meier@ga-group.nl>
Mon, 7 Mar 2016 22:36:46 +0000 (23:36 +0100)
BSD gets the program name for warnings from getprogname() and not
from argv. Thus we use setprogname() there.

Signed-off-by: Ruediger Meier <ruediger.meier@ga-group.nl>
misc-utils/getopt.c

index c166fd756e091edbc2809adee0689b821e6dd448..c4144f63e42bf9068955707e9d2dda9eaafbb2fe 100644 (file)
@@ -62,6 +62,9 @@
 #include <unistd.h>
 #include <ctype.h>
 #include <getopt.h>
+#ifdef HAVE_SYS_PARAM_H
+# include <sys/param.h> /* BSD */
+#endif
 
 #include "closestream.h"
 #include "nls.h"
@@ -447,9 +450,13 @@ int main(int argc, char *argv[])
                        optind++;
                }
        }
-       if (name)
+
+       if (name) {
                argv[optind - 1] = name;
-       else
+#if defined (BSD) || defined (__APPLE__)
+               setprogname(name);
+#endif
+       } else
                argv[optind - 1] = argv[0];
 
        return generate_output(&ctl, argv + optind - 1, argc - optind + 1);