summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--generic/tclStringObj.c23
-rw-r--r--tests/format.test6
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}