summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt1
-rw-r--r--src/path-prefix.cpp76
-rw-r--r--src/path-prefix.h13
-rw-r--r--src/prefix.cpp40
-rw-r--r--src/prefix.h7
5 files changed, 83 insertions, 54 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 4c56b211d..c6ef78a4f 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -233,6 +233,7 @@ set(inkscape_SRC
object-set.cpp
object-snapper.cpp
path-chemistry.cpp
+ path-prefix.cpp
persp3d-reference.cpp
persp3d.cpp
perspective-line.cpp
diff --git a/src/path-prefix.cpp b/src/path-prefix.cpp
new file mode 100644
index 000000000..a8a09b9db
--- /dev/null
+++ b/src/path-prefix.cpp
@@ -0,0 +1,76 @@
+/*
+ * path-prefix.cpp - Inkscape specific prefix handling
+ *
+ * Authors:
+ * Eduard Braun <eduard.braun2@gmx.de>
+ *
+ * Copyright (C) 2017 Authors
+ *
+ * This file is part of Inkscape.
+ *
+ * Inkscape is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * See the file COPYING for details.
+ *
+ */
+
+
+#ifdef __WIN32__
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+
+#include <glib.h>
+#include "path-prefix.h"
+
+
+/**
+ * Provide a similar mechanism for Win32. Enable a macro,
+ * WIN32_DATADIR, that can look up subpaths for inkscape resources
+ */
+
+/**
+ * Get the Windows-equivalent of INKSCAPE_DATADIR and append a relative path
+ *
+ * - by default INKSCAPE_DATADIR will be relative to the called executable
+ * (typically inkscape/share but also handles the case where the executable is in a /bin subfolder)
+ * - to override set the INKSCAPE_DATADIR environment variable
+ */
+char *win32_append_datadir(const char *relative_path)
+{
+ static gchar *datadir;
+ if (!datadir) {
+ gchar const *inkscape_datadir = g_getenv("INKSCAPE_DATADIR");
+ if (inkscape_datadir) {
+ datadir = g_strdup(inkscape_datadir);
+ } else {
+ gchar *module_path = g_win32_get_package_installation_directory_of_module(NULL);
+ datadir = g_build_filename(module_path, "share", NULL);
+ g_free(module_path);
+ }
+ }
+
+ if (!relative_path) {
+ relative_path = "";
+ }
+
+ return g_build_filename(datadir, relative_path, NULL);
+}
+#endif /* __WIN32__ */
+
+
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :
diff --git a/src/path-prefix.h b/src/path-prefix.h
index d6514d832..429b0ba72 100644
--- a/src/path-prefix.h
+++ b/src/path-prefix.h
@@ -18,9 +18,12 @@
#endif
#include "prefix.h"
-//#ifdef __cplusplus
-//extern "C" {
-//#endif /* __cplusplus */
+#ifdef __WIN32__
+char *win32_append_datadir(const char *relative_path);
+#define WIN32_DATADIR(suffix) (win32_append_datadir(suffix))
+#undef INKSCAPE_DATADIR
+#define INKSCAPE_DATADIR WIN32_DATADIR(NULL)
+#endif
#ifdef ENABLE_BINRELOC
/* The way that we're building now is with a shared library between Inkscape
@@ -127,8 +130,4 @@
# endif
#endif
-//#ifdef __cplusplus
-//}
-//#endif /* __cplusplus */
-
#endif /* _PATH_PREFIX_H_ */
diff --git a/src/prefix.cpp b/src/prefix.cpp
index c8bf7abec..14fdd04df 100644
--- a/src/prefix.cpp
+++ b/src/prefix.cpp
@@ -416,44 +416,4 @@ br_extract_prefix (const char *path)
}
#endif /* __cplusplus */
-
-
-#ifdef __WIN32__
-/**
- * Provide a similar mechanism for Win32. Enable a macro,
- * WIN32_DATADIR, that can look up subpaths for inkscape resources
- */
-
-/**
- * Get the Windows-equivalent of INKSCAPE_DATADIR and append a relative path
- *
- * - by default INKSCAPE_DATADIR will be relative to the called executable
- * (typically inkscape/share but also handles the case where the executable is in a /bin subfolder)
- * - to override set the INKSCAPE_DATADIR environment variable
- */
-char *win32_append_datadir(const char *relative_path)
-{
- static gchar *datadir;
- if (!datadir) {
- gchar const *inkscape_datadir = g_getenv("INKSCAPE_DATADIR");
- if (inkscape_datadir) {
- datadir = g_strdup(inkscape_datadir);
- } else {
- gchar *module_path = g_win32_get_package_installation_directory_of_module(NULL);
- datadir = g_build_filename(module_path, "share", NULL);
- g_free(module_path);
- }
- }
-
- if (!relative_path) {
- relative_path = "";
- }
-
- return g_build_filename(datadir, relative_path, NULL);
-}
-#endif /* __WIN32__ */
-
-
-
-
#endif /* _PREFIX_C */
diff --git a/src/prefix.h b/src/prefix.h
index d28e896d0..bdf3b6df4 100644
--- a/src/prefix.h
+++ b/src/prefix.h
@@ -118,11 +118,4 @@ char *br_extract_prefix(const char *path);
}
#endif /* __cplusplus */
-#ifdef __WIN32__
-char *win32_append_datadir(const char *relative_path);
-#undef INKSCAPE_DATADIR
-#define INKSCAPE_DATADIR win32_append_datadir(NULL)
-#define WIN32_DATADIR(suffix) (win32_append_datadir(suffix))
-#endif
-
#endif /* _PREFIX_H_ */