mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-07-29 10:41:06 +02:00
unposted: yet more history-beginning-search-menu fixes
This commit is contained in:
parent
bb912594b2
commit
21c83849a9
3 changed files with 16 additions and 9 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2006-08-02 Peter Stephenson <pws@csr.com>
|
||||||
|
|
||||||
|
* unposted: Functions/Zle/history-beginning-search-menu,
|
||||||
|
Doc/Zsh/params.yo: yet more tweaks I'm too embarrassed to post:
|
||||||
|
^ also needs quoting; clear display on first non-digit character;
|
||||||
|
stray / appeared in substitution.
|
||||||
|
|
||||||
2006-08-01 Peter Stephenson <p.w.stephenson@ntlworld.com>
|
2006-08-01 Peter Stephenson <p.w.stephenson@ntlworld.com>
|
||||||
|
|
||||||
* 22574: Functions/Zle/history-beginning-search-menu,
|
* 22574: Functions/Zle/history-beginning-search-menu,
|
||||||
|
|
|
@ -221,7 +221,7 @@ the tt(EXTENDED_GLOB) option is set, the following is sufficient to
|
||||||
match an element of an array tt($array) containing exactly the value of
|
match an element of an array tt($array) containing exactly the value of
|
||||||
tt($key):
|
tt($key):
|
||||||
|
|
||||||
example(key2=${key//(#m)[\][+LPAR()+RPAR()\\*?#<>~]/\\$MATCH}
|
example(key2=${key//(#m)[\][+LPAR()+RPAR()\\*?#<>~^]/\\$MATCH}
|
||||||
print ${array[(R)$key2]})
|
print ${array[(R)$key2]})
|
||||||
)
|
)
|
||||||
item(tt(R))(
|
item(tt(R))(
|
||||||
|
|
|
@ -40,7 +40,7 @@ local -a display
|
||||||
|
|
||||||
local search=$LBUFFER
|
local search=$LBUFFER
|
||||||
|
|
||||||
search=${search//(#m)[\][()\\*?#<>~]/\\$MATCH/}
|
search=${search//(#m)[\][()\\*?#<>~^]/\\$MATCH}
|
||||||
if [[ $WIDGET = *-space* ]]; then
|
if [[ $WIDGET = *-space* ]]; then
|
||||||
# We need to quote metacharacters in the search string
|
# We need to quote metacharacters in the search string
|
||||||
# since they are otherwise active in the reverse subscript.
|
# since they are otherwise active in the reverse subscript.
|
||||||
|
@ -72,6 +72,12 @@ zle -R "Enter digit${${width##1}:+s}:" $display
|
||||||
integer i
|
integer i
|
||||||
local char chars
|
local char chars
|
||||||
|
|
||||||
|
# Hmmm... this isn't great. The only way of clearing the display
|
||||||
|
# appears to be to overwrite it completely. I think that's because
|
||||||
|
# displaying strings in this way doesn't set the completion list
|
||||||
|
# properly.
|
||||||
|
display=(${display//?/ })
|
||||||
|
|
||||||
# Abort on first non-digit entry instead of requiring all
|
# Abort on first non-digit entry instead of requiring all
|
||||||
# characters to be typed (as "read -k$width chars" would do).
|
# characters to be typed (as "read -k$width chars" would do).
|
||||||
for (( i = 0; i < $width; i++ )); do
|
for (( i = 0; i < $width; i++ )); do
|
||||||
|
@ -83,12 +89,6 @@ for (( i = 0; i < $width; i++ )); do
|
||||||
chars+=$char
|
chars+=$char
|
||||||
done
|
done
|
||||||
|
|
||||||
# Hmmm... this isn't great. The only way of clearing the display
|
|
||||||
# appears to be to overwrite it completely. I think that's because
|
|
||||||
# displaying strings in this way doesn't set the completion list
|
|
||||||
# properly.
|
|
||||||
display=(${display//?/ })
|
|
||||||
|
|
||||||
if [[ $chars -eq 0 || $chars -gt $n ]]; then
|
if [[ $chars -eq 0 || $chars -gt $n ]]; then
|
||||||
zle -R '' $display
|
zle -R '' $display
|
||||||
return 1
|
return 1
|
||||||
|
@ -112,7 +112,7 @@ fi
|
||||||
# go to the last one. This allows accept-line-and-down-history etc.
|
# go to the last one. This allows accept-line-and-down-history etc.
|
||||||
# to work.
|
# to work.
|
||||||
local -a lines
|
local -a lines
|
||||||
local matchq=${matches[$chars]//(#m)[\][()\\*?#<>~]/\\$MATCH}
|
local matchq=${matches[$chars]//(#m)[\][()\\*?#<>~^]/\\$MATCH}
|
||||||
lines=(${(kon)history[(R)$matchq]})
|
lines=(${(kon)history[(R)$matchq]})
|
||||||
HISTNO=$lines[-1]
|
HISTNO=$lines[-1]
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue