From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,RCVD_IN_SBL_CSS, UNPARSEABLE_RELAY autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 29907 invoked from network); 20 Jan 2021 16:26:15 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 20 Jan 2021 16:26:15 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20200801; t=1611159975; b=WBiUNHXsXs9uPxtlgUVx8EbbKD6CqcswvoIh9NdXN0lKjEU3xIt68Ej9LrhJ5q5FoE9QCKkVu2 Y7S/v6m1jqM2uHK2OfnBvwM26ULbRE7VwQtOcjS5+Ch61w2dJs8M3iAVwFmLYbdRcOXMgxsqFe UYNz4Pfakipu4e3HmXODirordg53hDPOjaZjXseRI9VIWWBejRm3MZhoIX49qVzlFmGZtfOYCq ljunPUoUq7+6wmZQi5Vaip33vkDrCTPAWhE/aMto12Nyf55FThjRI8tgLRnXCYIk1S5pFCj3+l VeDInApD5rr2K5ai3iWRR9raFOLu2yXE3LOaCB/JF0MzxQ==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (smtpq1.tb.ukmail.iss.as9143.net) smtp.remote-ip=212.54.57.96; dkim=pass header.d=ntlworld.com header.s=meg.feb2017 header.a=rsa-sha256; dmarc=pass header.from=ntlworld.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20200801; t=1611159975; bh=DU/HuH60GVpUg98jXicnNRTAqOFVX52kfp6ge3EAc6c=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject: References:In-Reply-To:Message-ID:To:From:Date:DKIM-Signature: DKIM-Signature; b=gVAbkB1jQSwV/77CszytopaGVpIMsNLZ7kfLYSbrNhCY3VtSr4+ZfhyyqHoljSRA7qDRD90nlY leWf/NkDwa6zwu0vPdWVtTORB1+lCmkcHeSKix4T50GF9btfEFCUYyjdwEd/u0mQYokP/tlbLi zapGyxnfecMh4+rSqjhmXXsZz0GtW8/RSArV0Nuefasvu7c/8FIzhiidQQkWNtfD1eUIIb7Mt6 QeCRzgdBEMTSBlgpNMOsDa8SmU2bLakJOaMMfEhyz4ZtCTVwEfXDlF2bRNMKIemYXZX/XpdrAL UNjS2Oad0Vit+ZnBwmimcSDfgnccSSPqsFqA1VYJa6AWWg==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20200801; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:References:In-Reply-To:Message-ID:To:From: Date:Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=9ElBiQLPZBwhMuHnGnFAXp7/S7DMbNnVdILye9JQ5aw=; b=LukLMW9bqFugCs4Pyz6LG85C3G xcJ927w5GwpZIbX1qt+nFPOeHiMGYyk6YzHcqacWdRvY277AxT6wH6vhI4kYTMFf3MikqXE98EiaN ZhmF8d2gTG385YaAHQ4lZa3iVeb5TA7E3yV/Ez/kezEE9n0GtSeddGWxfzyqRZG2ZeMyibBSMQvRB kbcE1uG7xMizpVFgdTKHEywZlgawAxhFW2CYWqwX29WpklEiwo9zTX8ZD5yFywMhvpI22zDONItjt s0OMOoG4khFXAh3bgqdjHjteP4bvpXcPACQkBtKQ+v5bRyyj58EL3brhdW/PMf4+hvJLrDMyaojYI mv//R8og==; Received: from authenticated user by zero.zsh.org with local id 1l2GJC-000F0l-Ll; Wed, 20 Jan 2021 16:26:14 +0000 Authentication-Results: zsh.org; iprev=pass (smtpq1.tb.ukmail.iss.as9143.net) smtp.remote-ip=212.54.57.96; dkim=pass header.d=ntlworld.com header.s=meg.feb2017 header.a=rsa-sha256; dmarc=pass header.from=ntlworld.com; arc=none Received: from smtpq1.tb.ukmail.iss.as9143.net ([212.54.57.96]:39892) by zero.zsh.org with esmtps (TLS1.2:ECDHE-RSA-AES128-GCM-SHA256:128) id 1l2GJ2-000ErW-9B; Wed, 20 Jan 2021 16:26:04 +0000 Received: from [212.54.57.81] (helo=smtp2.tb.ukmail.iss.as9143.net) by smtpq1.tb.ukmail.iss.as9143.net with esmtp (Exim 4.86_2) (envelope-from ) id 1l2GJ1-00078Z-Mh for zsh-workers@zsh.org; Wed, 20 Jan 2021 17:26:03 +0100 Received: from oxbe20.tb.ukmail.iss.as9143.net ([172.25.160.151]) by smtp2.tb.ukmail.iss.as9143.net with ESMTP id 2GJ1l5f6cmtYm2GJ1l6pvP; Wed, 20 Jan 2021 17:26:03 +0100 X-Env-Mailfrom: p.w.stephenson@ntlworld.com X-Env-Rcptto: zsh-workers@zsh.org X-SourceIP: 172.25.160.151 X-CNFS-Analysis: v=2.4 cv=N7bsq0xB c=1 sm=1 tr=0 ts=6008599b a=Ip+kZtMD4PYul4iMASbA3A==:117 a=ADWkfsjt5WoA:10 a=IkcTkHD0fZMA:10 a=ac2Zk7JPEtsA:10 a=pGLkceISAAAA:8 a=-gqv3f54kbKZ4RKbXLYA:9 a=QEXdDO2ut3YA:10 X-Authenticated-Sender: p.w.stephenson@ntlworld.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ntlworld.com; s=meg.feb2017; t=1611159963; bh=DU/HuH60GVpUg98jXicnNRTAqOFVX52kfp6ge3EAc6c=; h=Date:From:To:In-Reply-To:References:Subject; b=IvabLz6Ce9T9MFQE/5Uu7ONiOx9zBm3cLmfAVbkyBocPOOV399UXhhGlDQeOIODPV PK5kbNvIiQkdOgn8UeWDH/UC1zvxUB8I66o1acIghOSZv8eVPZlYVwM8bP9zsqGP9y oxBzFG2DJ9YkE3C8J+AvC2E3jC/348tVN8NkJqm37pPbY8Gw4UOv3H2nsfn+e//sWS sNpzp/1UsJ0BfQ4bK5/L0aSOI66MaLUOyWKHToh/L31CjJL+HdvmX9IWdicuX2XFyU aVUH783F0sulf/8nXdTCFCeYsqr/ve4n4vMSP0HWzCvvzSG+5tRIaK8At1u+6IiBD9 adJrYqc7bw/Zw== Date: Wed, 20 Jan 2021 16:26:03 +0000 (GMT) From: Peter Stephenson To: jamil bio , zsh-workers@zsh.org Message-ID: <1204351835.3138771.1611159963588@mail2.virginmedia.com> In-Reply-To: References: Subject: Re: zsh adds empty string to local parameter when += is used MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Priority: 3 Importance: Medium X-Mailer: Open-Xchange Mailer v7.8.4-Rev72 X-Originating-IP: 147.161.167.116 X-Originating-Client: open-xchange-appsuite X-CMAE-Envelope: MS4xfBihAxc+03kwbFeehBiR8wx1c+b6nuU9zRee8DOOB6/KIow5OFY6W4PnRawYwlf9HDPA9HykWC9Fo8YQn751LzCDZuS+2TMWIa6PwxBysP0ykk8ubsbf k9Ak8hTnR++V2gY9T1k6+7vxbfke9tyKXOA//LfD+otRn2gEdw9ZJ1P9PK+W+J1mXVJQbUk4yrpUZ8ddRoZbQpvTUlDKRot34vNCJtjQILhNkzZ4ngqY5GAw TqhhfXgm9Xi67xX6keDXHw== X-Seq: 47852 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: List-Subscribe: List-Unsubscribe: List-Post: List-Owner: List-Archive: Archived-At: > On 20 January 2021 at 16:16 jamil bio wrote: > func() > { > =C2=A0=C2=A0=C2=A0=C2=A0local REPLY=C2=A0 files >=20 > =C2=A0=C2=A0=C2=A0=C2=A0#unset files > =C2=A0=C2=A0=C2=A0=C2=A0for REPLY in file1 file2 file3 > =C2=A0=C2=A0=C2=A0=C2=A0do > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 files+=3D( "$REPLY" ) > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 echo "${#files[@]} -- ${files= [@]}" > =C2=A0=C2=A0=C2=A0=C2=A0done > } >=20 > func >=20 > 2 --=C2=A0 file1 > 3 --=C2=A0 file1 file2 > 4 --=C2=A0 file1 file2 file3 Yes, this is a bit weird, but it's explicable. "local files" makes the variable "files" into a scalar, so if it's ever referred to it will return an empty string. The first time the function executes files+-( "$REPLY" ) it retrieves the existing $files. At this point that's just an empty string. Then it adds the new element and assigns back to files. It's only at this point that files becomes an array. You can fix the problem by declaring files as an array, local -a files pws