summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristof Meerwald <[email protected]>2023-12-16 15:45:45 +0000
committerChristof Meerwald <[email protected]>2023-12-16 15:45:45 +0000
commit5f0771aca22599935dcf3190190bd6fa88c41476 (patch)
tree9556dd20cc5ae05f0a7cbd653854ad644d71c0a3
parentc9ebbda2042b6b018fed59810b6af894486e7f80 (diff)
Haiku OS has it's own way of getting the current program name (and the
current fallback options didn't work for Haiku, as there is no /usr/bin or /usr/local/bin)
-rw-r--r--core/src/xmake/engine.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/core/src/xmake/engine.c b/core/src/xmake/engine.c
index 311ffe464..d79f59d6a 100644
--- a/core/src/xmake/engine.c
+++ b/core/src/xmake/engine.c
@@ -46,6 +46,9 @@
# include <sys/sysctl.h>
# include <signal.h>
#endif
+#ifdef TB_CONFIG_OS_HAIKU
+# include <image.h>
+#endif
/* //////////////////////////////////////////////////////////////////////////////////////
* macros
@@ -676,6 +679,18 @@ static tb_size_t xm_engine_get_program_file(xm_engine_t* engine, tb_char_t* path
path[size] = '\0';
ok = tb_true;
}
+#elif defined(TB_CONFIG_OS_HAIKU)
+ int32 cookie = 0;
+ image_info info;
+ while (get_next_image_info(B_CURRENT_TEAM, &cookie, &info) == B_OK)
+ {
+ if (info.type == B_APP_IMAGE)
+ {
+ tb_strlcpy(path, info.name, maxn);
+ ok = tb_true;
+ break;
+ }
+ }
#else
static tb_char_t const* s_paths[] =
{