diff options
Diffstat (limited to 'cmd-line-utils/readline/search.c')
-rw-r--r-- | cmd-line-utils/readline/search.c | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/cmd-line-utils/readline/search.c b/cmd-line-utils/readline/search.c index 637534924f1..ce7d54eb799 100644 --- a/cmd-line-utils/readline/search.c +++ b/cmd-line-utils/readline/search.c @@ -22,7 +22,9 @@ 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #define READLINE_LIBRARY -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #include <sys/types.h> #include <stdio.h> @@ -80,8 +82,13 @@ static void make_history_line_current (entry) HIST_ENTRY *entry; { - rl_replace_line (entry->line, 0); +#if 0 + rl_replace_line (entry->line, 1); rl_undo_list = (UNDO_LIST *)entry->data; +#else + _rl_replace_text (entry->line, 0, rl_end); + _rl_fix_point (1); +#endif if (_rl_saved_line_for_history) _rl_free_history_entry (_rl_saved_line_for_history); @@ -187,6 +194,11 @@ noninc_search (dir, pchar) saved_point = rl_point; saved_mark = rl_mark; + /* Clear the undo list, since reading the search string should create its + own undo list, and the whole list will end up being freed when we + finish reading the search string. */ + rl_undo_list = 0; + /* Use the line buffer to read the search string. */ rl_line_buffer[0] = 0; rl_end = rl_point = 0; @@ -294,7 +306,7 @@ noninc_search (dir, pchar) code calls this, KEY will be `?'. */ int rl_noninc_forward_search (count, key) - int count __attribute__((unused)), key __attribute__((unused)); + int count, key; { noninc_search (1, (key == '?') ? '?' : 0); return 0; @@ -304,7 +316,7 @@ rl_noninc_forward_search (count, key) calls this, KEY will be `/'. */ int rl_noninc_reverse_search (count, key) - int count __attribute__((unused)), key __attribute__((unused)); + int count, key; { noninc_search (-1, (key == '/') ? '/' : 0); return 0; @@ -314,7 +326,7 @@ rl_noninc_reverse_search (count, key) for. If there is no saved search string, abort. */ int rl_noninc_forward_search_again (count, key) - int count __attribute__((unused)), key __attribute__((unused)); + int count, key; { if (!noninc_search_string) { @@ -329,7 +341,7 @@ rl_noninc_forward_search_again (count, key) for. If there is no saved search string, abort. */ int rl_noninc_reverse_search_again (count, key) - int count __attribute__((unused)), key __attribute__((unused)); + int count, key; { if (!noninc_search_string) { |