summaryrefslogtreecommitdiff
path: root/src/file.cc
diff options
context:
space:
mode:
authoralpha123 <turkchess123@gmail.com>2015-11-02 13:22:00 -0700
committeralpha123 <turkchess123@gmail.com>2015-11-03 11:51:27 -0700
commit97c92368bc0efe85d006e367d97fd88da5a13ecf (patch)
tree6ca9292084da13fc3416354862cfbae263d8876e /src/file.cc
parentba8fbb67189b78c1e552ccb2ebcc84a793704b11 (diff)
Build on FreeBSD
Diffstat (limited to 'src/file.cc')
-rw-r--r--src/file.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/file.cc b/src/file.cc
index ced88614..0e6b1e61 100644
--- a/src/file.cc
+++ b/src/file.cc
@@ -12,6 +12,10 @@
#include <unistd.h>
#include <dirent.h>
+#if defined(__FreeBSD__)
+#include <sys/sysctl.h>
+#endif
+
#if defined(__APPLE__)
#include <mach-o/dyld.h>
#define st_mtim st_mtimespec
@@ -491,6 +495,11 @@ String get_kak_binary_path()
kak_assert(res != -1);
buffer[res] = '\0';
return buffer;
+#elif defined(__FreeBSD__)
+ int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1};
+ size_t res = sizeof(buffer);
+ sysctl(mib, 4, buffer, &res, NULL, 0);
+ return buffer;
#elif defined(__APPLE__)
uint32_t bufsize = 2048;
_NSGetExecutablePath(buffer, &bufsize);