mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-03-09 15:50:02 +00:00
typeset: Correct numeric attribute change for floating points (#163)
This commit resolves the following incorrect variable assignments: $ unset a; typeset -uF a=2; typeset -p a typeset -X a=0x1.0000000000p+1 $ unset a; typeset -Fu a=2; typeset -p a typeset -X a=0x1.0000000000p+1 $ unset a; typeset -ulF a=2; typeset -p a typeset -l -X a=0x1.0000000000p+1 $ unset a; typeset -Ful a=2; typeset -p a typeset -l -X a=0x1.0000000000p+1 $ unset a; typeset -Eu a=2; typeset -p a typeset -E -X a=2 $ unset a; typeset -Eul a=2; typeset -p a typeset -l -E -X a=2 src/cmd/ksh93/bltins/typeset.c: - If the unsigned option (-u) was provided in conjunction with a floating point (-F) then due to a flag collision with NV_UNSIGN and NV_HEXFLOAT both having the value of NV_LTOU caused the floating point to become a hexadecimal floating point (-X) in error. Also, if a -E option flag was followed with a -u option then the resulting variable would be both a scientific notation and a hexadecimal floating point at the same time. src/cmd/ksh93/tests/attributes.sh: - Add regression tests. Co-authored-by: Martijn Dekker <martijn@inlv.org>
This commit is contained in:
parent
5a2e7dae67
commit
19c427435b
3 changed files with 37 additions and 2 deletions
3
NEWS
3
NEWS
|
@ -5,6 +5,9 @@ Any uppercase BUG_* names are modernish shell bug IDs.
|
|||
|
||||
2021-01-24:
|
||||
|
||||
- Fixed a bug in 'typeset': combining the -u option with -F or -E caused the
|
||||
variable to become a hexadecimal floating point in error.
|
||||
|
||||
- Fixed: an unquoted variable expansion evaluated in a DEBUG trap action caused
|
||||
IFS field splitting to be deactivated in code executed after the trap action.
|
||||
This bug was introduced in ksh 93t+ 2009-11-30.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue