diff options
-rw-r--r-- | libegg/eggdesktopfile.c | 17 | ||||
-rw-r--r-- | libegg/eggsmclient-xsmp.c | 12 | ||||
-rw-r--r-- | libegg/eggtreemultidnd.c | 2 |
3 files changed, 22 insertions, 9 deletions
diff --git a/libegg/eggdesktopfile.c b/libegg/eggdesktopfile.c index eb227b69..ece4ab73 100644 --- a/libegg/eggdesktopfile.c +++ b/libegg/eggdesktopfile.c @@ -480,10 +480,7 @@ gboolean egg_desktop_file_can_launch (EggDesktopFile *desktop_file, const char *desktop_environment) { - char *try_exec, *found_program; - char **only_show_in, **not_show_in; gboolean found; - int i; if (desktop_file->type != EGG_DESKTOP_FILE_TYPE_APPLICATION && desktop_file->type != EGG_DESKTOP_FILE_TYPE_LINK) @@ -491,12 +488,16 @@ egg_desktop_file_can_launch (EggDesktopFile *desktop_file, if (desktop_environment) { + char **only_show_in, **not_show_in; + only_show_in = g_key_file_get_string_list (desktop_file->key_file, EGG_DESKTOP_FILE_GROUP, EGG_DESKTOP_FILE_KEY_ONLY_SHOW_IN, NULL, NULL); if (only_show_in) { + int i; + for (i = 0, found = FALSE; only_show_in[i] && !found; i++) { if (!strcmp (only_show_in[i], desktop_environment)) @@ -515,6 +516,8 @@ egg_desktop_file_can_launch (EggDesktopFile *desktop_file, NULL, NULL); if (not_show_in) { + int i; + for (i = 0, found = FALSE; not_show_in[i] && !found; i++) { if (!strcmp (not_show_in[i], desktop_environment)) @@ -530,12 +533,16 @@ egg_desktop_file_can_launch (EggDesktopFile *desktop_file, if (desktop_file->type == EGG_DESKTOP_FILE_TYPE_APPLICATION) { + char *try_exec; + try_exec = g_key_file_get_string (desktop_file->key_file, EGG_DESKTOP_FILE_GROUP, EGG_DESKTOP_FILE_KEY_TRY_EXEC, NULL); if (try_exec) { + char *found_program; + found_program = g_find_program_in_path (try_exec); g_free (try_exec); @@ -605,8 +612,6 @@ append_quoted_word (GString *str, gboolean in_single_quotes, gboolean in_double_quotes) { - const char *p; - if (!in_single_quotes && !in_double_quotes) g_string_append_c (str, '\''); else if (!in_single_quotes && in_double_quotes) @@ -616,6 +621,8 @@ append_quoted_word (GString *str, g_string_append (str, s); else { + const char *p; + for (p = s; *p != '\0'; p++) { if (*p == '\'') diff --git a/libegg/eggsmclient-xsmp.c b/libegg/eggsmclient-xsmp.c index d93dcd1a..b95dc518 100644 --- a/libegg/eggsmclient-xsmp.c +++ b/libegg/eggsmclient-xsmp.c @@ -224,7 +224,7 @@ sm_client_xsmp_set_initial_properties (gpointer user_data) if (desktop_file) { GError *err = NULL; - char *cmdline, **argv; + char **argv; int argc; if (xsmp->restart_style == SmRestartIfRunning) @@ -236,6 +236,8 @@ sm_client_xsmp_set_initial_properties (gpointer user_data) if (!xsmp->set_restart_command) { + char *cmdline; + cmdline = egg_desktop_file_parse_exec (desktop_file, NULL, &err); if (cmdline && g_shell_parse_argv (cmdline, &argc, &argv, &err)) { @@ -770,7 +772,7 @@ save_state (EggSMClientXSMP *xsmp) char *state_file_path, *data; EggDesktopFile *desktop_file; GPtrArray *restart; - int offset, fd; + int offset; /* We set xsmp->state before emitting save_state, but our caller is * responsible for setting it back afterward. @@ -805,11 +807,13 @@ save_state (EggSMClientXSMP *xsmp) G_KEY_FILE_KEEP_TRANSLATIONS, NULL)) { guint g, k, i; - char **groups, **keys, *value, *exec; + char **groups, *value, *exec; groups = g_key_file_get_groups (state_file, NULL); for (g = 0; groups[g]; g++) { + char **keys; + keys = g_key_file_get_keys (state_file, groups[g], NULL, NULL); for (k = 0; keys[k]; k++) { @@ -861,6 +865,8 @@ save_state (EggSMClientXSMP *xsmp) offset = 0; while (1) { + int fd; + state_file_path = g_strdup_printf ("%s%csession-state%c%s-%ld.%s", g_get_user_config_dir (), G_DIR_SEPARATOR, G_DIR_SEPARATOR, diff --git a/libegg/eggtreemultidnd.c b/libegg/eggtreemultidnd.c index 062bb57e..f6e80187 100644 --- a/libegg/eggtreemultidnd.c +++ b/libegg/eggtreemultidnd.c @@ -302,7 +302,6 @@ egg_tree_multi_drag_motion_event (GtkWidget *widget, GList *path_list = NULL; GtkTreeSelection *selection; GtkTreeModel *model; - GdkDragContext *context; TreeViewDragInfo *di; di = get_info (GTK_TREE_VIEW (widget)); @@ -317,6 +316,7 @@ egg_tree_multi_drag_motion_event (GtkWidget *widget, model = gtk_tree_view_get_model (GTK_TREE_VIEW (widget)); if (egg_tree_multi_drag_source_row_draggable (EGG_TREE_MULTI_DRAG_SOURCE (model), path_list)) { + GdkDragContext *context; context = gtk_drag_begin_with_coordinates (widget, gtk_drag_source_get_target_list (widget), |