From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2234 invoked from network); 13 Jan 2009 07:32:51 -0000 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.2.5 Received: from news.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.88) by ns1.primenet.com.au with SMTP; 13 Jan 2009 07:32:51 -0000 Received-SPF: none (ns1.primenet.com.au: domain at sunsite.dk does not designate permitted sender hosts) Received: (qmail 60496 invoked from network); 13 Jan 2009 07:32:46 -0000 Received: from sunsite.dk (130.225.247.90) by a.mx.sunsite.dk with SMTP; 13 Jan 2009 07:32:46 -0000 Received: (qmail 16177 invoked by alias); 13 Jan 2009 07:32:42 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 26299 Received: (qmail 16164 invoked from network); 13 Jan 2009 07:32:42 -0000 Received: from bifrost.dotsrc.org (130.225.254.106) by sunsite.dk with SMTP; 13 Jan 2009 07:32:42 -0000 Received: from QMTA05.westchester.pa.mail.comcast.net (qmta05.westchester.pa.mail.comcast.net [76.96.62.48]) by bifrost.dotsrc.org (Postfix) with ESMTP id 7680580271F0 for ; Tue, 13 Jan 2009 08:32:35 +0100 (CET) Received: from OMTA07.westchester.pa.mail.comcast.net ([76.96.62.59]) by QMTA05.westchester.pa.mail.comcast.net with comcast id 2vRw1b00C1GhbT855vYbhw; Tue, 13 Jan 2009 07:32:35 +0000 Received: from smtp.klanderman.net ([98.217.254.247]) by OMTA07.westchester.pa.mail.comcast.net with comcast id 2vYb1b00A5M2Np63TvYbZE; Tue, 13 Jan 2009 07:32:35 +0000 Received: from lwm.klanderman.net (unknown [192.168.100.50]) by smtp.klanderman.net (Postfix) with ESMTP id 4CCDAB30144 for ; Tue, 13 Jan 2009 02:32:34 -0500 (EST) Received: by lwm.klanderman.net (Postfix, from userid 500) id 222A49FC5E5; Tue, 13 Jan 2009 02:32:34 -0500 (EST) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <18796.17298.94642.461735@gargle.gargle.HOWL> Date: Tue, 13 Jan 2009 02:32:34 -0500 From: Greg Klanderman To: Zsh list Subject: treatment of empty strings - why is this not a bug? Reply-To: gak@klanderman.net X-Mailer: VM 7.17 under 21.4 (patch 17) "Jumbo Shrimp" XEmacs Lucid X-Virus-Scanned: ClamAV 0.92.1/8856/Mon Jan 12 17:36:19 2009 on bifrost X-Virus-Status: Clean It's so nice that zsh doesn't do splitting on unquoted parameter expansions: [~] greg@lwm| zsh -f lwm% function count () { echo $# } lwm% a=( "a b" "c d" ) lwm% echo $#a[@] 2 lwm% count $a[@] 2 lwm% count "$a[@]" 2 however, it does silently drop empty strings: lwm% a=( "" "" "" ) lwm% echo $#a[@] 3 lwm% count $a[@] 0 lwm% count "$a[@]" 3 which means you still have to use all those quotes anyway. I just don't understand why there should be any distinction between the splitting and dropping of empty strings. And even using quotes, zsh's treatment of empty strings here seems very inconsistent: lwm% x=::: && for v in "${(s-:-)x}" ; do echo "v= =>$v<=" ; done v= =><= v= =><= lwm% x=:a:b: && for v in "${(s-:-)x}" ; do echo "v= =>$v<=" ; done v= =><= v= =>a<= v= =>b<= v= =><= thanks, Greg