summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Albright <eric_albright@sil.org>2008-04-27 12:49:59 +0000
committerEric Albright <eric_albright@sil.org>2008-04-27 12:49:59 +0000
commitcde6cb8322fccc10f5b8c88ca9f53ce608b4d220 (patch)
treebbf8bd890c3a0196d208d4835bbd78fbd83b4464
parentcc4235902c668c9d7f6f9f00c8b2dba4d28a3a72 (diff)
downloadenchant-cde6cb8322fccc10f5b8c88ca9f53ce608b4d220.tar.gz
Ensure an enchant subdirectory exists and not just the user's home directory or config directory
git-svn-id: svn+ssh://svn.abisource.com/svnroot/enchant/trunk@23636 bcba8976-2d24-0410-9c9c-aab3bd5fdfd6
-rw-r--r--src/enchant.c24
1 files changed, 11 insertions, 13 deletions
diff --git a/src/enchant.c b/src/enchant.c
index 32f5b6e..460615e 100644
--- a/src/enchant.c
+++ b/src/enchant.c
@@ -122,15 +122,12 @@ _enchant_get_user_home_dirs (void)
}
static void
-_enchant_ensure_private_datadir (void)
+_enchant_ensure_dir_exists (const char* dir)
{
- const char * config_dir;
-
- config_dir = g_get_user_config_dir();
- if (config_dir && !g_file_test (config_dir, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR))
+ if (dir && !g_file_test (dir, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR))
{
- (void)g_remove (config_dir);
- g_mkdir_with_parents (config_dir, 0700);
+ (void)g_remove (dir);
+ g_mkdir_with_parents (dir, 0700);
}
}
@@ -540,21 +537,22 @@ enchant_session_new (EnchantProvider *provider, const char * const lang)
EnchantSession * session = NULL;
GSList *user_config_dirs, *iter;
- _enchant_ensure_private_datadir ();
-
user_config_dirs = enchant_get_user_config_dirs ();
for (iter = user_config_dirs; iter != NULL && session == NULL; iter = iter->next)
{
session =_enchant_session_new (provider, iter->data, lang, TRUE);
}
+ if (session == NULL && user_config_dirs != NULL)
+ {
+ _enchant_ensure_dir_exists (user_config_dirs->data);
+
+ session =_enchant_session_new (provider, user_config_dirs->data, lang, FALSE);
+ }
+
g_slist_foreach (user_config_dirs, (GFunc)g_free, NULL);
g_slist_free (user_config_dirs);
- if (!session)
- {
- session =_enchant_session_new (provider, g_get_user_config_dir(), lang, FALSE);
- }
return session;
}