summaryrefslogtreecommitdiffstats
path: root/generic/tclStringObj.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2016-12-14 15:03:13 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2016-12-14 15:03:13 (GMT)
commit76e88df0f7df0d886ef26fad352fe22ac87df18d (patch)
tree6aa685119f2b5ff380f1049c9c645853b996e560 /generic/tclStringObj.c
parent6da0c767cd83c18aa8a2c152ad6b0298ea4f28ab (diff)
parent82d0258052c45ac6767727539635540dc724182c (diff)
downloadtcl-76e88df0f7df0d886ef26fad352fe22ac87df18d.zip
tcl-76e88df0f7df0d886ef26fad352fe22ac87df18d.tar.gz
tcl-76e88df0f7df0d886ef26fad352fe22ac87df18d.tar.bz2
Implement all possible TCL_LL_MODIFIER formats in Tcl_ObjPrintf(), can be "ll", "I64" and "L", whatever the platform defines for long long integer. With test-cases.
Diffstat (limited to 'generic/tclStringObj.c')
-rw-r--r--generic/tclStringObj.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c
index 9471381..db233b3 100644
--- a/generic/tclStringObj.c
+++ b/generic/tclStringObj.c
@@ -1865,6 +1865,14 @@ Tcl_AppendFormatToObj(
useWide = 1;
#endif
}
+ } else if ((ch == 'I') && (format[1] == '6') && (format[2] == '4')) {
+ format += (step + 2);
+ step = Tcl_UtfToUniChar(format, &ch);
+ useBig = 1;
+ } else if (ch == 'L') {
+ format += step;
+ step = Tcl_UtfToUniChar(format, &ch);
+ useBig = 1;
}
format += step;
@@ -2509,6 +2517,17 @@ AppendPrintfToObjVA(
++size;
p++;
break;
+ case 'L':
+ size = 2;
+ p++;
+ break;
+ case 'I':
+ if (p[1]=='6' && p[2]=='4') {
+ p += 2;
+ size = 2;
+ }
+ p++;
+ break;
case 'h':
size = -1;
default: