summaryrefslogtreecommitdiffstats
path: root/devel/synfig/files/patch-src__synfig__main.cpp
blob: 046bd7cea9c7a11b7bd6832849b3b12826d2d10b (plain)
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
--- src/synfig/main.cpp.orig	2017-04-02 22:19:06 UTC
+++ src/synfig/main.cpp
@@ -198,7 +198,7 @@ synfig::Main::Main(const synfig::String& basepath,Prog
 
 	unsigned int i;
 #ifdef _DEBUG
-#ifndef __APPLE__
+#ifndef __clang__
 	std::set_terminate(__gnu_cxx::__verbose_terminate_handler);
 #endif
 #endif
@@ -289,17 +289,17 @@ synfig::Main::Main(const synfig::String& basepath,Prog
 		locations.push_back(getenv("SYNFIG_MODULE_LIST"));
 	else
 	{
-		locations.push_back("./"MODULE_LIST_FILENAME);
+		locations.push_back("./" MODULE_LIST_FILENAME);
 		if(getenv("HOME"))
 			locations.push_back(strprintf("%s/.local/share/synfig/%s", getenv("HOME"), MODULE_LIST_FILENAME));
 	#ifdef SYSCONFDIR
-		locations.push_back(SYSCONFDIR"/"MODULE_LIST_FILENAME);
+		locations.push_back(SYSCONFDIR "/" MODULE_LIST_FILENAME);
 	#endif
 		locations.push_back(prefix+ETL_DIRECTORY_SEPARATOR+"etc"+ETL_DIRECTORY_SEPARATOR+MODULE_LIST_FILENAME);
-		locations.push_back("/usr/local/etc/"MODULE_LIST_FILENAME);
+		locations.push_back("/usr/local/etc/" MODULE_LIST_FILENAME);
 	#ifdef __APPLE__
-		locations.push_back("/Library/Frameworks/synfig.framework/Resources/"MODULE_LIST_FILENAME);
-		locations.push_back("/Library/Synfig/"MODULE_LIST_FILENAME);
+		locations.push_back("/Library/Frameworks/synfig.framework/Resources/" MODULE_LIST_FILENAME);
+		locations.push_back("/Library/Synfig/" MODULE_LIST_FILENAME);
 		if(getenv("HOME"))
 			locations.push_back(strprintf("%s/Library/Synfig/%s", getenv("HOME"), MODULE_LIST_FILENAME));
 	#endif
@@ -490,7 +490,11 @@ synfig::get_binary_path(const String &fallback_path)
 
 	/* Read from /proc/self/exe (symlink) */
 	char* path2 = (char*)malloc(buf_size);
+#if defined(__FreeBSD__) || defined (__DragonFly__)
+        strncpy(path2, "/proc/curproc/file", buf_size - 1);
+#else
 	strncpy(path2, "/proc/self/exe", buf_size - 1);
+#endif
 
 	while (1) {
 		int i;
@@ -524,9 +528,10 @@ synfig::get_binary_path(const String &fallback_path)
 		/* path is a symlink. Continue loop and resolve this. */
 		strncpy(path, path2, buf_size - 1);
 	}
-	
+
 	free(path2);
 
+#if ! (defined(__FreeBSD__) || defined(__DragonFly__))
 	if (result == "")
 	{
 		/* readlink() or stat() failed; this can happen when the program is
@@ -568,6 +573,7 @@ synfig::get_binary_path(const String &fallback_path)
 		free(line);
 		fclose(f);
 	}
+#endif
 	
 	free(path);
 
OpenPOWER on IntegriCloud