summaryrefslogtreecommitdiffstats
path: root/src/path-prefix.cpp
diff options
context:
space:
mode:
authorPatrick Storz <eduard.braun2@gmx.de>2019-06-14 20:53:04 +0000
committerPatrick Storz <eduard.braun2@gmx.de>2019-06-14 21:09:56 +0000
commit28bf718658008ca52303d9066f21a8781a9008ff (patch)
treeee1b370addc1203e6cd5b5959fdcae677ff5f971 /src/path-prefix.cpp
parentAdd extensions directory in user folder to PYTHONPATH (diff)
downloadinkscape-28bf718658008ca52303d9066f21a8781a9008ff.tar.gz
inkscape-28bf718658008ca52303d9066f21a8781a9008ff.zip
append_inkscape_datadir: Canonicalize inkscape_datadir separately
g_canonicalize_filename() needs the second parameter to be absolute which INKSCAPE_DATADIR is not guaranteed to be (e.g. when supplied via environment variable). (follow up to 812f50f709384d6c59587c9f1706e401600291a6)
Diffstat (limited to 'src/path-prefix.cpp')
-rw-r--r--src/path-prefix.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/path-prefix.cpp b/src/path-prefix.cpp
index c447bb562..f03c5cb8e 100644
--- a/src/path-prefix.cpp
+++ b/src/path-prefix.cpp
@@ -37,18 +37,30 @@ char *append_inkscape_datadir(const char *relative_path)
{
static gchar const *inkscape_datadir;
if (!inkscape_datadir) {
+ gchar *datadir;
gchar const *datadir_env = g_getenv("INKSCAPE_DATADIR");
if (datadir_env) {
- inkscape_datadir = g_strdup(datadir_env);
+ datadir = g_strdup(datadir_env);
} else {
#ifdef _WIN32
gchar *module_path = g_win32_get_package_installation_directory_of_module(NULL);
- inkscape_datadir = g_build_filename(module_path, "share", NULL);
+ datadir = g_build_filename(module_path, "share", NULL);
g_free(module_path);
#else
- inkscape_datadir = INKSCAPE_DATADIR;
+ datadir = g_strdup(INKSCAPE_DATADIR);
#endif
}
+
+#if GLIB_CHECK_VERSION(2,58,0)
+ inkscape_datadir = g_canonicalize_filename(datadir, NULL);
+ g_free(datadir);
+#else
+ inkscape_datadir = datadir;
+#endif
+ }
+
+ if (!relative_path) {
+ relative_path = "";
}
#if GLIB_CHECK_VERSION(2,58,0)