Hello.
dash have bug for ${#10} and etc: ignores 0... in name (without errors :)
$ foo() { echo "length 10-th arg '${10}' is ${#10}"; }
$ foo a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11
length 10-th arg 'a10' is 2
But need:
length 10-th arg 'a10' is 3
Micro patch attached
--w
vodz
--- parser.c~ 2021-02-04 00:51:34.000000000 +0400
+++ parser.c 2021-02-05 12:42:43.616635640 +0400
@@ -1274,7 +1274,7 @@
do {
STPUTC(c, out);
c = pgetc_eatbnl();
- } while (!subtype && is_digit(c));
+ } while ((!subtype || subtype == VSLENGTH) &&
is_digit(c));
} else if (c != '}') {
int cc = c;