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>