summaryrefslogtreecommitdiff
path: root/Functions/Zle
diff options
context:
space:
mode:
Diffstat (limited to 'Functions/Zle')
-rw-r--r--Functions/Zle/history-pattern-search4
-rw-r--r--Functions/Zle/read-from-minibuffer32
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