1
0
Fork 0
mirror of git://git.code.sf.net/p/cdesktopenv/code synced 2025-03-09 15:50:02 +00:00

typeset -T shouldn't list types created with enum (#340)

Listing types with 'typeset -T' will list not only types created with
typeset, but also types created with enum. However, the types created
by enum are not displayed correctly in the resulting output:

$ enum Foo_t=(foo bar)
$ typeset -T
typeset -T Foo_t
typeset -T Foo_t=fo)

The fix for this bug was backported from ksh93v- 2013-10-08.

src/cmd/ksh93/sh/nvtype.c:
- sh_outtype(): Skip over enums when listing types with 'typeset -T'.
This commit is contained in:
Johnothan King 2021-11-20 00:41:49 -08:00 committed by Martijn Dekker
parent cb961788a8
commit e554a07c56
4 changed files with 16 additions and 2 deletions

View file

@ -633,5 +633,11 @@ bar.foo+=(bam)
# 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"
# ======
# 'typeset -T' shouldn't list types created by enum
got=$($SHELL -c 'enum Foo_t=(foo bar); typeset -T')
[[ -z $got ]] || err_exit "Types created by enum are listed with 'typeset -T'" \
"(got $(printf %q "$got"))"
# ======
exit $((Errors<125?Errors:125))