diff options
author | Oliver Kiddle <opk@zsh.org> | 2024-11-23 22:31:44 +0100 |
---|---|---|
committer | Oliver Kiddle <opk@zsh.org> | 2024-11-23 22:31:44 +0100 |
commit | 3c0f932300adbc099658375137cffcaf10678cc1 (patch) | |
tree | 7f223cfb1b9f4e68c40e4514dfe7cf2599139d0d /Src/Zle | |
parent | 638e09af6e032e63d3a3f7e4ac4ffaf5bcf446d0 (diff) | |
download | zsh-3c0f932300adbc099658375137cffcaf10678cc1.tar.gz zsh-3c0f932300adbc099658375137cffcaf10678cc1.zip |
53243: fix use of vi-fetch-history with a range
Diffstat (limited to 'Src/Zle')
-rw-r--r-- | Src/Zle/zle_hist.c | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/Src/Zle/zle_hist.c b/Src/Zle/zle_hist.c index 0fdad70d9..53c722621 100644 --- a/Src/Zle/zle_hist.c +++ b/Src/Zle/zle_hist.c @@ -1758,7 +1758,8 @@ acceptandinfernexthistory(char **args) { Histent he; - if (!(he = infernexthist(hist_ring, args))) + if (virangeflag || !(zlereadflags & ZLRF_HISTORY) || + !(he = infernexthist(hist_ring, args))) return 1; zpushnode(bufstack, ztrdup(he->node.nam)); done = 1; @@ -1770,8 +1771,11 @@ acceptandinfernexthistory(char **args) int infernexthistory(char **args) { - Histent he = quietgethist(histline); + Histent he; + if (virangeflag || !(zlereadflags & ZLRF_HISTORY)) + return 1; + he = quietgethist(histline); if (!he || !(he = infernexthist(he, args))) return 1; zle_setline(he); @@ -1784,12 +1788,14 @@ vifetchhistory(UNUSED(char **args)) { if (zmult < 0) return 1; - if (histline == curhist) { + if (histline == curhist || virangeflag || !(zlereadflags & ZLRF_HISTORY)) { if (!(zmod.flags & MOD_MULT)) { zlecs = zlell; zlecs = findbol(); return 0; } + if (virangeflag || !(zlereadflags & ZLRF_HISTORY)) + return 1; } if (!zle_goto_hist((zmod.flags & MOD_MULT) ? zmult : curhist, 0, 0) && isset(HISTBEEP)) { @@ -1933,6 +1939,9 @@ getvisrchstr(void) int vihistorysearchforward(char **args) { + if (virangeflag || !(zlereadflags & ZLRF_HISTORY)) + return 1; + if (*args) { int ose = visrchsense, ret; char *ost = visrchstr; @@ -1954,6 +1963,9 @@ vihistorysearchforward(char **args) int vihistorysearchbackward(char **args) { + if (virangeflag || !(zlereadflags & ZLRF_HISTORY)) + return 1; + if (*args) { int ose = visrchsense, ret; char *ost = visrchstr; @@ -1979,8 +1991,9 @@ virepeatsearch(UNUSED(char **args)) int n = zmult; char *zt; - if (!visrchstr) + if (!visrchstr || virangeflag || !(zlereadflags & ZLRF_HISTORY)) return 1; + if (zmult < 0) { n = -n; visrchsense = -visrchsense; |