From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26894 invoked from network); 7 Feb 2003 10:48:39 -0000 Received: from sunsite.dk (130.225.247.90) by ns1.primenet.com.au with SMTP; 7 Feb 2003 10:48:39 -0000 Received: (qmail 21392 invoked by alias); 7 Feb 2003 10:48:12 -0000 Mailing-List: contact zsh-users-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 5887 Received: (qmail 21385 invoked from network); 7 Feb 2003 10:48:11 -0000 Received: from localhost (HELO sunsite.dk) (127.0.0.1) by localhost with SMTP; 7 Feb 2003 10:48:11 -0000 X-MessageWall-Score: 0 (sunsite.dk) Received: from [62.189.183.235] by sunsite.dk (MessageWall 1.0.8) with SMTP; 7 Feb 2003 10:48:11 -0000 Received: from exchange01.csr.com (unverified) by (Content Technologies SMTPRS 4.2.1) with ESMTP id for ; Fri, 7 Feb 2003 10:54:36 +0000 Received: from csr.com (tinky-winky.csr.com [192.168.144.127]) by exchange01.csr.com with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2650.21) id DQ47L3TG; Fri, 7 Feb 2003 10:48:57 -0000 To: zsh-users@sunsite.dk Subject: Re: set -A In-reply-to: ""Bart Schaefer""'s message of "Fri, 07 Feb 2003 03:53:14 GMT." <1030207035314.ZM24755@candle.brasslantern.com> Date: Fri, 07 Feb 2003 10:48:12 +0000 Message-ID: <12330.1044614892@csr.com> From: Peter Stephenson "Bart Schaefer" wrote: > On Feb 6, 7:01pm, Paul Ackersviller wrote: > } Subject: set -A > } > } unset arr > } set -A arr "${arr[@]}" first > } [ ${#arr[@]} = 2 ] && echo "arr[0]='${arr[0]}' arr[1]='${arr[1]}'" > } > } Note the null entry on the start of the array. > > This really has nothing to do with "set -A". > > If you've unset arr, then arr is not an array, and hence ${arr[@]} is > not an array either, and therefore "${arr[@]}" does not behave like > an array; rather, it behaves like a string, so putting it in double > quotes yields the empty string. But the `@' subscript is not documented to do anything useful for strings, nor can I see why anyone would assume it was useful in that case, nor, if they *did* think, that why they would assume that it produced a null string instead of the usual elision of the argument. (I haven't put that very well.) I think we could safely and consistently have a non-existent parameter treated as an array in this special case without any negative impact. The main problem with doing anything is that this part of the code is particularly ghastly and I shudder at going anywhere near it. -- Peter Stephenson Software Engineer CSR Ltd., Science Park, Milton Road, Cambridge, CB4 0WH, UK Tel: +44 (0)1223 692070 ********************************************************************** 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. **********************************************************************