changeset 40138:bec39651dc8d

getprogname: Port to Android 4.3. * lib/getprogname.c (getprogname): On Android, take only the last component of __progname.
author Bruno Haible <bruno@clisp.org>
date Sat, 26 Jan 2019 00:03:51 +0100
parents 9e646f080d9e
children 3bacbf659cc9
files ChangeLog lib/getprogname.c
diffstat 2 files changed, 11 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri Jan 25 23:39:28 2019 +0100
+++ b/ChangeLog	Sat Jan 26 00:03:51 2019 +0100
@@ -1,3 +1,9 @@
+2019-01-25  Bruno Haible  <bruno@clisp.org>
+
+	getprogname: Port to Android 4.3.
+	* lib/getprogname.c (getprogname): On Android, take only the last
+	component of __progname.
+
 2019-01-25  Bruno Haible  <bruno@clisp.org>
 
 	wcrtomb: Work around bug on Android 4.3.
--- a/lib/getprogname.c	Fri Jan 25 23:39:28 2019 +0100
+++ b/lib/getprogname.c	Sat Jan 26 00:03:51 2019 +0100
@@ -73,7 +73,7 @@
   /* https://msdn.microsoft.com/en-us/library/dn727674.aspx */
   const char *p = __argv && __argv[0] ? __argv[0] : "?";
   return last_component (p);
-# elif HAVE_VAR___PROGNAME                                  /* OpenBSD, QNX */
+# elif HAVE_VAR___PROGNAME                                  /* OpenBSD, Android, QNX */
   /* https://man.openbsd.org/style.9 */
   /* http://www.qnx.de/developers/docs/6.5.0/index.jsp?topic=%2Fcom.qnx.doc.neutrino_lib_ref%2Fp%2F__progname.html */
   /* Be careful to declare this only when we absolutely need it
@@ -82,7 +82,11 @@
      malfunction (have zero length) with Fedora 25's glibc.  */
   extern char *__progname;
   const char *p = __progname;
+#  if defined __ANDROID__
+  return last_component (p);
+#  else
   return p && p[0] ? p : "?";
+#  endif
 # elif _AIX                                                 /* AIX */
   /* Idea by Bastien ROUCARIÈS,
      https://lists.gnu.org/r/bug-gnulib/2010-12/msg00095.html