Ticket #2585 (Ask filename before create new file)
authorIlia Maslakov <il.smind@gmail.com>
Thu, 24 Jan 2013 14:07:35 +0000 (24 18:07 +0400)
committerIlia Maslakov <il.smind@gmail.com>
Thu, 31 Jan 2013 10:56:52 +0000 (31 14:56 +0400)
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
src/filemanager/cmd.c
src/setup.c
src/setup.h

index af1b0c3..39cb9a2 100644 (file)
@@ -3,7 +3,7 @@
    They normally operate on the current panel.
 
    Copyright (C) 1994, 1995, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-   2005, 2006, 2007, 2009, 2011
+   2005, 2006, 2007, 2009, 2011, 2013
    The Free Software Foundation, Inc.
 
    This file is part of the Midnight Commander.
@@ -818,10 +818,29 @@ edit_cmd_force_internal (void)
 void
 edit_cmd_new (void)
 {
+    vfs_path_t *fname_vpath = NULL;
+
+    if (editor_ask_filename_before_edit)
+    {
+        char *fname;
+
+        fname = input_expand_dialog (_("Edit file"), _("Enter file name:"),
+                                     MC_HISTORY_EDIT_LOAD, "");
+        if (fname == NULL)
+            return;
+
+        if (*fname != '\0')
+            fname_vpath = vfs_path_from_str (fname);
+
+        g_free (fname);
+    }
+
 #ifdef HAVE_CHARSET
     mc_global.source_codepage = default_source_codepage;
 #endif
-    do_edit (NULL);
+    do_edit (fname_vpath);
+
+    vfs_path_free (fname_vpath);
 }
 
 /* --------------------------------------------------------------------------------------------- */
index bbe1f36..1e5e8c6 100644 (file)
@@ -115,6 +115,9 @@ int drop_menus = 0;
    are tagged files */
 int confirm_view_dir = 0;
 
+/* Ask file name before start the editor */
+int editor_ask_filename_before_edit = 0;
+
 panel_view_mode_t startup_left_mode;
 panel_view_mode_t startup_right_mode;
 
@@ -353,6 +356,7 @@ static const struct
     { "editor_show_right_margin", &show_right_margin },
     { "editor_group_undo", &option_group_undo },
 #endif /* USE_INTERNAL_EDIT */
+    { "editor_ask_filename_before_edit", &editor_ask_filename_before_edit },
     { "nice_rotating_dash", &nice_rotating_dash },
     { "mcview_remember_file_position", &mcview_remember_file_position },
     { "auto_fill_mkdir_name", &auto_fill_mkdir_name },
index 234821b..c5728ae 100644 (file)
@@ -98,6 +98,7 @@ extern int auto_fill_mkdir_name;
 extern int output_starts_shell;
 extern int use_file_to_check_type;
 extern int file_op_compute_totals;
+extern int editor_ask_filename_before_edit;
 
 extern panels_options_t panels_options;