diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2003-03-28 11:34:07 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2003-03-28 11:34:07 +0000 |
commit | 1e57c42f470bdd2ab6179ec44dae96fd3377a1dd (patch) | |
tree | 5f9c38c21bcbbcba7b7524f9df7e4f99b8344424 /Functions/Zle/read-from-minibuffer | |
parent | 2941469f616202f51da7ba9ceafa3f419f34573b (diff) | |
download | zsh-1e57c42f470bdd2ab6179ec44dae96fd3377a1dd.tar.gz zsh-1e57c42f470bdd2ab6179ec44dae96fd3377a1dd.tar.xz zsh-1e57c42f470bdd2ab6179ec44dae96fd3377a1dd.zip |
18394: New word movement and editing widgets.
Diffstat (limited to 'Functions/Zle/read-from-minibuffer')
-rw-r--r-- | Functions/Zle/read-from-minibuffer | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/Functions/Zle/read-from-minibuffer b/Functions/Zle/read-from-minibuffer index 93eec42a5..6af7f2a39 100644 --- a/Functions/Zle/read-from-minibuffer +++ b/Functions/Zle/read-from-minibuffer @@ -1,3 +1,22 @@ +emulate -L zsh +setopt extendedglob + +local opt keys +integer stat + +while getopts "k:" opt; do + case $opt in + (k) + keys=$OPTARG + ;; + + (*) + return 1 + ;; + esac +done +(( OPTIND > 1 )) && shift $(( OPTIND - 1 )) + local savelbuffer=$LBUFFER saverbuffer=$RBUFFER local savepredisplay=$PREDISPLAY savepostdisplay=$POSTDISPLAY @@ -7,10 +26,15 @@ PREDISPLAY="$PREDISPLAY$savelbuffer$saverbuffer$POSTDISPLAY ${1:-? }" POSTDISPLAY= -zle recursive-edit -integer stat=$? - -(( stat )) || REPLY=$BUFFER +if [[ -n $keys ]]; then + zle -R + read -k $keys + stat=$? +else + zle recursive-edit + stat=$? + (( stat )) || REPLY=$BUFFER +fi LBUFFER=$savelbuffer RBUFFER=$saverbuffer |