Module: Mesa
Branch: master
Commit: de93f546a7f9f3407f88ea8dd2d4b3f7158e94ed
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=de93f546a7f9f3407f88ea8dd2d4b3f7158e94ed

Author: Timothy Arceri <tarc...@itsqueeze.com>
Date:   Thu Jun 14 11:00:21 2018 +1000

util: manually extract the program name from program_invocation_name

Glibc has the same code to get program_invocation_short_name. However
for some reason the short name gets mangled for some wine apps.

For example with Google Earth VR I get:

program_invocation_name:
"/home/tarceri/.local/share/Steam/steamapps/common/EarthVR/Earth.exe"

program_invocation_short_name:
"e"

Acked-by: Eric Engestrom <eric.engest...@intel.com>

---

 src/util/xmlconfig.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/util/xmlconfig.c b/src/util/xmlconfig.c
index 60a6331c86..ad943e2ce4 100644
--- a/src/util/xmlconfig.c
+++ b/src/util/xmlconfig.c
@@ -45,7 +45,16 @@
 /* These aren't declared in any libc5 header */
 extern char *program_invocation_name, *program_invocation_short_name;
 #    endif
-#    define GET_PROGRAM_NAME() program_invocation_short_name
+static const char *
+__getProgramName()
+{
+    char * arg = strrchr(program_invocation_name, '/');
+    if (arg)
+        return arg+1;
+    else
+        return program_invocation_name;
+}
+#    define GET_PROGRAM_NAME() __getProgramName()
 #elif defined(__CYGWIN__)
 #    define GET_PROGRAM_NAME() program_invocation_short_name
 #elif defined(__FreeBSD__) && (__FreeBSD__ >= 2)

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to