summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2017-06-29 13:18:33 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2017-06-29 13:18:33 (GMT)
commit5a901cd82780d88b242ecb0b4b08169c771aa467 (patch)
tree85e81ace2a92823af6b8edfb58836b176666db0e
parent6f051ae485f04ee08a667226febf869a38dfced1 (diff)
parentf5cec2b1ff8efe0e8ebd0c5f5b121ae0bf8055bb (diff)
downloadtcl-jn_0d_radix_prefix.zip
tcl-jn_0d_radix_prefix.tar.gz
tcl-jn_0d_radix_prefix.tar.bz2
-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}