summary refs log tree commit diff
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2019-05-27 13:39:37 +0800
committerHerbert Xu <herbert@gondor.apana.org.au>2020-01-20 17:52:07 +0800
commit7710a926b321879b84bf349b865b1dd4c52083f8 (patch)
tree224c3b41059e522904758d705110de777e19c611
parentexpand: Fix trailing newlines processing in backquote expanding (diff)
downloaddash-7710a926b321879b84bf349b865b1dd4c52083f8.tar.gz
dash-7710a926b321879b84bf349b865b1dd4c52083f8.zip
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>
-rw-r--r--src/parser.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/parser.c b/src/parser.c
index 4bda42e..b318b08 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -1268,7 +1268,7 @@ varname:
 			do {
 				STPUTC(c, out);
 				c = pgetc_eatbnl();
-			} while (is_digit(c));
+			} while (!subtype && is_digit(c));
 		} else if (c != '}') {
 			int cc = c;
 
td>Rehash on reloadJune McEnroe 2013-11-02Remove git prompt from titleJune McEnroe 2013-11-02Update zsh syntax highlighting and configJune McEnroe 2013-10-31Fix host in prompt, part twoJune McEnroe 2013-10-31Fix host in promptJune McEnroe 2013-10-31Wow look reorganized zsh configJune McEnroe 2013-10-30Show hostname in prompt over SSHJune McEnroe 2013-10-30Only load chruby if it existsJune McEnroe 2013-10-27Add auto-title stuff to zshJune McEnroe 2013-10-26Add gvim alias to silence stderrJune McEnroe 2013-10-26Add home.programble.me functionJune McEnroe 2013-10-14Remove unused configsJune McEnroe 2013-10-14Add therefore, because, cards compose sequencesJune McEnroe 2013-10-14Global git ignore .swo filesJune McEnroe 2013-10-14Add Heroku to zshJune McEnroe 2013-09-23Add gst git stash aliasJune McEnroe 2013-09-06Disable some options in terminalsJune McEnroe 2013-09-05Only set colorscheme for gvimJune McEnroe 2013-09-05Remove pacman stuffJune McEnroe 2013-09-05Only alias hub if it existsJune McEnroe 2013-09-05chruby to ruby-2.0.0June McEnroe 2013-08-17Add vim-ragtagJune McEnroe 2013-08-14Add nvmJune McEnroe 2013-07-09Add title commandJune McEnroe 2013-06-09Use default client keysJune McEnroe 2013-06-09Run games in separate X serverJune McEnroe 2013-06-08Add game wrapper to kill/restart unclutterJune McEnroe 2013-06-08Update base16-vimJune McEnroe 2013-06-08Add git configJune McEnroe