]> Savannah Git Hosting - gnulib.git/commitdiff
getprogname: port to Solaris 10
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 7 Sep 2016 06:56:26 +0000 (23:56 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 7 Sep 2016 06:56:42 +0000 (23:56 -0700)
* lib/getprogname.c: Include stdlib.h, for getexecname decl.
(getprogname) [HAVE_GETEXECNAME]: Use that, for Solaris 10.
* m4/getprogname.m4 (gl_FUNC_GETPROGNAME): Check for getexecname.

ChangeLog
lib/getprogname.c
m4/getprogname.m4

index c9513a897d3f457b96cd179879337066b9e8cce4..77938ef93893c0936098c822d21d758fe521cd26 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2016-09-06  Paul Eggert  <eggert@cs.ucla.edu>
 
+       getprogname: port to Solaris 10
+       * lib/getprogname.c: Include stdlib.h, for getexecname decl.
+       (getprogname) [HAVE_GETEXECNAME]: Use that, for Solaris 10.
+       * m4/getprogname.m4 (gl_FUNC_GETPROGNAME): Check for getexecname.
+
        stdalign: correct mistake in alignof doc
        Problem reported by Joseph Myers in:
        https://gcc.gnu.org/ml/gcc-patches/2016-09/msg00340.html
index ab2628388e2cc9454f164b41630d683ed835388c..522f3eb9bf7ba37fb86b809e222b32a9d04fb7a2 100644 (file)
@@ -20,6 +20,7 @@
 #include "getprogname.h"
 
 #include <errno.h> /* get program_invocation_name declaration */
+#include <stdlib.h>
 #include <string.h>
 
 
@@ -29,9 +30,16 @@ getprogname (void)
 {
 #if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME
   return program_invocation_short_name;
-#elif HAVE_DECL_PROGRAM_INVOCATION_NAME
-  const char *base = program_invocation_name;
+#elif HAVE_DECL_PROGRAM_INVOCATION_NAME || HAVE_GETEXECNAME
+
   const char *slash;
+# if HAVE_DECL_PROGRAM_INVOCATION_NAME
+  const char *base = program_invocation_name;
+# else
+  const char *base = getexecname ();
+  if (!base)
+    base = "?";
+# endif
 
   slash = strrchr (base, '/');
   if (slash != NULL)
index 3d305502aa7eb4bde755ea4ae1b9f6ba7075438a..52f022489d167b056aac6f8a04572ec5b3277f9f 100644 (file)
@@ -5,9 +5,9 @@
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
+# serial 2
 
 AC_DEFUN([gl_FUNC_GETPROGNAME],
 [
-  AC_CHECK_FUNCS_ONCE([getprogname])
+  AC_CHECK_FUNCS_ONCE([getprogname getexecname])
 ])