From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23359 invoked from network); 6 Jul 2001 09:50:56 -0000 Received: from sunsite.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 6 Jul 2001 09:50:56 -0000 Received: (qmail 206 invoked by alias); 6 Jul 2001 09:49:53 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 15279 Received: (qmail 173 invoked from network); 6 Jul 2001 09:49:52 -0000 Message-ID: To: zsh-workers@sunsite.dk (Zsh hackers list) Subject: Re: Test Failures Latest CVS In-reply-to: "Peter Stephenson"'s message of "Fri, 06 Jul 2001 10:17:50 BST." Date: Fri, 06 Jul 2001 10:50:20 +0100 From: Peter Stephenson Peter Stephenson wrote: > "Bart Schaefer" wrote: > > The question is, -should- it have been changed? > > ... difficult to understand ... > > ... This seems backwards to me. ... > > ... always before it has been the case ... > ... real bug ... > ... removing that patch. ... OK, have I got the description right this time? Index: Doc/Zsh/expn.yo =================================================================== RCS file: /cvsroot/zsh/zsh/Doc/Zsh/expn.yo,v retrieving revision 1.31 diff -u -r1.31 expn.yo --- Doc/Zsh/expn.yo 2001/07/06 09:03:48 1.31 +++ Doc/Zsh/expn.yo 2001/07/06 09:49:17 @@ -791,10 +791,26 @@ This only applies when searching for substrings, either with the tt(S) flag, or with tt(${)...tt(/)...tt(}) (only the var(expr)th match is substituted) or tt(${)...tt(//)...tt(}) (all matches from the -var(expr)th on are substituted). The var(expr)th match is counted -such that there is either one or zero matches from each starting -position in the string, although for global substitution matches -overlapping previous replacements are ignored. +var(expr)th on are substituted). The default is to take the first match. + +The var(expr)th match is counted such that there is either one or zero +matches from each starting position in the string, although for global +substitution matches overlapping previous replacements are ignored. With +the tt(${)...tt(%)...tt(}) and tt(${)...tt(%%)...tt(}) forms, the starting +position for the match moves backwards from the end as the index increases, +while with the other forms it moves forward from the start. + +Hence with the string +example(which switch is the right switch for Ipswich?) +substitutions of the form +tt(${)LPAR()tt(SI:)var(N)tt(:)RPAR()tt(string#w*ch}) as var(N) increases +from 1 will match and remove `tt(which)', `tt(witch)', `tt(witch)' and +`tt(wich)'; the form using `tt(##)' will match and remove `tt(which switch +is the right switch for Ipswich)', `tt(witch is the right switch for +Ipswich)', `tt(witch for Ipswich)' and `tt(wich)'. The form using `tt(%)' +will remove the same matches as for `tt(#)', but in reverse order, and the +form using `tt(%%)' will remove the same matches as for `tt(##)' in reverse +order. ) item(tt(M))( Include the matched portion in the result. -- Peter Stephenson Software Engineer CSR Ltd., Unit 300, Science Park, Milton Road, Cambridge, CB4 0XL, UK Tel: +44 (0)1223 392070 ********************************************************************** The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer. **********************************************************************