Skip to content

Commit

Permalink
Revert changeset 1502. It brokes the spec: hidden desktop files from …
Browse files Browse the repository at this point in the history
…user directory should hide files from system directory with the same name.
  • Loading branch information
Laurent Monin committed Mar 9, 2009
1 parent 2c12c12 commit 6829be5
Showing 1 changed file with 18 additions and 18 deletions.
36 changes: 18 additions & 18 deletions src/editors.c
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,6 @@ static gboolean editor_read_desktop_file(const gchar *path)
const gchar *key = filename_from_path(path);
gchar **categories, **only_show_in, **not_show_in;
gchar *try_exec;
gboolean hidden = FALSE;

if (g_hash_table_lookup(editors, key)) return FALSE; /* the file found earlier wins */

Expand All @@ -170,10 +169,17 @@ static gboolean editor_read_desktop_file(const gchar *path)
return FALSE;
}

editor = g_new0(EditorDescription, 1);

editor->key = g_strdup(key);
editor->file = g_strdup(path);

g_hash_table_insert(editors, editor->key, editor);

if (g_key_file_get_boolean(key_file, DESKTOP_GROUP, "Hidden", NULL)
|| g_key_file_get_boolean(key_file, DESKTOP_GROUP, "NoDisplay", NULL))
{
hidden = TRUE;
editor->hidden = TRUE;
}

categories = g_key_file_get_string_list(key_file, DESKTOP_GROUP, "Categories", NULL, NULL);
Expand All @@ -189,12 +195,12 @@ static gboolean editor_read_desktop_file(const gchar *path)
found = TRUE;
break;
}
if (!found) hidden = TRUE;
if (!found) editor->hidden = TRUE;
g_strfreev(categories);
}
else
{
hidden = TRUE;
editor->hidden = TRUE;
}

only_show_in = g_key_file_get_string_list(key_file, DESKTOP_GROUP, "OnlyShowIn", NULL, NULL);
Expand All @@ -208,7 +214,7 @@ static gboolean editor_read_desktop_file(const gchar *path)
found = TRUE;
break;
}
if (!found) hidden = TRUE;
if (!found) editor->hidden = TRUE;
g_strfreev(only_show_in);
}

Expand All @@ -223,34 +229,27 @@ static gboolean editor_read_desktop_file(const gchar *path)
found = TRUE;
break;
}
if (found) hidden = TRUE;
if (found) editor->hidden = TRUE;
g_strfreev(not_show_in);
}


try_exec = g_key_file_get_string(key_file, DESKTOP_GROUP, "TryExec", NULL);
if (try_exec && !editor->hidden)
{
gchar *try_exec_res = g_find_program_in_path(try_exec);
if (!try_exec_res) hidden = TRUE;
if (!try_exec_res) editor->hidden = TRUE;
g_free(try_exec_res);
g_free(try_exec);
}

if (hidden)
if (editor->hidden)
{
/* hidden editors will be deleted, no need to parse the rest */
g_key_file_free(key_file);
return FALSE;
return TRUE;
}

editor = g_new0(EditorDescription, 1);

editor->key = g_strdup(key);
editor->file = g_strdup(path);
editor->hidden = hidden;

g_hash_table_insert(editors, editor->key, editor);

editor->name = g_key_file_get_locale_string(key_file, DESKTOP_GROUP, "Name", NULL, NULL);
editor->icon = g_key_file_get_string(key_file, DESKTOP_GROUP, "Icon", NULL);

Expand Down Expand Up @@ -571,7 +570,7 @@ static gchar *editor_command_path_parse(const FileData *fd, PathType type, const
{
GString *string;
gchar *pathl;
const gchar *p = NULL;
const gchar *p;

string = g_string_new("");

Expand Down Expand Up @@ -621,6 +620,7 @@ static gchar *editor_command_path_parse(const FileData *fd, PathType type, const
p = "";
}

g_assert(p);
while (*p != '\0')
{
/* must escape \, ", `, and $ to avoid problems,
Expand Down

0 comments on commit 6829be5

Please sign in to comment.