gnucash unstable: Use a platform dependent package name for gnc_user[config|data]_dir
Geert Janssens
gjanssens at code.gnucash.org
Mon Feb 19 16:53:48 EST 2018
Updated via https://github.com/Gnucash/gnucash/commit/50e2a3de (commit)
from https://github.com/Gnucash/gnucash/commit/36ad5064 (commit)
commit 50e2a3def7f913ad27f92f7f2719e1fd71fc8290
Author: Geert Janssens <geert at kobaltwit.be>
Date: Mon Feb 19 22:53:13 2018 +0100
Use a platform dependent package name for gnc_user[config|data]_dir
Windows and OS X expect the directory name to be capitalized while linux typically uses an all-lowercase name.
diff --git a/libgnucash/core-utils/gnc-filepath-utils.cpp b/libgnucash/core-utils/gnc-filepath-utils.cpp
index 21e3f69..3e956ea 100644
--- a/libgnucash/core-utils/gnc-filepath-utils.cpp
+++ b/libgnucash/core-utils/gnc-filepath-utils.cpp
@@ -580,6 +580,13 @@ get_userconfig_home(void)
return userconfig_home;
}
+#if defined G_OS_WIN32 ||defined MAC_INTEGRATION
+constexpr auto path_package = PACKAGE_NAME;
+#else
+constexpr auto path_package = PACKAGE;
+#endif
+
+
gboolean
gnc_filepath_init (void)
{
@@ -640,7 +647,7 @@ gnc_filepath_init (void)
/* Determine platform dependent default userdata_home_path
* and check whether it's valid */
auto userdata_home = get_userdata_home();
- gnc_userdata_home = userdata_home / PACKAGE;
+ gnc_userdata_home = userdata_home / path_package;
try
{
gnc_userdata_home_exists = bfs::exists (gnc_userdata_home);
@@ -737,8 +744,8 @@ gnc_userdata_dir (void)
const gchar *
gnc_userconfig_dir (void)
{
- auto path_string = get_userconfig_home() / PACKAGE;
- return g_strdup(path_string.string().c_str());
+ auto config_path = get_userconfig_home() / path_package;
+ return g_strdup(config_path.string().c_str());
}
static const bfs::path&
diff --git a/libgnucash/core-utils/test/test-userdata-dir.c b/libgnucash/core-utils/test/test-userdata-dir.c
index a702a56..8eb2c4b 100644
--- a/libgnucash/core-utils/test/test-userdata-dir.c
+++ b/libgnucash/core-utils/test/test-userdata-dir.c
@@ -59,6 +59,13 @@ usr_confpath_strings strs2[] =
{ 0, NULL, NULL },
};
+#if defined G_OS_WIN32 ||defined MAC_INTEGRATION
+const char *path_package = PACKAGE_NAME;
+#else
+const char *path_package = PACKAGE;
+#endif
+
+
static char*
test_get_userdatadir ()
{
@@ -177,25 +184,25 @@ main(int argc, char **argv)
if (strs2[i].func_num == 0)
{
- wantout = g_build_filename(userdata_dir, PACKAGE, "foo",
+ wantout = g_build_filename(userdata_dir, path_package, "foo",
(gchar *)NULL);
daout = gnc_build_userdata_path("foo");
}
else if (strs2[i].func_num == 1)
{
- wantout = g_build_filename(userdata_dir, PACKAGE, strs2[i].output, "foo",
+ wantout = g_build_filename(userdata_dir, path_package, strs2[i].output, "foo",
(gchar *)NULL);
daout = gnc_build_book_path("foo");
}
else if (strs2[i].func_num == 2)
{
- wantout = g_build_filename(userdata_dir, PACKAGE, strs2[i].output, "foo",
+ wantout = g_build_filename(userdata_dir, path_package, strs2[i].output, "foo",
(gchar *)NULL);
daout = gnc_build_translog_path("foo");
}
else // if (strs2[i].prefix_home == 3)
{
- wantout = g_build_filename(userdata_dir, PACKAGE, strs2[i].output, "foo",
+ wantout = g_build_filename(userdata_dir, path_package, strs2[i].output, "foo",
(gchar *)NULL);
daout = gnc_build_data_path("foo");
}
@@ -209,16 +216,16 @@ main(int argc, char **argv)
}
g_unsetenv("XDG_DATA_HOME");
/* Remove intermediate directories again */
- tmp_dir = g_build_filename(userdata_dir, PACKAGE, "data", (gchar *)NULL);
+ tmp_dir = g_build_filename(userdata_dir, path_package, "data", (gchar *)NULL);
g_rmdir (tmp_dir);
g_free (tmp_dir);
- tmp_dir = g_build_filename(userdata_dir, PACKAGE, "translog", (gchar *)NULL);
+ tmp_dir = g_build_filename(userdata_dir, path_package, "translog", (gchar *)NULL);
g_rmdir (tmp_dir);
g_free (tmp_dir);
- tmp_dir = g_build_filename(userdata_dir, PACKAGE, "books", (gchar *)NULL);
+ tmp_dir = g_build_filename(userdata_dir, path_package, "books", (gchar *)NULL);
g_rmdir (tmp_dir);
g_free (tmp_dir);
- tmp_dir = g_build_filename(userdata_dir, PACKAGE, (gchar *)NULL);
+ tmp_dir = g_build_filename(userdata_dir, path_package, (gchar *)NULL);
g_rmdir (tmp_dir);
g_free (tmp_dir);
g_rmdir(userdata_dir);
@@ -240,25 +247,25 @@ main(int argc, char **argv)
if (strs2[i].func_num == 0)
{
- wantout = g_build_filename(userdata_dir, PACKAGE, "foo",
+ wantout = g_build_filename(userdata_dir, path_package, "foo",
(gchar *)NULL);
daout = gnc_build_userdata_path("foo");
}
else if (strs2[i].func_num == 1)
{
- wantout = g_build_filename(userdata_dir, PACKAGE, strs2[i].output, "foo",
+ wantout = g_build_filename(userdata_dir, path_package, strs2[i].output, "foo",
(gchar *)NULL);
daout = gnc_build_book_path("foo");
}
else if (strs2[i].func_num == 2)
{
- wantout = g_build_filename(userdata_dir, PACKAGE, strs2[i].output, "foo",
+ wantout = g_build_filename(userdata_dir, path_package, strs2[i].output, "foo",
(gchar *)NULL);
daout = gnc_build_translog_path("foo");
}
else // if (strs2[i].prefix_home == 3)
{
- wantout = g_build_filename(userdata_dir, PACKAGE, strs2[i].output, "foo",
+ wantout = g_build_filename(userdata_dir, path_package, strs2[i].output, "foo",
(gchar *)NULL);
daout = gnc_build_data_path("foo");
}
@@ -271,19 +278,19 @@ main(int argc, char **argv)
g_free(daout);
}
/* Remove intermediate directories again */
- tmp_dir = g_build_filename(userdata_dir, PACKAGE, "data", (gchar *)NULL);
+ tmp_dir = g_build_filename(userdata_dir, path_package, "data", (gchar *)NULL);
g_rmdir (tmp_dir);
g_free (tmp_dir);
- tmp_dir = g_build_filename(userdata_dir, PACKAGE, "translog", (gchar *)NULL);
+ tmp_dir = g_build_filename(userdata_dir, path_package, "translog", (gchar *)NULL);
g_rmdir (tmp_dir);
g_free (tmp_dir);
- tmp_dir = g_build_filename(userdata_dir, PACKAGE, "books", (gchar *)NULL);
+ tmp_dir = g_build_filename(userdata_dir, path_package, "books", (gchar *)NULL);
g_rmdir (tmp_dir);
g_free (tmp_dir);
#ifndef MAC_INTEGRATION
#ifndef G_OS_WIN32
/* Don't delete these on OS X or Windows. They may point at real user directories */
- tmp_dir = g_build_filename(userdata_dir, PACKAGE, (gchar *)NULL);
+ tmp_dir = g_build_filename(userdata_dir, path_package, (gchar *)NULL);
g_rmdir (tmp_dir);
g_free (tmp_dir);
g_rmdir(userdata_dir);
Summary of changes:
libgnucash/core-utils/gnc-filepath-utils.cpp | 13 +++++++--
libgnucash/core-utils/test/test-userdata-dir.c | 39 +++++++++++++++-----------
2 files changed, 33 insertions(+), 19 deletions(-)
More information about the gnucash-changes
mailing list