diff options
author | Oliver Kiddle <opk@zsh.org> | 2015-06-18 23:55:45 +0200 |
---|---|---|
committer | Oliver Kiddle <opk@zsh.org> | 2015-06-19 00:01:42 +0200 |
commit | 0a0ba5e6641a8a78d745928e5738c95cc5353ee0 (patch) | |
tree | 3eb03306f095516cb14c93d1ad192f0c65eba1ba /Src/Zle | |
parent | deb2ec7f174df720033e7001be0c8d8f0bd9a9d9 (diff) | |
download | zsh-0a0ba5e6641a8a78d745928e5738c95cc5353ee0.tar.gz zsh-0a0ba5e6641a8a78d745928e5738c95cc5353ee0.tar.xz zsh-0a0ba5e6641a8a78d745928e5738c95cc5353ee0.zip |
35487, 35496: don't reinstate previous incremental search string
when search direction changes
Diffstat (limited to 'Src/Zle')
-rw-r--r-- | Src/Zle/complist.c | 4 | ||||
-rw-r--r-- | Src/Zle/zle_hist.c | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/Src/Zle/complist.c b/Src/Zle/complist.c index a02a5c37b..39c0c314d 100644 --- a/Src/Zle/complist.c +++ b/Src/Zle/complist.c @@ -3287,13 +3287,15 @@ domenuselect(Hookdef dummy, Chdata dat) } if (!ins) { if (was) { - if (!*msearchstr && lastsearch) { + if (!*msearchstr && lastsearch && + back == (mode == MM_BSEARCH)) { msearchstr = dupstring(lastsearch); mode = 0; } } else { msearchstr = ""; msearchstack = NULL; + msearchstate = MS_OK; } } if (cmd == Th(z_selfinsertunmeta)) { diff --git a/Src/Zle/zle_hist.c b/Src/Zle/zle_hist.c index cc66f99ae..0b3b9e7b7 100644 --- a/Src/Zle/zle_hist.c +++ b/Src/Zle/zle_hist.c @@ -1598,7 +1598,7 @@ doisearch(char **args, int dir, int pattern) dir = odir; skip_pos = 1; rpt: - if (!sbptr && previous_search_len) { + if (!sbptr && previous_search_len && dir == odir) { if (previous_search_len > sibuf - FIRST_SEARCH_CHAR - 2) { ibuf = hrealloc((char *)ibuf, sibuf, (sibuf + previous_search_len)); |