[2/4] fix problems moving back beyond start of history

Message ID 20200614201623.11743-3-tom@tromey.com
State New
Headers show
Series
  • Import readline 8.0 patches
Related show

Commit Message

Tom Tromey June 14, 2020, 8:16 p.m.
From: Chet Ramey <chet.ramey@case.edu>


---
 readline/readline/misc.c     | 5 ++++-
 readline/readline/patchlevel | 2 +-
 2 files changed, 5 insertions(+), 2 deletions(-)

-- 
2.17.2

Patch

diff --git a/readline/readline/misc.c b/readline/readline/misc.c
index 64b1457d29e..42005b0c1ec 100644
--- a/readline/readline/misc.c
+++ b/readline/readline/misc.c
@@ -576,6 +576,7 @@  int
 rl_get_previous_history (int count, int key)
 {
   HIST_ENTRY *old_temp, *temp;
+  int had_saved_line;
 
   if (count < 0)
     return (rl_get_next_history (-count, key));
@@ -588,6 +589,7 @@  rl_get_previous_history (int count, int key)
     _rl_history_saved_point = (rl_point == rl_end) ? -1 : rl_point;
 
   /* If we don't have a line saved, then save this one. */
+  had_saved_line = _rl_saved_line_for_history != 0;
   rl_maybe_save_line ();
 
   /* If the current line has changed, save the changes. */
@@ -611,7 +613,8 @@  rl_get_previous_history (int count, int key)
 
   if (temp == 0)
     {
-      rl_maybe_unsave_line ();
+      if (had_saved_line == 0)
+        _rl_free_saved_history_line ();
       rl_ding ();
     }
   else
diff --git a/readline/readline/patchlevel b/readline/readline/patchlevel
index fdf474049fc..7cbda82ded8 100644
--- a/readline/readline/patchlevel
+++ b/readline/readline/patchlevel
@@ -1,3 +1,3 @@ 
 # Do not edit -- exists only for use by patch
 
-1
+2