Wouter van Hemel's "Where Is Next" patch
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1530 35c25a1d-7b9e-4130-9fde-d3aeb78583b8master
parent
222feaa953
commit
e04970675f
|
@ -20,6 +20,12 @@ CVS code -
|
||||||
notably FreeBSD; if your Backspace key acts like Delete, this
|
notably FreeBSD; if your Backspace key acts like Delete, this
|
||||||
option will fix that. (DLR)
|
option will fix that. (DLR)
|
||||||
- Remove unneeded breaks at the ends of default: clauses. (DLR)
|
- Remove unneeded breaks at the ends of default: clauses. (DLR)
|
||||||
|
- Add the ability to repeat the last search without prompting
|
||||||
|
via Meta-W, and move the line wrapping toggle to Meta-L. New
|
||||||
|
function do_research(). (Wouter van Hemel)
|
||||||
|
- Change the message for the line wrapping toggle from "Auto
|
||||||
|
wrap" to "Auto line wrap", to more clearly associate it with
|
||||||
|
Meta-L. (DLR)
|
||||||
- files.c:
|
- files.c:
|
||||||
do_browser():
|
do_browser():
|
||||||
- Some of the Pico compatibility options in the file browser
|
- Some of the Pico compatibility options in the file browser
|
||||||
|
|
17
global.c
17
global.c
|
@ -260,7 +260,7 @@ void toggle_init(void)
|
||||||
toggle_syntax_msg = _("Color syntax highlighting");
|
toggle_syntax_msg = _("Color syntax highlighting");
|
||||||
#endif
|
#endif
|
||||||
#ifndef DISABLE_WRAPPING
|
#ifndef DISABLE_WRAPPING
|
||||||
toggle_wrap_msg = _("Auto wrap");
|
toggle_wrap_msg = _("Auto line wrap");
|
||||||
#endif
|
#endif
|
||||||
#ifdef ENABLE_MULTIBUFFER
|
#ifdef ENABLE_MULTIBUFFER
|
||||||
toggle_load_msg = _("Multiple file buffers");
|
toggle_load_msg = _("Multiple file buffers");
|
||||||
|
@ -321,10 +321,11 @@ void shortcut_init(int unjustify)
|
||||||
const char *nano_help_msg = "", *nano_writeout_msg = "", *nano_exit_msg =
|
const char *nano_help_msg = "", *nano_writeout_msg = "", *nano_exit_msg =
|
||||||
"", *nano_goto_msg = "", *nano_justify_msg =
|
"", *nano_goto_msg = "", *nano_justify_msg =
|
||||||
"", *nano_replace_msg = "", *nano_insert_msg =
|
"", *nano_replace_msg = "", *nano_insert_msg =
|
||||||
"", *nano_whereis_msg = "", *nano_prevpage_msg =
|
"", *nano_whereis_msg = "", *nano_whereis_next_msg =
|
||||||
"", *nano_nextpage_msg = "", *nano_cut_msg =
|
"", *nano_prevpage_msg = "", *nano_nextpage_msg =
|
||||||
"", *nano_uncut_msg = "", *nano_cursorpos_msg =
|
"", *nano_cut_msg = "", *nano_uncut_msg =
|
||||||
"", *nano_spell_msg = "", *nano_up_msg = "", *nano_down_msg =
|
"", *nano_cursorpos_msg = "", *nano_spell_msg =
|
||||||
|
"", *nano_up_msg = "", *nano_down_msg =
|
||||||
"", *nano_forward_msg = "", *nano_back_msg = "", *nano_home_msg =
|
"", *nano_forward_msg = "", *nano_back_msg = "", *nano_home_msg =
|
||||||
"", *nano_end_msg = "", *nano_firstline_msg =
|
"", *nano_end_msg = "", *nano_firstline_msg =
|
||||||
"", *nano_lastline_msg = "", *nano_refresh_msg =
|
"", *nano_lastline_msg = "", *nano_refresh_msg =
|
||||||
|
@ -359,6 +360,7 @@ void shortcut_init(int unjustify)
|
||||||
nano_replace_msg = _("Replace text within the editor");
|
nano_replace_msg = _("Replace text within the editor");
|
||||||
nano_insert_msg = _("Insert another file into the current one");
|
nano_insert_msg = _("Insert another file into the current one");
|
||||||
nano_whereis_msg = _("Search for text within the editor");
|
nano_whereis_msg = _("Search for text within the editor");
|
||||||
|
nano_whereis_next_msg = _("Repeat last search");
|
||||||
nano_prevpage_msg = _("Move to the previous screen");
|
nano_prevpage_msg = _("Move to the previous screen");
|
||||||
nano_nextpage_msg = _("Move to the next screen");
|
nano_nextpage_msg = _("Move to the next screen");
|
||||||
nano_cut_msg = _("Cut the current line and store it in the cutbuffer");
|
nano_cut_msg = _("Cut the current line and store it in the cutbuffer");
|
||||||
|
@ -564,6 +566,11 @@ void shortcut_init(int unjustify)
|
||||||
IFHELP(nano_bracket_msg, NANO_BRACKET_KEY),
|
IFHELP(nano_bracket_msg, NANO_BRACKET_KEY),
|
||||||
0, 0, VIEW, do_find_bracket);
|
0, 0, VIEW, do_find_bracket);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
sc_init_one(&main_list, -9, _("Where Is Next"),
|
||||||
|
IFHELP(nano_whereis_next_msg, NANO_WHEREIS_NEXT_KEY), 0, 0,
|
||||||
|
NOVIEW, do_research);
|
||||||
|
|
||||||
#ifdef ENABLE_MULTIBUFFER
|
#ifdef ENABLE_MULTIBUFFER
|
||||||
sc_init_one(&main_list, -9, _("Previous File"),
|
sc_init_one(&main_list, -9, _("Previous File"),
|
||||||
IFHELP(nano_openprev_msg, NANO_OPENPREV_KEY),
|
IFHELP(nano_openprev_msg, NANO_OPENPREV_KEY),
|
||||||
|
|
3
nano.h
3
nano.h
|
@ -340,6 +340,7 @@ know what you're doing */
|
||||||
#define NANO_HELP_FKEY KEY_F(1)
|
#define NANO_HELP_FKEY KEY_F(1)
|
||||||
#define NANO_WHEREIS_KEY NANO_CONTROL_W
|
#define NANO_WHEREIS_KEY NANO_CONTROL_W
|
||||||
#define NANO_WHEREIS_FKEY KEY_F(6)
|
#define NANO_WHEREIS_FKEY KEY_F(6)
|
||||||
|
#define NANO_WHEREIS_NEXT_KEY NANO_ALT_W
|
||||||
#define NANO_REPLACE_KEY NANO_CONTROL_4
|
#define NANO_REPLACE_KEY NANO_CONTROL_4
|
||||||
#define NANO_REPLACE_FKEY KEY_F(14)
|
#define NANO_REPLACE_FKEY KEY_F(14)
|
||||||
#define NANO_ALT_REPLACE_KEY NANO_ALT_R
|
#define NANO_ALT_REPLACE_KEY NANO_ALT_R
|
||||||
|
@ -398,7 +399,7 @@ know what you're doing */
|
||||||
#define TOGGLE_MOUSE_KEY NANO_ALT_M
|
#define TOGGLE_MOUSE_KEY NANO_ALT_M
|
||||||
#define TOGGLE_CUTTOEND_KEY NANO_ALT_K
|
#define TOGGLE_CUTTOEND_KEY NANO_ALT_K
|
||||||
#define TOGGLE_REGEXP_KEY NANO_ALT_R
|
#define TOGGLE_REGEXP_KEY NANO_ALT_R
|
||||||
#define TOGGLE_WRAP_KEY NANO_ALT_W
|
#define TOGGLE_WRAP_KEY NANO_ALT_L
|
||||||
#define TOGGLE_BACKWARDS_KEY NANO_ALT_B
|
#define TOGGLE_BACKWARDS_KEY NANO_ALT_B
|
||||||
#define TOGGLE_CASE_KEY NANO_ALT_C
|
#define TOGGLE_CASE_KEY NANO_ALT_C
|
||||||
#define TOGGLE_LOAD_KEY NANO_ALT_F
|
#define TOGGLE_LOAD_KEY NANO_ALT_F
|
||||||
|
|
1
proto.h
1
proto.h
|
@ -358,6 +358,7 @@ filestruct *findnextstr(int quiet, int bracket_mode,
|
||||||
const filestruct *begin, int beginx,
|
const filestruct *begin, int beginx,
|
||||||
const char *needle);
|
const char *needle);
|
||||||
int do_search(void);
|
int do_search(void);
|
||||||
|
int do_research(void);
|
||||||
void replace_abort(void);
|
void replace_abort(void);
|
||||||
#ifdef HAVE_REGEX_H
|
#ifdef HAVE_REGEX_H
|
||||||
int replace_regexp(char *string, int create_flag);
|
int replace_regexp(char *string, int create_flag);
|
||||||
|
|
40
search.c
40
search.c
|
@ -430,6 +430,46 @@ int do_search(void)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Search for the next string without prompting. */
|
||||||
|
int do_research(void)
|
||||||
|
{
|
||||||
|
filestruct *fileptr = current, *didfind;
|
||||||
|
int fileptr_x = current_x;
|
||||||
|
#ifdef HAVE_REGEX_H
|
||||||
|
const char *regex_error = _("Invalid regex \"%s\"");
|
||||||
|
#endif /* HAVE_REGEX_H */
|
||||||
|
|
||||||
|
wrap_reset();
|
||||||
|
search_init_globals();
|
||||||
|
|
||||||
|
if (last_search[0] != '\0') {
|
||||||
|
|
||||||
|
#ifdef HAVE_REGEX_H
|
||||||
|
if (ISSET(USE_REGEXP))
|
||||||
|
if (regexp_init(last_search) == 0) {
|
||||||
|
statusbar(regex_error, last_search);
|
||||||
|
reset_cursor();
|
||||||
|
return -3;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
search_last_line = 0;
|
||||||
|
didfind = findnextstr(FALSE, FALSE, current, current_x, last_search);
|
||||||
|
|
||||||
|
if (fileptr == current && fileptr_x == current_x && didfind != NULL)
|
||||||
|
statusbar(_("This is the only occurrence"));
|
||||||
|
else if (current->lineno <= edittop->lineno
|
||||||
|
|| current->lineno >= editbot->lineno)
|
||||||
|
edit_update(current, CENTER);
|
||||||
|
|
||||||
|
} else
|
||||||
|
statusbar(_("No current search pattern"));
|
||||||
|
|
||||||
|
search_abort();
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
void replace_abort(void)
|
void replace_abort(void)
|
||||||
{
|
{
|
||||||
/* Identical to search_abort, so we'll call it here. If it
|
/* Identical to search_abort, so we'll call it here. If it
|
||||||
|
|
Loading…
Reference in New Issue