From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16748 invoked from network); 13 Jun 2000 12:46:15 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 13 Jun 2000 12:46:14 -0000 Received: (qmail 18857 invoked by alias); 13 Jun 2000 12:45:44 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 11873 Received: (qmail 18842 invoked from network); 13 Jun 2000 12:45:44 -0000 Date: Tue, 13 Jun 2000 13:43:08 +0200 (MET DST) Message-Id: <200006131143.NAA30847@beta.informatik.hu-berlin.de> From: Sven Wischnowsky To: zsh-workers@sunsite.auc.dk In-reply-to: "Bart Schaefer"'s message of Mon, 5 Jun 2000 04:48:00 +0000 Subject: PATCH: Re: Getting "parse error" from _path_files Bart Schaefer wrote: > ... > > There are actually two things at issue here. The second is that I'd rather > that completion didn't happen when I'm doing cut'n'paste. I tried putting: > > (( PENDING )) && compstate[insert]=tab > > near the top of _main_complete, right after curcontext is set up, and that > seems to help a bit, but I'm rather leery of that solution. It does need > to use PENDING somehow, though. How about this. Allow `insert-tab' to contain the string `pending[=num]' which makes completion insert a TAB (or, actually, whatever character was typed to start completion) if it is given. If there is a `=num', it will insert it only if there are at least that many unread characters. Bye Sven Index: Completion/Core/_main_complete =================================================================== RCS file: /cvsroot/zsh/zsh/Completion/Core/_main_complete,v retrieving revision 1.27 diff -u -r1.27 _main_complete --- Completion/Core/_main_complete 2000/05/31 09:56:12 1.27 +++ Completion/Core/_main_complete 2000/06/13 11:41:35 @@ -23,7 +23,7 @@ # Failed returns from this code are not real errors setopt localtraps noerrexit ; trap - ZERR -local func funcs ret=1 tmp _compskip format nm call \ +local func funcs ret=1 tmp _compskip format nm call match \ _completers _completer _completer_num curtag _comp_force_list \ _matchers _matcher _matcher_num _comp_tags _comp_mesg \ context state line opt_args val_args curcontext="$curcontext" \ @@ -38,8 +38,18 @@ [[ -z "$curcontext" ]] && curcontext=::: -if [[ "$compstate[insert]" = tab* && "$WIDGET" != *list* ]]; then - { zstyle -T ":completion:${curcontext}:" insert-tab && +zstyle -s ":completion:${curcontext}:" insert-tab tmp || tmp=no + +if [[ "$tmp" = *pending(|[[:blank:]]*) || + ( "$tmp" = *pending=(#b)([0-9]##)(|[[:blank:]]*) && + PENDING -ge $match[1] ) ]]; then + compstate[insert]=tab + + return 0 +fi + +if [[ "$compstate[insert]" = tab* ]]; then + { "$tmp" = (|[[:blank:]]*)(yes|true|on|1)(|[[:blank:]]*) && { [[ "$curcontext" != :* || -z "$compstate[vared]" ]] || zstyle -t ":completion:vared${curcontext}:" insert-tab } } && return 0 Index: Doc/Zsh/compsys.yo =================================================================== RCS file: /cvsroot/zsh/zsh/Doc/Zsh/compsys.yo,v retrieving revision 1.61 diff -u -r1.61 compsys.yo --- Doc/Zsh/compsys.yo 2000/06/13 11:26:08 1.61 +++ Doc/Zsh/compsys.yo 2000/06/13 11:41:37 @@ -1278,6 +1278,16 @@ of performing completion when there is no non-blank character to the left of the cursor. If set to `false', completion will be done even there. +The value may also contain the substrings `tt(pending)' or +`tt(pending=)var(val)' to make the character typed to start completion +be inserted instead of completion being tried when there is input +pending which has not yet been processed by the shell. If a var(val) +is given, completion will not be done if there are at least that many +characters of unprocessed input. This is often useful to have set when +pasting characters into a terminal. Note however, that it relies on +the tt($PENDING) special parameter from the tt(zle) module being set +properly which is not guaranteed on all platforms. + The default value of this style is `true' unless when completing inside the tt(vared) builtin command, where it defaults to `false'. ) -- Sven Wischnowsky wischnow@informatik.hu-berlin.de