Re: [PATCH v2 0/8] commit-graph: segfault & other fixes for broken graphs
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Mar 15, 2019, 07:47 UTC
- Message-ID
- <CAPig+cTZAhRekr0Yvmtb-gTEATEX19RO0=Zh-ycCPkyEc0OxxA@mail.gmail.com>
- In-Reply-To
- <20190314214740.23360-1-avarab@gmail.com>
On Thu, Mar 14, 2019 at 5:47 PM Ævar Arnfjörð Bjarmason <avarab@gmail.com> wrote:
Show 17 quoted lines
> I fixed a test to avoid the pattern a0a630192d
> (t/check-non-portable-shell: detect "FOO=bar shell_func", 2018-07-13)
> tests for. The new pattern is more obvious.
>
> As an aside I don't get how that doesn't work as intended from the
> commit message of that commit & its series.
>
> $ cat /tmp/x.sh
> sayit() { echo "saying '$SAY'"; };
> SAY=hi sayit; sayit;
> $ sh /tmp/x.sh
> saying 'hi'
> saying ''
>
> I get the same thing on bash, dash, NetBSD ksh, Solaris's shell &
> AIX's. I.e. it's explicitly not assigning $SAY for the duration of the
> shell [...]The shells you tested may all behave "sanely" given that input, but not all shells do. For instance, on MacOS, the factory-supplied bash 3.2.57 behaves in the "broken" way in 'sh' compatibility mode:
$ cat /tmp/x.sh sayit() { echo "saying '$SAY'"; }; SAY=hi sayit; sayit;
$ /bin/sh /tmp/x.sh saying 'hi' saying 'hi'
$ /bin/bash /tmp/x.sh saying 'hi' saying ''