parser: Only accept single-digit parameter expansion outside of braces
commit7710a926b321879b84bf349b865b1dd4c52083f8
authorHerbert Xu <herbert@gondor.apana.org.au>
Mon, 27 May 2019 05:39:37 +0000 (27 13:39 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Mon, 20 Jan 2020 09:52:07 +0000 (20 17:52 +0800)
tree224c3b41059e522904758d705110de777e19c611
parentc4f4ee8ecf85834811c252fc1df3892863572bbd
parser: Only accept single-digit parameter expansion outside of braces

On Thu, Apr 25, 2019 at 01:39:52AM +0000, Michael Orlitzky wrote:
> The POSIX spec says,
>
>   The parameter name or symbol can be enclosed in braces, which are
>   optional except for positional parameters with more than one digit or
>   when parameter is a name and is followed by a character that could be
>   interpreted as part of the name.
>
> However, dash seems to diverge from that behavior when we get to $10:
>
>   $ cat test.sh
>   echo $10
>
>   $ dash ./test.sh one two three four five six seven eight nine ten
>   ten
>
>   $ bash ./test.sh one two three four five six seven eight nine ten
>   one0

This patch should fix the problem.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
src/parser.c