diff options
author | Dom Lachowicz <domlachowicz@gmail.com> | 2009-05-23 11:36:56 +0000 |
---|---|---|
committer | Dom Lachowicz <domlachowicz@gmail.com> | 2009-05-23 11:36:56 +0000 |
commit | c303d0ec14078af92d3b1bbbf81977e95ae70021 (patch) | |
tree | cf8d91ccf29b8877ec5b50ab185b8df6b23499a0 | |
parent | b181c942614ce7c8e1fe1c6544019c41a1e7e39e (diff) | |
download | enchant-c303d0ec14078af92d3b1bbbf81977e95ae70021.tar.gz |
on windows, compare paths ignoring case sensitivity. may fix a bug that fridrich noticed
git-svn-id: svn+ssh://svn.abisource.com/svnroot/enchant/trunk@26494 bcba8976-2d24-0410-9c9c-aab3bd5fdfd6
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | src/enchant.c | 45 |
2 files changed, 26 insertions, 21 deletions
diff --git a/configure.in b/configure.in index 6c93eb3..77350c0 100644 --- a/configure.in +++ b/configure.in @@ -12,7 +12,7 @@ ENCHANT_MINOR_VERSION=5 dnl 3) Increment when interfaces not changed at all, dnl only bug fixes or internal changes made. dnl 4b) Set to zero when adding, removing or changing interfaces. -ENCHANT_MICRO_VERSION=0 +ENCHANT_MICRO_VERSION=1 dnl dnl Set this too MAJOR_VERSION_PLUS_MINOR_VERSION=`expr $ENCHANT_MAJOR_VERSION + $ENCHANT_MINOR_VERSION` diff --git a/src/enchant.c b/src/enchant.c index 3410be7..847f475 100644 --- a/src/enchant.c +++ b/src/enchant.c @@ -106,10 +106,15 @@ typedef void (*EnchantPreConfigureFunc) (EnchantProvider * provider, /********************************************************************************/ /********************************************************************************/ +#ifdef _WIN32 +#define path_cmp g_utf8_collate +#else +#define path_cmp strcmp +#endif -static GSList* enchant_slist_prepend_unique_string (GSList *slist, gchar* data) +static GSList* enchant_slist_prepend_unique_path (GSList *slist, gchar* data) { - if (NULL == g_slist_find_custom (slist, data, (GCompareFunc)strcmp)) + if (NULL == g_slist_find_custom (slist, data, (GCompareFunc)path_cmp)) { return g_slist_prepend (slist, data); } @@ -120,9 +125,9 @@ static GSList* enchant_slist_prepend_unique_string (GSList *slist, gchar* data) } } -static GSList* enchant_slist_append_unique_string (GSList *slist, gchar* data) +static GSList* enchant_slist_append_unique_path (GSList *slist, gchar* data) { - if (NULL == g_slist_find_custom (slist, data, (GCompareFunc)strcmp)) + if (NULL == g_slist_find_custom (slist, data, (GCompareFunc)path_cmp)) { return g_slist_append (slist, data); } @@ -141,11 +146,11 @@ _enchant_get_user_home_dirs (void) home_dir = enchant_get_registry_value_ex (1, "Config", "Home_Dir"); if (home_dir) - dirs = enchant_slist_append_unique_string (dirs, g_strdup (home_dir)); + dirs = enchant_slist_append_unique_path (dirs, g_strdup (home_dir)); home_dir = g_get_home_dir (); if (home_dir) - dirs = enchant_slist_append_unique_string (dirs, g_strdup (home_dir)); + dirs = enchant_slist_append_unique_path (dirs, g_strdup (home_dir)); return dirs; } @@ -171,7 +176,7 @@ enchant_get_user_dirs (void) user_config_dir = g_get_user_config_dir(); if (user_config_dir) - user_dirs = enchant_slist_append_unique_string (user_dirs, g_build_filename (user_config_dir, + user_dirs = enchant_slist_append_unique_path (user_dirs, g_build_filename (user_config_dir, "enchant", NULL)); } @@ -182,7 +187,7 @@ enchant_get_user_dirs (void) for (dir = home_dirs; dir; dir = dir->next) { - user_dirs = enchant_slist_append_unique_string (user_dirs, + user_dirs = enchant_slist_append_unique_path (user_dirs, g_build_filename (dir->data, ENCHANT_USER_PATH_EXTENSION, NULL)); @@ -209,11 +214,11 @@ enchant_get_module_dirs (void) user_module_dir = enchant_get_registry_value_ex (1, "Config", "Module_Dir"); if (user_module_dir) - module_dirs = enchant_slist_append_unique_string (module_dirs, user_module_dir); + module_dirs = enchant_slist_append_unique_path (module_dirs, user_module_dir); } #ifdef XP_TARGET_COCOA - module_dirs = enchant_slist_append_unique_string (module_dirs, g_strdup ([[EnchantResourceProvider instance] moduleFolder])); + module_dirs = enchant_slist_append_unique_path (module_dirs, g_strdup ([[EnchantResourceProvider instance] moduleFolder])); #endif { @@ -222,7 +227,7 @@ enchant_get_module_dirs (void) user_dirs = enchant_get_user_dirs(); for (iter = user_dirs; iter; iter = iter->next) - module_dirs = enchant_slist_append_unique_string (module_dirs, iter->data); + module_dirs = enchant_slist_append_unique_path (module_dirs, iter->data); g_slist_free (user_dirs); } @@ -230,7 +235,7 @@ enchant_get_module_dirs (void) /* Look for explicitly set registry values */ module_dir = enchant_get_registry_value_ex (0, "Config", "Module_Dir"); if (module_dir) - module_dirs = enchant_slist_append_unique_string (module_dirs, module_dir); + module_dirs = enchant_slist_append_unique_path (module_dirs, module_dir); /* Dynamically locate library and search for modules relative to it. */ prefix = enchant_get_prefix_dir(); @@ -238,11 +243,11 @@ enchant_get_module_dirs (void) { module_dir = g_build_filename(prefix,"lib","enchant",NULL); g_free(prefix); - module_dirs = enchant_slist_append_unique_string (module_dirs, module_dir); + module_dirs = enchant_slist_append_unique_path (module_dirs, module_dir); } #if defined(ENCHANT_GLOBAL_MODULE_DIR) - module_dirs = enchant_slist_append_unique_string (module_dirs, g_strdup (ENCHANT_GLOBAL_MODULE_DIR)); + module_dirs = enchant_slist_append_unique_path (module_dirs, g_strdup (ENCHANT_GLOBAL_MODULE_DIR)); #endif return module_dirs; @@ -258,19 +263,19 @@ enchant_get_conf_dirs (void) for (iter = user_conf_dirs; iter != NULL; iter = iter->next) { - conf_dirs = enchant_slist_append_unique_string (conf_dirs, iter->data); + conf_dirs = enchant_slist_append_unique_path (conf_dirs, iter->data); } g_slist_free (user_conf_dirs); #ifdef XP_TARGET_COCOA - conf_dirs = enchant_slist_append_unique_string (conf_dirs, g_strdup ([[EnchantResourceProvider instance] configFolder])); + conf_dirs = enchant_slist_append_unique_path (conf_dirs, g_strdup ([[EnchantResourceProvider instance] configFolder])); #endif /* Look for explicitly set registry values */ ordering_dir = enchant_get_registry_value_ex (0, "Config", "Data_Dir"); if (ordering_dir) - conf_dirs = enchant_slist_append_unique_string (conf_dirs, ordering_dir); + conf_dirs = enchant_slist_append_unique_path (conf_dirs, ordering_dir); /* Dynamically locate library and search for files relative to it. */ prefix = enchant_get_prefix_dir(); @@ -278,11 +283,11 @@ enchant_get_conf_dirs (void) { ordering_dir = g_build_filename(prefix,"share","enchant",NULL); g_free(prefix); - conf_dirs = enchant_slist_append_unique_string (conf_dirs, ordering_dir); + conf_dirs = enchant_slist_append_unique_path (conf_dirs, ordering_dir); } #if defined(ENCHANT_GLOBAL_ORDERING) - conf_dirs = enchant_slist_append_unique_string (conf_dirs, g_strdup (ENCHANT_GLOBAL_ORDERING)); + conf_dirs = enchant_slist_append_unique_path (conf_dirs, g_strdup (ENCHANT_GLOBAL_ORDERING)); #endif return conf_dirs; @@ -346,7 +351,7 @@ enchant_get_user_config_dirs (void) user_config = enchant_get_registry_value_ex (1, "Config", "Data_Dir"); if (user_config) - dirs = enchant_slist_prepend_unique_string (dirs, user_config); + dirs = enchant_slist_prepend_unique_path (dirs, user_config); return dirs; } |