diff --git a/tools/blisp/src/util.c b/tools/blisp/src/util.c index eab67ac..906985a 100644 --- a/tools/blisp/src/util.c +++ b/tools/blisp/src/util.c @@ -35,6 +35,11 @@ ssize_t util_get_binary_folder(char* buffer, uint32_t buffer_size) { #elif defined(__APPLE__) util_get_executable_path(buffer, buffer_size); char* pos = strrchr(buffer, '/'); +#elif __FreeBSD__ + if (readlink("/proc/curproc/file", buffer, buffer_size) <= 0) { + return -1; + } + char* pos = strrchr(buffer, '/'); #else if (GetModuleFileName(NULL, buffer, buffer_size) <= 0) { return -1; diff --git a/tools/blisp/src/util.h b/tools/blisp/src/util.h index f766fa9..3f0331f 100644 --- a/tools/blisp/src/util.h +++ b/tools/blisp/src/util.h @@ -4,9 +4,7 @@ #include -#ifdef __linux__ -#include -#elif defined(_MSC_VER) +#if defined(_MSC_VER) #include typedef SSIZE_T ssize_t; #include @@ -15,6 +13,8 @@ typedef SSIZE_T ssize_t; #include #include #include +#else +#include #endif ssize_t util_get_binary_folder(char* buffer, uint32_t buffer_size);