Skip to content

Commit

Permalink
Only store editors if they match criterias to not be hidden from star…
Browse files Browse the repository at this point in the history
…t, it makes more sense. Fix editor_command_path_parse().
  • Loading branch information
Laurent Monin committed Mar 9, 2009
1 parent 67e00d0 commit 2c12c12
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,6 +152,7 @@ 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 @@ -169,17 +170,10 @@ 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))
{
editor->hidden = TRUE;
hidden = TRUE;
}

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

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

Expand All @@ -229,27 +223,34 @@ static gboolean editor_read_desktop_file(const gchar *path)
found = TRUE;
break;
}
if (found) editor->hidden = TRUE;
if (found) 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) editor->hidden = TRUE;
if (!try_exec_res) hidden = TRUE;
g_free(try_exec_res);
g_free(try_exec);
}

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

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 @@ -570,7 +571,7 @@ static gchar *editor_command_path_parse(const FileData *fd, PathType type, const
{
GString *string;
gchar *pathl;
const gchar *p;
const gchar *p = NULL;

string = g_string_new("");

Expand Down Expand Up @@ -620,7 +621,6 @@ 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 2c12c12

Please sign in to comment.