diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2008-04-28 10:56:42 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2008-04-28 10:56:42 +0000 |
commit | be947a560657f46438bb5f0c40cc0ac8cda6e2ec (patch) | |
tree | ed20df83eb44e694af90da06214b44150d806f69 /Src/Zle | |
parent | 0c0213b5175df7559e8e9f89cbb0a6bf3dd08da9 (diff) | |
download | zsh-be947a560657f46438bb5f0c40cc0ac8cda6e2ec.tar.gz zsh-be947a560657f46438bb5f0c40cc0ac8cda6e2ec.tar.xz zsh-be947a560657f46438bb5f0c40cc0ac8cda6e2ec.zip |
24890: Matt Wozniski: reset skip_pos on backtracking in isearch
Diffstat (limited to 'Src/Zle')
-rw-r--r-- | Src/Zle/zle_hist.c | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/Src/Zle/zle_hist.c b/Src/Zle/zle_hist.c index bc0598327..bc3cdf634 100644 --- a/Src/Zle/zle_hist.c +++ b/Src/Zle/zle_hist.c @@ -1442,20 +1442,21 @@ doisearch(char **args, int dir, int pattern) if(selectkeymap(invicmdmode() ? "main" : "vicmd", 0)) feep = 1; goto ref; - } else if(cmd == Th(z_vibackwarddeletechar) || - cmd == Th(z_backwarddeletechar)) { - if (top_spot) { - get_isrch_spot(--top_spot, &hl, &pos, &pat_hl, &pat_pos, - &end_pos, &zlemetacs, &sbptr, &dir, &nomatch); - patprog = NULL; - nosearch = 1; - } else - feep = 1; - if (nomatch) { - memcpy(ibuf, nomatch == 2 ? INVALID_TEXT : FAILING_TEXT, - BAD_TEXT_LEN); - statusline = ibuf; - skip_pos = 1; + } else if(cmd == Th(z_vibackwarddeletechar) || + cmd == Th(z_backwarddeletechar)) { + if (top_spot) { + get_isrch_spot(--top_spot, &hl, &pos, &pat_hl, &pat_pos, + &end_pos, &zlemetacs, &sbptr, &dir, &nomatch); + patprog = NULL; + nosearch = 1; + skip_pos = 0; + } else + feep = 1; + if (nomatch) { + memcpy(ibuf, nomatch == 2 ? INVALID_TEXT : FAILING_TEXT, + BAD_TEXT_LEN); + statusline = ibuf; + skip_pos = 1; } he = quietgethist(hl); zt = GETZLETEXT(he); |