From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16595 invoked by alias); 5 Oct 2017 05:24:46 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 41814 Received: (qmail 29666 invoked by uid 1010); 5 Oct 2017 05:24:46 -0000 X-Qmail-Scanner-Diagnostics: from mail-pf0-f181.google.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(209.85.192.181):SA:0(-4.7/5.0):. Processed in 2.408756 secs); 05 Oct 2017 05:24:46 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_PASS,T_DKIM_INVALID autolearn=ham autolearn_force=no version=3.4.1 X-Envelope-From: schaefer@brasslantern.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20150623.gappssmtp.com; s=20150623; h=from:message-id:date:in-reply-to:comments:references:to:subject :mime-version; bh=QSt548jqMCtyy+wQPTSqMNwqpqOy9jccoLIZ2VdhHAE=; b=icHUjoaMFVbkHO3Ux4moksO6WKYniGv1GNIVqbO9//UhwZv4jUYUpr/DY7m0sC7o3k FO3ki3M+M3Bk7TR3/0PSdb1uFyEe1684wAtJxNZMHh4APQuqg0fanihoC2Ss5LF6Gxnl PjqtiJ4gnwz+hwI7lcvIBVi79kxxrBeOcGWpji/6i4LxBdBLm8+RrcPw7rYyLpJGZzCq FdTzHSKKruOLpsTsiOeNVcb+xt5XxykKYoSDAmVD+BOEkRk842HoSs6Yzj0lIGee2uAg vKDgYGOeCxg3ALpFrCmrhZTdqPxLnMnnRZaKT247bRhZNGxBE6KGsdmMq/tjGBMgTs+C L52Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:date:in-reply-to:comments :references:to:subject:mime-version; bh=QSt548jqMCtyy+wQPTSqMNwqpqOy9jccoLIZ2VdhHAE=; b=eRZw497vMYyAqe8Z+YGRReIa79St8F6YBQ12jZ//CiIQDLCQxGNrEiXVfru6BFzyRo D4Y0s5meb9/XJbO3eiVUy999kfjvj+97g2WVp4bHtOj0iZB7AGqh9GHZsYhw1OaUIAQU x3TUhfsRL41IEjw5+OjVaSAFxh0DNuhPxX4oR6eJr2wijGUZF0KABAjLbEpJVzTtqqjK d53psg9G7vM/M2fcQkAfPidNH8paQM4AjJtOrGUruOOc4uqDulv8hLAVyhwvIUhhKNir sWX8Haj9R3B+DtVqEW7wTLJ7iI685RTO2oL7nlPtTsxtRD55IO7SObjxXfCmZqsqqD58 qGJw== X-Gm-Message-State: AMCzsaWcvs/ZsFBFKX2kRo5b+LZZ5317gYfd2h5uQiXzdkTXrsPVEeAv NAJys1nvme72xckM61FUtGLKecUA X-Google-Smtp-Source: AOwi7QCE204WbuS3JVI664djnXETiS7HVIt9OFM7FeXvy2hUZTZwXNK6aUvqacK8Wqnfw7UxRbODUA== X-Received: by 10.84.192.131 with SMTP id c3mr9121747pld.435.1507181079217; Wed, 04 Oct 2017 22:24:39 -0700 (PDT) From: Bart Schaefer Message-Id: <171004222450.ZM7062@torch.brasslantern.com> Date: Wed, 4 Oct 2017 22:24:50 -0700 In-Reply-To: <06fb6a91-6766-bbd7-9543-cbafe704ee59@inlv.org> Comments: In reply to Martijn Dekker "[bug] sh: tilde expansion after field splitting" (Oct 5, 12:20am) References: <06fb6a91-6766-bbd7-9543-cbafe704ee59@inlv.org> X-Mailer: OpenZMail Classic (0.9.2 24April2005) To: Zsh hackers list Subject: Re: [bug] sh: tilde expansion after field splitting MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii On Oct 5, 12:20am, Martijn Dekker wrote: } } POSIX says tilde expansion should be done before parameter expansion [...] } zsh did this correctly up to version 5.0.8; as of 5.1, it appears to do } tilde expansion *after* field splitting, and only from the second field on. This is a change in the effects of SH_FILE_EXPANSION when an array is synthesized by word splitting. Traced this to here: diff --git a/Src/subst.c b/Src/subst.c index 81d34d2..021d234 100644 --- a/Src/subst.c +++ b/Src/subst.c @@ -3834,8 +3834,14 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int pf_flags) y = dupstring(nulstring); insertlinknode(l, n, (void *) y), incnode(n); } - if (eval) - n = on; + /* This used to omit restoring of *str and instead test + * if (eval) + * n = on; + * but that causes strange behavior of history modifiers when + * applied across all values of an array. What is magic about + * eval here that *str seemed not to need restoring? + */ + *str = getdata(n = on); } else { /* * Scalar value. Handle last minute transformations Apparently the answer to the question in that comment has something to do with shfileexpansion. Anyone have additional clues?