From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16106 invoked by alias); 8 Mar 2017 22:30:13 -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: 40798 Received: (qmail 13243 invoked from network); 8 Mar 2017 22:30:13 -0000 X-Qmail-Scanner-Diagnostics: from mail-wm0-f51.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(74.125.82.51):SA:0(-0.0/5.0):. Processed in 1.696119 secs); 08 Mar 2017 22:30:13 -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=-0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_PASS, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.1 X-Envelope-From: stephane.chazelas@gmail.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: pass (ns1.primenet.com.au: SPF record at _netblocks.google.com designates 74.125.82.51 as permitted sender) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:mail-followup-to:references :mime-version:content-disposition:in-reply-to:user-agent; bh=9bKh47IySnoBDdVgQEsMOoyX/qum5epyv6B9SslutUE=; b=pnpikYnKyEufUVC0kuy/xVSAzgzEx3+2CPMHdimTbnVYEoITVeoWxVhv87nVBEbauL L2phETupmjsgl4+CDgDV38DxkV9QMuL5QSF3MCELxvJ42wzNqDVqHhkt7h4KbjkNPYDT nKC+RM2L9qawSw8Vwiml4k+VPxShGhvEzSrspHxBBOjvDEzcFikd34CpT+SKmDOgl1ko he/mSIuhr9jog69lQA9iSTD7lr1ppvkocTjsItCi3lAoNV6DZwYD7v8oIqezykvBx7kD zrwQ0i4fIrztEkLPc/oflmqFWjH12YAOPsjD4xPKHnjDoPrl1+/E/rIWdLNbBF25wqO6 3ltA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id :mail-followup-to:references:mime-version:content-disposition :in-reply-to:user-agent; bh=9bKh47IySnoBDdVgQEsMOoyX/qum5epyv6B9SslutUE=; b=EAqCwW8S8rP+o/mevEcj95j3AuC9/T5AGJBcCNFSKPoIzlamPfGvSdIFfWxCvw9R4v go4DVX/Ozx2fGPDj5nWhPEcVgc257bOtLeYafKMX23psPWOqJNovc+tjXUefxUY1xGC+ hLJihbvNCyHPpiaYsxskmFy2/koZOj/NKTdOdJVU4IebiQZj/ab5R/gMB7rJxHC4J17I B9TqYRpTgQSjWfAu2K8hdfdvUPSZHB74rwCZtIIVibFtlu+XbQ131bliQe4EcMog65wX s/Cf8bThZsDhlm/aqqRGGmjGtQEVqVCV20skPP7vjiajZgl0sMunus7GTlySB+xDpjp2 coig== X-Gm-Message-State: AMke39nyCNAHaWsZcGE0F6uF9S/qEfhKrmO7dyIS2y5K1c11zs3vzaafLvS6WNWEl9Rbng== X-Received: by 10.28.224.69 with SMTP id x66mr25217588wmg.21.1489012206183; Wed, 08 Mar 2017 14:30:06 -0800 (PST) Date: Wed, 8 Mar 2017 22:30:03 +0000 From: Stephane Chazelas To: Peter Stephenson Cc: Zsh hackers list Subject: Re: export "a=b"=~ Message-ID: <20170308223003.GC21381@chaz.gmail.com> Mail-Followup-To: Peter Stephenson , Zsh hackers list References: <20170308085000.GA6975@chaz.gmail.com> <20170308132345.GA18254@fujitsu.shahaf.local2> <20170308154428.466197e9@pwslap01u.europe.root.pri> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170308154428.466197e9@pwslap01u.europe.root.pri> User-Agent: Mutt/1.5.24 (2015-08-30) 2017-03-08 15:44:28 +0000, Peter Stephenson: [...] > > Same behaviour in latest master. This is because the MAGIC_EQUAL_SUBST > > option, even when unset, implicitly applies to "export". (The > > declaration of "export" in builtins.c has the BINF_MAGICEQUALS flag > > since before CVS.) [...] > So I think the following ought to work without any significant side > effects. I've renamed the controlling variable for clarity; the older, > more general, name is now purely historical. [...] Some variations between shells: $ ksh93 -c 'export a=~; echo $a; export "a"=~; echo $a; "export" a=~; echo $a; export a\=~; echo $a' /home/chazelas ~ /home/chazelas ~ $ bash -c 'export a=~; echo $a; export "a"=~; echo $a; "export" a=~; echo $a; export a\=~; echo $a' /home/chazelas ~ /home/chazelas ~ $ ARGV0=sh bash -c 'export a=~; echo $a; export "a"=~; echo $a; "export" a=~; echo $a; export a\=~; echo $a' /home/chazelas ~ ~ ~ $ mksh -c 'export a=~; echo $a; export "a"=~; echo $a; "export" a=~; echo $a; export a\=~; echo $a' /home/chazelas /home/chazelas /home/chazelas ~ $ dash -c 'export a=~; echo $a; export "a"=~; echo $a; "export" a=~; echo $a; export a\=~; echo $a' ~ ~ ~ ~ $ yash -c 'export a=~; echo $a; export "a"=~; echo $a; "export" a=~; echo $a; export a\=~; echo $a' ~ ~ ~ ~ $ zsh -c 'export a=~; echo $a; export "a"=~; echo $a; "export" a=~; echo $a; export a\=~; echo $a' /home/chazelas /home/chazelas ~ ~ $ zsh -o magicequalsubst -c 'export a=~; echo $a; export "a"=~; echo $a; "export" a=~; echo $a; export a\=~; echo $a' /home/chazelas /home/chazelas /home/chazelas ~ After your patch: $ ./Src/zsh -c 'export a=~; echo $a; export "a"=~; echo $a; "export" a=~; echo $a; export a\=~; echo $a' /home/chazelas ~ ~ ~ $ ./Src/zsh -o magicequalsubst -c 'export a=~; echo $a; export "a"=~; echo $a; "export" a=~; echo $a; export a\=~; echo $a' /home/chazelas ~ /home/chazelas ~ I can't say I have a strong opinion on what is best. I like magic_equal_subst myself and I'm annoyed when ./configure --prefix=~ doesn't work or sudo JAVA_HOME=~/jre... And I tend to quote ~ when in doubt and don't want it to be expanded. Note that in bash (when not in posix mode) echo a=~ expands (so covers my sudo case above) but echo --prefix=~ does not. What's on the left of the = has to look like a valid literal unquoted bash variable name. Started from: https://askubuntu.com/questions/890415/why-couldnt-i-use-instead-of-home-username-when-giving-the-file-pat/890472#890472 -- Stephane