diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2017-06-29 13:18:33 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2017-06-29 13:18:33 (GMT) |
commit | 5a901cd82780d88b242ecb0b4b08169c771aa467 (patch) | |
tree | 85e81ace2a92823af6b8edfb58836b176666db0e | |
parent | 6f051ae485f04ee08a667226febf869a38dfced1 (diff) | |
parent | f5cec2b1ff8efe0e8ebd0c5f5b121ae0bf8055bb (diff) | |
download | tcl-jn_0d_radix_prefix.zip tcl-jn_0d_radix_prefix.tar.gz tcl-jn_0d_radix_prefix.tar.bz2 |
merge trunkjn_0d_radix_prefix
-rw-r--r-- | generic/tclStringObj.c | 23 | ||||
-rw-r--r-- | tests/format.test | 6 |
2 files changed, 10 insertions, 19 deletions
diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c index 6457eb3..54edb06 100644 --- a/generic/tclStringObj.c +++ b/generic/tclStringObj.c @@ -2036,14 +2036,9 @@ Tcl_AppendFormatToObj( Tcl_AppendToObj(segment, "0o", 2); segmentLimit -= 2; break; - case 'X': -#if TCL_MAJOR_VERSION < 9 - Tcl_AppendToObj(segment, "0X", 2); - segmentLimit -= 2; - break; -#endif case 'p': case 'x': + case 'X': Tcl_AppendToObj(segment, "0x", 2); segmentLimit -= 2; break; @@ -2333,6 +2328,12 @@ Tcl_AppendFormatToObj( errCode = "OVERFLOW"; goto errorMsg; } + if (ch == 'A') { + char *p = TclGetString(segment) + 1; + *p = 'x'; + p = strchr(p, 'P'); + if (p) *p = 'p'; + } break; } default: @@ -2344,16 +2345,6 @@ Tcl_AppendFormatToObj( goto error; } - switch (ch) { - case 'A': { - char *p = TclGetString(segment); - p[1] = 'x'; - p = strchr(p, 'P'); - if (p) *p = 'p'; - break; - } - } - if (width>0 && numChars<0) { numChars = Tcl_GetCharLength(segment); } diff --git a/tests/format.test b/tests/format.test index 53b8919..4d312db 100644 --- a/tests/format.test +++ b/tests/format.test @@ -28,7 +28,7 @@ test format-1.1 {integer formatting} { } { 34 16923 -12 -1} test format-1.2 {integer formatting} { format "%4d %4d %4d %4d %d %#x %#X" 6 34 16923 -12 -1 14 12 -} { 6 34 16923 -12 -1 0xe 0XC} +} { 6 34 16923 -12 -1 0xe 0xC} test format-1.3 {integer formatting} longIs32bit { format "%4u %4u %4u %4u %d %#o" 6 34 16923 -12 -1 0 } { 6 34 16923 4294967284 -1 0} @@ -54,10 +54,10 @@ test format-1.7.1 {integer formatting} longIs64bit { } { 6 22 421b fffffffffffffff4} test format-1.8 {integer formatting} longIs32bit { format "%#x %#x %#X %#X %#x" 0 6 34 16923 -12 -1 -} {0 0x6 0X22 0X421B 0xfffffff4} +} {0 0x6 0x22 0x421B 0xfffffff4} test format-1.8.1 {integer formatting} longIs64bit { format "%#x %#x %#X %#X %#x" 0 6 34 16923 -12 -1 -} {0 0x6 0X22 0X421B 0xfffffffffffffff4} +} {0 0x6 0x22 0x421B 0xfffffffffffffff4} test format-1.9 {integer formatting} longIs32bit { format "%#5x %#20x %#20x %#20x %#20x" 0 6 34 16923 -12 -1 } { 0 0x6 0x22 0x421b 0xfffffff4} |