util: implement GET_PROGRAM_NAME for Haiku
authorX512 <danger_mail@list.ru>
Tue, 5 Jan 2021 04:04:39 +0000 (22:04 -0600)
committerAlexander von Gluck IV <kallisti5@unixzen.com>
Sun, 10 Jan 2021 02:51:03 +0000 (20:51 -0600)
Reviewed-by: Alexander von Gluck IV <kallisti5@unixzen.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8323>

src/util/u_process.c

index 9f847d1..2312860 100644 (file)
@@ -152,6 +152,25 @@ __getProgramName()
    return progname;
 }
 #        define GET_PROGRAM_NAME() __getProgramName()
+#elif defined(__HAIKU__)
+#    include <libgen.h>
+extern char **__libc_argv;
+extern int __libc_argc;
+
+static const char *
+__getProgramName()
+{
+    static const char *progname;
+
+    if (progname == NULL) {
+        char *n = strdup(__libc_argv[0]);
+        if (n != NULL) {
+            progname = basename(n);
+        }
+    }
+    return progname;
+}
+#    define GET_PROGRAM_NAME() __getProgramName()
 #endif
 
 #if !defined(GET_PROGRAM_NAME)