From 8ce654afb58e1b5fb619144e2eb12142d448976b Mon Sep 17 00:00:00 2001 From: Oliver Kiddle Date: Thu, 4 Apr 2002 11:59:08 +0000 Subject: 16933: more sophisticated versions of these functions --- Functions/Zle/up-line-or-beginning-search | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'Functions/Zle/up-line-or-beginning-search') diff --git a/Functions/Zle/up-line-or-beginning-search b/Functions/Zle/up-line-or-beginning-search index 12f2edaae..22d5183be 100644 --- a/Functions/Zle/up-line-or-beginning-search +++ b/Functions/Zle/up-line-or-beginning-search @@ -1,13 +1,18 @@ # Like up-line-or-search, but uses the whole line prefix up to the # cursor position for searching backwards. -if [[ $LASTWIDGET != $WIDGET ]] +if [[ $LBUFFER == *$'\n'* ]]; then + zle .up-line-or-history + __searching='' +elif [[ -n $PREBUFFER ]] && + zstyle -t ':zle:up-line-or-beginning-search' edit-buffer then - if [[ $LBUFFER == *$'\n'* ]] - then - __last_up_line=up-line-or-history - else - __last_up_line=history-beginning-search-backward - fi + zle .push-line-or-edit +else + [[ $LASTWIDGET = $__searching ]] && CURSOR=$__savecursor + __savecursor=$CURSOR + __searching=$WIDGET + zle .history-beginning-search-backward + zstyle -T ':zle:up-line-or-beginning-search' leave-cursor && + zle .end-of-line fi -zle .${__last_up_line:-beep} -- cgit 1.4.1