From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8194 invoked from network); 16 Apr 2002 08:26:38 -0000 Received: from sunsite.dk (130.225.247.90) by ns1.primenet.com.au with SMTP; 16 Apr 2002 08:26:38 -0000 Received: (qmail 9631 invoked by alias); 16 Apr 2002 08:26:20 -0000 Mailing-List: contact zsh-users-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 4836 Received: (qmail 9619 invoked from network); 16 Apr 2002 08:26:19 -0000 From: Sven Wischnowsky MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15547.57336.753975.336253@wischnow.berkom.de> Date: Tue, 16 Apr 2002 10:25:28 +0200 To: zsh-users@sunsite.dk Subject: Re: Case-insensitive completion of files with matcher-list In-Reply-To: References: <87ofgk6cut.fsf@lynx.ionific.com> X-Mailer: VM 6.95 under 21.5 (patch 3) "asparagus" XEmacs Lucid Bart Schaefer wrote: > On Mon, 15 Apr 2002, Hannu Koivisto wrote: > > > zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' > > > > That works fine indeed, but what if I want case-insensitive > > completion only for files? After reading about contexts and > > fiddling with C-x h, I figured that > > > > zstyle ':completion:*:all-files' matcher-list 'm:{a-zA-Z}={A-Za-z}' > > > > should do the trick > > You're not quite right. matcher-list is used only at the global level, > not for individual tags like all-files. For an individual tag, you want > to use just the 'matcher' style: > > zstyle ':completion:*:all-files' matcher 'm:{a-zA-Z}={A-Za-z}' > > Unfortunately, there appears to be a bug in _path_files -- it copies any > global matcher from matcher-list through to the call to compfiles, but it > doesn't do the same for a matcher passed to it with the -M option (which > is where the string from the matcher style ends up). > > Unfortunately I don't see offhand how to fix this. Sven? It's collected in $matcher and I really think it was an oversight. Sorry for this (and for sending a patch to -users). Also note that one might want to include the other file-tags in this case, e.g.: `:completion:*:(direcories|((all-|globbed-|)files))'. Bye Sven Index: Completion/Unix/Type/_path_files =================================================================== RCS file: /cvsroot/zsh/zsh/Completion/Unix/Type/_path_files,v retrieving revision 1.14 diff -u -r1.14 _path_files --- Completion/Unix/Type/_path_files 17 Oct 2001 13:29:21 -0000 1.14 +++ Completion/Unix/Type/_path_files 16 Apr 2002 08:24:00 -0000 @@ -335,11 +335,11 @@ tmp2=( "$tmp1[@]" ) if [[ "$tpre$tsuf" = */* ]]; then - compfiles -P$cfopt tmp1 accex "$skipped" "$_matcher" "$sdirs" fake + compfiles -P$cfopt tmp1 accex "$skipped" "$_matcher $matcher[2]" "$sdirs" fake elif [[ "$sopt" = *[/f]* ]]; then - compfiles -p$cfopt tmp1 accex "$skipped" "$_matcher" "$sdirs" fake "$pats[@]" + compfiles -p$cfopt tmp1 accex "$skipped" "$_matcher $matcher[2]" "$sdirs" fake "$pats[@]" else - compfiles -p$cfopt tmp1 accex "$skipped" "$_matcher" '' fake "$pats[@]" + compfiles -p$cfopt tmp1 accex "$skipped" "$_matcher $matcher[2]" '' fake "$pats[@]" fi tmp1=( $~tmp1 ) -- Sven Wischnowsky wischnow@berkom.de