summaryrefslogtreecommitdiff
path: root/multimedia/gpac-libgpac/files/patch-src-utils-os_config_init.c
blob: 66e0901421fa85df9415445a88bb84b1a2fa3760 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
--- src/utils/os_config_init.c.orig	2020-06-16 16:17:17 UTC
+++ src/utils/os_config_init.c
@@ -58,6 +58,9 @@
 #else
 #ifdef GPAC_CONFIG_LINUX
 #include <unistd.h>
+#elif defined GPAC_CONFIG_FREEBSD
+#include <sys/types.h>
+#include <sys/sysctl.h>
 #endif
 #ifdef GPAC_CONFIG_ANDROID
 #define DEFAULT_ANDROID_PATH_APP	"/data/data/com.gpac.Osmo4"
@@ -294,6 +297,8 @@ static Bool get_default_install_path(char *file_path, 
 	char *sep;
 #if (defined(__DARWIN__) || defined(__APPLE__) || defined(GPAC_CONFIG_LINUX))
 	u32 size;
+#elif defined(GPAC_CONFIG_FREEBSD)
+	size_t size = GF_MAX_PATH;
 #endif
 
 	/*on OSX, Linux & co, user home is where we store the cfg file*/
@@ -369,6 +374,14 @@ static Bool get_default_install_path(char *file_path, 
 			if (sep) {
 				strcpy(file_path, sep);
 			}
+			return 1;
+		}
+#elif defined(GPAC_CONFIG_FREEBSD)
+		int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1 };
+		sysctl(mib, 4, file_path, &size, NULL, 0);
+		if (size>0) {
+			char *sep = strrchr(file_path, '/');
+			if (sep) sep[0] = 0;
 			return 1;
 		}
 #endif