From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28483 invoked from network); 12 Nov 2004 01:03:53 -0000 Received: from news.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.88) by ns1.primenet.com.au with SMTP; 12 Nov 2004 01:03:53 -0000 Received: (qmail 56592 invoked from network); 12 Nov 2004 01:03:44 -0000 Received: from sunsite.dk (130.225.247.90) by a.mx.sunsite.dk with SMTP; 12 Nov 2004 01:03:44 -0000 Received: (qmail 19255 invoked by alias); 12 Nov 2004 01:02:53 -0000 Mailing-List: contact zsh-users-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 8207 Received: (qmail 19240 invoked from network); 12 Nov 2004 01:02:52 -0000 Received: from news.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.88) by sunsite.dk with SMTP; 12 Nov 2004 01:02:52 -0000 Received: (qmail 55382 invoked from network); 12 Nov 2004 01:02:51 -0000 Received: from moonbase.zanshin.com (64.84.47.139) by a.mx.sunsite.dk with SMTP; 12 Nov 2004 01:02:49 -0000 Received: from toltec.zanshin.com (toltec.zanshin.com [64.84.47.166]) by moonbase.zanshin.com (8.13.1/8.13.1) with ESMTP id iAC12lYj030629; Thu, 11 Nov 2004 17:02:47 -0800 Date: Thu, 11 Nov 2004 17:02:47 -0800 (PST) From: Bart Schaefer To: Stephane Chazelas cc: Zsh users list Subject: Re: [tip] mouse support In-Reply-To: <20041111182225.GA4345@sc> Message-ID: References: <20041111122011.GB4451@sc> <4483.1100184032@csr.com> <20041111162209.GC4451@sc> <20041111182225.GA4345@sc> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam-Checker-Version: SpamAssassin 2.63 on a.mx.sunsite.dk X-Spam-Level: X-Spam-Status: No, hits=0.0 required=6.0 tests=none autolearn=no version=2.63 X-Spam-Hits: 0.0 On Thu, 11 Nov 2004, Stephane Chazelas wrote: > zero='%([BSUbsu]|{*%})' > > It replaces '%%some %{%{some%}%}' with '%ome %}' instead of > '%%some ' Hmm. To fix that, you need extended globbing: setopt extendedglob zero='(#b)([^%]|(#s))%([BSUbsu]|{*%})' print ${(%%)PS1//$~zero/$match[1]} On Thu, 11 Nov 2004, Stephane Chazelas wrote: > Well the (%%) expansion flag has another problem: > > var='%Sfoo%s' > PS1='$var' > > In that case, you need to expand first the variables in PS1 or > you'll miss the %S %s visual sequences. That's easy enough: if [[ -o promptsubst ]] then print ${(%%)${(e)PS1}//$~zero/$match[1]} else print ${(%%)PS1//$~zero/$match[1]} fi