]> git.wh0rd.org Git - nano.git/commitdiff
- Changed do_insertfile to (a) report multibuffer status at the prompt and allowing...
authorChris Allegretta <chrisa@asty.org>
Tue, 3 Sep 2002 22:58:40 +0000 (22:58 +0000)
committerChris Allegretta <chrisa@asty.org>
Tue, 3 Sep 2002 22:58:40 +0000 (22:58 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1269 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
files.c
global.c

index bcf1d4ac15257eb0dabcaa3fc737e199320a21d6..2bf8b2181c374ed5b62b8e01c489a3c6e5f58d08 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,6 +6,11 @@ CVS code -
          inaccuracy in the description of -Q/--quotestr. (DLR)
        - Set REG_EXTENDED in all regcomp() calls. (DLR)
        - Minor cosmetic code cleanups. (DLR)
+       - Changed do_insertfile to (a) report multibuffer status at the
+         prompt and allowing it to be toggled, taking into account the
+         need to keep the translatable strings, and (b) added a
+         variable inspath to keep track of what the string was before
+         toggling.  I'm sure there's bugs, have at it.
 - configure.ac:
        - Added pt_BR to ALL_LINGUAS (Jordi).
        - Changed --enable-color warning to be slightly less severe.
diff --git a/files.c b/files.c
index e0ef48256a86dca2f4fb0cbdfe3f1ac344ddd809..46d48640ba7f8426f8deb6486326d952e0ea3d9f 100644 (file)
--- a/files.c
+++ b/files.c
@@ -421,6 +421,10 @@ int do_insertfile(int loading_file)
 {
     int i, old_current_x = current_x;
     char *realname = NULL;
+    static char *inspath = NULL;
+
+    if (inspath == NULL)
+       inspath = mallocstrcpy(inspath, "");
 
     wrap_reset();
 
@@ -430,17 +434,33 @@ int do_insertfile(int loading_file)
 
 #ifndef DISABLE_OPERATINGDIR
     if (operating_dir && strcmp(operating_dir, "."))
-       i = statusq(1, insertfile_list, "", _("File to insert [from %s] "),
+#ifdef ENABLE_MULTIBUFFER 
+       if (ISSET(MULTIBUFFER))
+           i = statusq(1, insertfile_list, inspath, _("File to insert into new buffer [from %s] "),
+               operating_dir);
+       else
+#endif
+           i = statusq(1, insertfile_list, inspath, _("File to insert [from %s] "),
                operating_dir);
+
     else
 #endif
-       i = statusq(1, insertfile_list, "", _("File to insert [from ./] "));
+#ifdef ENABLE_MULTIBUFFER 
+       if (ISSET(MULTIBUFFER))
+           i = statusq(1, insertfile_list, inspath, _("File to insert into new buffer [from ./] "));
+       else
+#endif
+           i = statusq(1, insertfile_list, inspath, _("File to insert [from ./] "));
 
     if (i != -1) {
+
+       inspath = mallocstrcpy(inspath, answer);
+
 #ifdef DEBUG
        fprintf(stderr, _("filename is %s\n"), answer);
 #endif
 
+
 #ifndef DISABLE_TABCOMP
        realname = real_dir_from_tilde(answer);
 #else
@@ -473,6 +493,12 @@ int do_insertfile(int loading_file)
        }
 #endif
 
+#ifdef ENABLE_MULTIBUFFER
+       if (i == TOGGLE_LOAD_KEY) {
+           TOGGLE(MULTIBUFFER);
+           return do_insertfile(loading_file);
+       }
+#endif
 #ifndef NANO_SMALL
        if (i == NANO_EXTCMD_KEY) {
            int ts;
@@ -548,6 +574,8 @@ int do_insertfile(int loading_file)
        }
 #endif
 
+       
+
        /* If we've gone off the bottom, recenter; otherwise, just redraw */
        if (current->lineno > editbot->lineno)
            edit_update(current, CENTER);
@@ -558,15 +586,17 @@ int do_insertfile(int loading_file)
        update_color();
 #endif    
 
-       UNSET(KEEP_CUTBUFFER);
-       display_main_list();
-       return i;
     } else {
        statusbar(_("Cancelled"));
-       UNSET(KEEP_CUTBUFFER);
-       display_main_list();
-       return 0;
+       i = 0;
     }
+
+    free(inspath);
+    inspath = NULL;
+
+    UNSET(KEEP_CUTBUFFER);
+    display_main_list();
+    return i;
 }
 
 int do_insertfile_void(void)
index cf5b429ea78c6238475f4114b118a89372c88f02..83691d5a7d6710cadf598bb9707e0057335d01ad 100644 (file)
--- a/global.c
+++ b/global.c
@@ -325,7 +325,8 @@ void shortcut_init(int unjustify)
        "", *nano_backup_msg = "";
 
 #ifdef ENABLE_MULTIBUFFER
-    char *nano_openprev_msg = "", *nano_opennext_msg = "";
+    char *nano_openprev_msg = "", *nano_opennext_msg = "",
+       *nano_multibuffer_msg = "";
 #endif
 #ifdef HAVE_REGEX_H
     char *nano_regexp_msg = "", *nano_bracket_msg = "";
@@ -384,6 +385,7 @@ void shortcut_init(int unjustify)
 #ifdef ENABLE_MULTIBUFFER
     nano_openprev_msg = _("Open previously loaded file");
     nano_opennext_msg = _("Open next loaded file");
+    nano_multibuffer_msg = _("Toggle insert into new buffer");
 #endif
 #endif /* !DISABLE_HELP */
 
@@ -724,6 +726,10 @@ void shortcut_init(int unjustify)
     sc_init_one(&insertfile_list, NANO_EXTCMD_KEY, _("Execute Command"),
                IFHELP(nano_execute_msg, 0), 0, 0, NOVIEW, 0);
 #endif
+#ifdef ENABLE_MULTIBUFFER
+    sc_init_one(&insertfile_list, TOGGLE_LOAD_KEY, _("New Buffer"),
+               IFHELP(nano_multibuffer_msg, 0), 0, 0, NOVIEW, 0);
+#endif
 
     free_shortcutage(&spell_list);