diff options
Diffstat (limited to 'Functions/Zle')
-rw-r--r-- | Functions/Zle/history-pattern-search | 4 | ||||
-rw-r--r-- | Functions/Zle/read-from-minibuffer | 32 |
2 files changed, 20 insertions, 16 deletions
diff --git a/Functions/Zle/history-pattern-search b/Functions/Zle/history-pattern-search index 02f85a2fb..a6b12bd9c 100644 --- a/Functions/Zle/history-pattern-search +++ b/Functions/Zle/history-pattern-search @@ -28,7 +28,9 @@ else fi # Read pattern. Prompt could be made customisable. -read-from-minibuffer "pat ($dir): " +read-from-minibuffer "pat ($dir): " $_last_history_pattern_search + +_last_history_pattern_search=$REPLY # Abort if bad status or nothing entered [[ $? -ne 0 || -z $REPLY ]] && return 0 diff --git a/Functions/Zle/read-from-minibuffer b/Functions/Zle/read-from-minibuffer index c3848ae9f..ba75cbdce 100644 --- a/Functions/Zle/read-from-minibuffer +++ b/Functions/Zle/read-from-minibuffer @@ -5,15 +5,17 @@ local opt keys integer stat while getopts "k:" opt; do - case $opt in - (k) - keys=$OPTARG - ;; - - (*) - return 1 - ;; - esac + case $opt in + # Read the given number of keys. This is a bit + # ropey for more than a single key. + (k) + keys=$OPTARG + ;; + + (*) + return 1 + ;; + esac done (( OPTIND > 1 )) && shift $(( OPTIND - 1 )) @@ -27,13 +29,13 @@ ${1:-? }" POSTDISPLAY= if [[ -n $keys ]]; then - zle -R - read -k $keys - stat=$? + zle -R + read -k $keys + stat=$? else - zle recursive-edit - stat=$? - (( stat )) || REPLY=$BUFFER + zle recursive-edit + stat=$? + (( stat )) || REPLY=$BUFFER fi LBUFFER=$savelbuffer |