summaryrefslogtreecommitdiff
path: root/lib/getprogname.c
diff options
context:
space:
mode:
authorJim Meyering <meyering@fb.com>2016-09-28 11:09:03 -0700
committerJim Meyering <meyering@fb.com>2016-09-28 11:52:37 -0700
commit9a8bf3b56cdd6b40b7da44b94b0023d95867784e (patch)
treed3fcd9ccbf39d8b7b8276752ddfa01b691d4d239 /lib/getprogname.c
parent85854baba34817be27d9ad3b6c013fde9fb08236 (diff)
downloadgnulib-9a8bf3b56cdd6b40b7da44b94b0023d95867784e.tar.gz
getprogname: port to OpenBSD 5.1
* lib/getprogname.c (__progname) [HAVE_DECL___PROGNAME]: Declare. (getprogname) [HAVE_DECL___PROGNAME]: Return __progname or "?". * modules/getprogname (configure.ac): Move most of this code... * m4/getprogname.m4 (gl_FUNC_GETPROGNAME): ... to this function, increment serial number, and add a test for __progname. https://bugs.gnu.org/24562 Reported by Nelson H. F. Beebe.
Diffstat (limited to 'lib/getprogname.c')
-rw-r--r--lib/getprogname.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/getprogname.c b/lib/getprogname.c
index 17e6059e1c..1e2ba20a53 100644
--- a/lib/getprogname.c
+++ b/lib/getprogname.c
@@ -32,6 +32,10 @@
#ifndef HAVE_GETPROGNAME
+# ifdef HAVE_DECL___PROGNAME
+char *__progname;
+# endif
+
char const *
getprogname (void)
{
@@ -47,6 +51,11 @@ getprogname (void)
# elif HAVE_DECL___ARGV
const char *p = __argv && __argv[0] ? __argv[0] : "?";
return last_component (p);
+# elif HAVE_DECL___PROGNAME
+ /* This variable exists at least on OpenBSD 5.1 and glibc-2.23,
+ and appears always to be the basename component of argv[0]. */
+ const char *p = __progname;
+ return p && p[0] ? p : "?";
# elif _AIX
/* Idea by Bastien ROUCARIÈS <address@hidden>,
http://lists.gnu.org/archive/html/bug-gnulib/2010-12/msg00095.html