From f7c6811e36e5fdda1c23a4b210411777546b63e2 Mon Sep 17 00:00:00 2001 From: Chris Allegretta Date: Tue, 3 Sep 2002 22:58:40 +0000 Subject: [PATCH] - 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 git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1269 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- ChangeLog | 5 +++++ files.c | 46 ++++++++++++++++++++++++++++++++++++++-------- global.c | 8 +++++++- 3 files changed, 50 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index bcf1d4ac..2bf8b218 100644 --- 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 e0ef4825..46d48640 100644 --- 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) diff --git a/global.c b/global.c index cf5b429e..83691d5a 100644 --- 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); -- 2.39.5