static void file_data_set_collate_keys(FileData *fd)
{
gchar *caseless_name;
-
- g_assert(g_utf8_validate(fd->name, -1, NULL));
-
- caseless_name = g_utf8_casefold(fd->name, -1);
+ gchar *name = path_to_utf8(fd->name);
+
+ caseless_name = g_utf8_casefold(name, -1);
g_free(fd->collate_key_name);
g_free(fd->collate_key_name_nocase);
#if GLIB_CHECK_VERSION(2, 8, 0)
- fd->collate_key_name = g_utf8_collate_key_for_filename(fd->name, -1);
+ fd->collate_key_name = g_utf8_collate_key_for_filename(name, -1);
fd->collate_key_name_nocase = g_utf8_collate_key_for_filename(caseless_name, -1);
#else
- fd->collate_key_name = g_utf8_collate_key(fd->name, -1);
+ fd->collate_key_name = g_utf8_collate_key(name, -1);
fd->collate_key_name_nocase = g_utf8_collate_key(caseless_name, -1);
#endif
g_free(caseless_name);
+ g_free(name);
}
static void file_data_set_path(FileData *fd, const gchar *path)
return path;
}
-/* first we try the HOME environment var, if that doesn't work, we try getpwuid(). */
+/* first we try the HOME environment var, if that doesn't work, we try g_get_homedir(). */
const gchar *homedir(void)
{
static gchar *home = NULL;
if (!home)
- {
home = path_to_utf8(getenv("HOME"));
- }
+
if (!home)
- {
- struct passwd *pw = getpwuid(getuid());
- if (pw) home = path_to_utf8(pw->pw_dir);
- }
+ home = path_to_utf8(g_get_home_dir());
return home;
}