Commit 87232260404f10c6884756796306f270a527628e

Guillem Jover 2011-07-06T16:29:26

Use system __progname variable in progname module if available

diff --git a/configure.ac b/configure.ac
index c9cf0a4..ab7f96a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -37,6 +37,15 @@ AC_TYPE_SIZE_T
 AC_TYPE_SSIZE_T
 
 # Checks for library functions.
+AC_MSG_CHECKING([for __progname])
+AC_LINK_IFELSE(
+	[AC_LANG_PROGRAM([[]],
+	                 [[extern char *__progname;
+	                   const char *p = __progname;]])],
+	[AC_DEFINE([HAVE___PROGNAME], [1], [Define to 1 if you have __progname])
+	 AC_MSG_RESULT([yes])],
+	[AC_MSG_RESULT([no])])
+
 AC_CHECK_FUNCS([getexecname])
 
 AC_CONFIG_FILES([
diff --git a/src/progname.c b/src/progname.c
index b5132d8..4d0fee7 100644
--- a/src/progname.c
+++ b/src/progname.c
@@ -33,7 +33,11 @@
 #include <string.h>
 #include <stdlib.h>
 
+#ifdef HAVE___PROGNAME
+extern const char *__progname;
+#else
 static const char *__progname = NULL;
+#endif
 
 const char *
 getprogname(void)