changeset 2859:b5cd3242b5e7

Solaris: Add platform specific executable path detection.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Tue, 15 Nov 2022 21:41:01 +0000
parents ecfbc48e933a
children 9daee9d58956
files gtk/dw.c gtk3/dw.c gtk4/dw.c
diffstat 3 files changed, 18 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/gtk/dw.c	Tue Nov 15 10:32:42 2022 +0000
+++ b/gtk/dw.c	Tue Nov 15 21:41:01 2022 +0000
@@ -2108,6 +2108,12 @@
    size_t length = PATH_MAX;
 
    if(sysctl(name, 4, path, &length, NULL, 0) == -1 || length <= 1)
+#elif defined(__sun__)
+   char procpath[101] = {0};
+
+   snprintf(procpath, 100, "/proc/%d/path/a.out", getpid());
+
+   if(readlink(procpath, path, PATH_MAX) == -1)
 #endif
       strncpy(path, arg ? arg : "", PATH_MAX);
 
--- a/gtk3/dw.c	Tue Nov 15 10:32:42 2022 +0000
+++ b/gtk3/dw.c	Tue Nov 15 21:41:01 2022 +0000
@@ -2048,6 +2048,12 @@
    size_t length = PATH_MAX;
 
    if(sysctl(name, 4, path, &length, NULL, 0) == -1 || length <= 1)
+#elif defined(__sun__)
+   char procpath[101] = {0};
+
+   snprintf(procpath, 100, "/proc/%d/path/a.out", getpid());
+
+   if(readlink(procpath, path, PATH_MAX) == -1)
 #endif
       strncpy(path, arg ? arg : "", PATH_MAX);
 
--- a/gtk4/dw.c	Tue Nov 15 10:32:42 2022 +0000
+++ b/gtk4/dw.c	Tue Nov 15 21:41:01 2022 +0000
@@ -1519,6 +1519,12 @@
    size_t length = PATH_MAX;
 
    if(sysctl(name, 4, path, &length, NULL, 0) == -1 || length <= 1)
+#elif defined(__sun__)
+   char procpath[101] = {0};
+
+   snprintf(procpath, 100, "/proc/%d/path/a.out", getpid());
+
+   if(readlink(procpath, path, PATH_MAX) == -1)
 #endif
       strncpy(path, arg ? arg : "", PATH_MAX);