summaryrefslogtreecommitdiff
path: root/cmd-line-utils/readline/search.c
diff options
context:
space:
mode:
Diffstat (limited to 'cmd-line-utils/readline/search.c')
-rw-r--r--cmd-line-utils/readline/search.c24
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)
{