diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2016-12-14 15:03:13 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2016-12-14 15:03:13 (GMT) |
commit | 76e88df0f7df0d886ef26fad352fe22ac87df18d (patch) | |
tree | 6aa685119f2b5ff380f1049c9c645853b996e560 /generic/tclStringObj.c | |
parent | 6da0c767cd83c18aa8a2c152ad6b0298ea4f28ab (diff) | |
parent | 82d0258052c45ac6767727539635540dc724182c (diff) | |
download | tcl-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.c | 19 |
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: |