From: Arc Riley Date: Wed, 1 Jul 2015 23:23:15 +0000 (-0700) Subject: Strip leading and trailing whitespace from filechooser save filenames X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2~24^2~9149 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=94bcdd32174bd10d97ba7b909b6a8a250bbab9f7;p=gtk4.git Strip leading and trailing whitespace from filechooser save filenames This makes a local copy of the file part of the entry to strip it transparently Since this is assumed to be a mistake, the user is not notified. https://bugzilla.gnome.org/show_bug.cgi?id=593372 --- diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c index 3c4b7b7788..01f674bc18 100644 --- a/gtk/gtkfilechooserwidget.c +++ b/gtk/gtkfilechooserwidget.c @@ -5273,6 +5273,7 @@ check_save_entry (GtkFileChooserWidget *impl, GtkFileChooserEntry *chooser_entry; GFile *current_folder; const char *file_part; + char *file_part_stripped; GFile *file; GError *error; @@ -5310,21 +5311,26 @@ check_save_entry (GtkFileChooserWidget *impl, file_part = _gtk_file_chooser_entry_get_file_part (chooser_entry); - if (!file_part || file_part[0] == '\0') + /* Copy and strip leading and trailing whitespace */ + file_part_stripped = g_strstrip (g_strdup (file_part)); + + if (!file_part_stripped || file_part_stripped[0] == '\0') { *file_ret = current_folder; *is_well_formed_ret = TRUE; *is_file_part_empty_ret = TRUE; *is_folder = TRUE; + g_free (file_part_stripped); return; } *is_file_part_empty_ret = FALSE; error = NULL; - file = g_file_get_child_for_display_name (current_folder, file_part, &error); + file = g_file_get_child_for_display_name (current_folder, file_part_stripped, &error); g_object_unref (current_folder); + g_free (file_part_stripped); if (!file) {