From 3324e9ccfc3b8369ba857884c398b251e3d2da41 Mon Sep 17 00:00:00 2001
From: Bruno Haible <bruno@clisp.org>
Date: Sat, 26 Jan 2019 00:03:51 +0100
Subject: [PATCH] getprogname: Port to Android 4.3.

* lib/getprogname.c (getprogname): On Android, take only the last
component of __progname.
---
 ChangeLog         | 6 ++++++
 lib/getprogname.c | 6 +++++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index 5332fd738a..812b423895 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/lib/getprogname.c b/lib/getprogname.c
index 09e65f8bc0..1f264a17c1 100644
--- a/lib/getprogname.c
+++ b/lib/getprogname.c
@@ -73,7 +73,7 @@ getprogname (void)
   /* 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 @@ getprogname (void)
      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
-- 
2.39.5