[ghex] Assume the file chooser never returns directory name when asked for a file name



commit 0c70144e20bf003d2933e4451397ba5c70234985
Author: Kalev Lember <kalevlember gmail com>
Date:   Sat Feb 18 19:21:38 2012 +0200

    Assume the file chooser never returns directory name when asked for a file name
    
    In GTK_FILE_CHOOSER_ACTION_SAVE mode, GtkFileChooser doesn't let the
    user accidentally pick a directory instead of a file name.
    
    Getting rid of the unneeded directory handling code rids us of some more
    code that operated under the assumption that / is always the directory
    separator.

 src/ghex-window.c |   31 +++----------------------------
 1 files changed, 3 insertions(+), 28 deletions(-)
---
diff --git a/src/ghex-window.c b/src/ghex-window.c
index 035eb74..073d490 100644
--- a/src/ghex-window.c
+++ b/src/ghex-window.c
@@ -1209,8 +1209,6 @@ ghex_window_save_as(GHexWindow *win)
 	HexDocument *doc;
 	GtkWidget *file_sel;
 	gboolean ret_val = TRUE;
-	const gchar *filename;
-	gboolean dir_flag = FALSE;
     GtkResponseType resp;
 
 	if(win->gh == NULL)
@@ -1232,37 +1230,14 @@ ghex_window_save_as(GHexWindow *win)
 	gtk_window_set_position (GTK_WINDOW (file_sel), GTK_WIN_POS_MOUSE);
 	gtk_widget_show (file_sel);
 
-	do {
-        resp = gtk_dialog_run(GTK_DIALOG(file_sel));
-        if(resp == GTK_RESPONSE_OK) {
-            filename =
-                gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(file_sel));
-            if (g_file_test(filename,G_FILE_TEST_IS_DIR)) {
-                gint name_len;
-                gchar *dir_name;
-
-                name_len = strlen (filename);
-                if (name_len < 1 || filename [name_len - 1] != '/')	{
-                    dir_name = g_strconcat (filename, "/", NULL);
-                } else  {
-                    dir_name = g_strdup (filename);
-                }
-                gtk_file_chooser_set_filename (GTK_FILE_CHOOSER(file_sel),
-                                               dir_name);
-                g_free (dir_name);
-                dir_flag = TRUE;
-            }
-            else  {
-                dir_flag = FALSE;
-            }
-        }
-	} while (resp == GTK_RESPONSE_OK && dir_flag);	   
-
+	resp = gtk_dialog_run (GTK_DIALOG (file_sel));
 	if(resp == GTK_RESPONSE_OK) {
 		FILE *file;
 		gchar *flash;
         gchar *gtk_file_name, *path_end;
+        const gchar *filename;
 
+        filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_sel));
         if(access(filename, F_OK) == 0) {
             GtkWidget *mbox;
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]