summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChet Ramey <chet.ramey@case.edu>2020-02-07 15:16:28 -0500
committerChet Ramey <chet.ramey@case.edu>2020-02-07 15:16:28 -0500
commitb0852fb54efbcee630847fcfdc435133f82043b9 (patch)
treeb573556243ddd6eb448a39fb0d4dc44630e16e42
parentd894cfd104086ddf68c286e67a5fb2e02eb43b7b (diff)
downloadbash-b0852fb54efbcee630847fcfdc435133f82043b9.tar.gz
Bash-5.0 patch 12: fix problems moving back beyond start of history
-rw-r--r--lib/readline/misc.c5
-rw-r--r--patchlevel.h2
2 files changed, 5 insertions, 2 deletions
diff --git a/lib/readline/misc.c b/lib/readline/misc.c
index 64b1457d..42005b0c 100644
--- a/lib/readline/misc.c
+++ b/lib/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/patchlevel.h b/patchlevel.h
index 772676c8..93dbe0db 100644
--- a/patchlevel.h
+++ b/patchlevel.h
@@ -25,6 +25,6 @@
regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh
looks for to find the patch level (for the sccs version string). */
-#define PATCHLEVEL 11
+#define PATCHLEVEL 12
#endif /* _PATCHLEVEL_H_ */