diff --git a/NEWS b/NEWS index 608bc44d1..6ce0d9a77 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,11 @@ For full details, see the git log at: https://github.com/ksh93/ksh Any uppercase BUG_* names are modernish shell bug IDs. +2020-07-10: + +- Fixed a bug that caused types created with 'typeset -T' to throw an error + when used if the type name started with a lowercase 'a'. + 2020-07-09: - Fixed a crash on syntax error when sourcing/dotting multiple files. diff --git a/src/cmd/ksh93/include/version.h b/src/cmd/ksh93/include/version.h index f172acf12..ffc718534 100644 --- a/src/cmd/ksh93/include/version.h +++ b/src/cmd/ksh93/include/version.h @@ -17,4 +17,4 @@ * David Korn * * * ***********************************************************************/ -#define SH_RELEASE "93u+m 2020-07-09" +#define SH_RELEASE "93u+m 2020-07-10" diff --git a/src/cmd/ksh93/sh/parse.c b/src/cmd/ksh93/sh/parse.c index 047808bb3..9f07e552a 100644 --- a/src/cmd/ksh93/sh/parse.c +++ b/src/cmd/ksh93/sh/parse.c @@ -1477,7 +1477,7 @@ static Shnode_t *simple(Lex_t *lexp,int flag, struct ionod *io) t->comnamp = (void*)np; if(nv_isattr(np,BLT_DCL)) { - assignment = 1+(*argp->argval=='a'); + assignment = 1; if(np==SYSTYPESET) lexp->intypeset = 1; key_on = 1; diff --git a/src/cmd/ksh93/tests/types.sh b/src/cmd/ksh93/tests/types.sh index 95135abd8..c2a6994b9 100755 --- a/src/cmd/ksh93/tests/types.sh +++ b/src/cmd/ksh93/tests/types.sh @@ -642,5 +642,8 @@ bar.foo+=(bam) # 'typeset -RF' should not create variables that cause crashes "$SHELL" -c 'typeset -RF foo=1; test $foo' || err_exit 'typeset -RF does not work' +# Type names that have 'a' as the first letter should be functional +"$SHELL" -c 'typeset -T al=(typeset bar); al foo=(bar=testset)' || err_exit "type names that start with 'a' don't work" + # ====== exit $((Errors<125?Errors:125))