diff options
| author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2024-12-13 10:18:58 (GMT) |
|---|---|---|
| committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2024-12-13 10:18:58 (GMT) |
| commit | bd947a80401c378806231274f5c68acf9c73d932 (patch) | |
| tree | 753cfb504a418b8bfa3b8de38f64a94a6330b510 /generic/tclScan.c | |
| parent | 5473a7ca5995fdfb877d2efbb1f30285cb1c6237 (diff) | |
| parent | c3d210ed20be2da2eb3ac6b0e006acff4ce48532 (diff) | |
| download | tcl-bd947a80401c378806231274f5c68acf9c73d932.zip tcl-bd947a80401c378806231274f5c68acf9c73d932.tar.gz tcl-bd947a80401c378806231274f5c68acf9c73d932.tar.bz2 | |
Fix [c4f365470e]: Size modifiers j, q, z, t not implemented. Update changes.md
Diffstat (limited to 'generic/tclScan.c')
| -rw-r--r-- | generic/tclScan.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/generic/tclScan.c b/generic/tclScan.c index 48d2bcc..ba7cb72 100644 --- a/generic/tclScan.c +++ b/generic/tclScan.c @@ -708,7 +708,7 @@ Tcl_ScanObjCmd( if (*formatEnd == '$') { format = formatEnd+1; format += TclUtfToUniChar(format, &ch); - objIndex = (int) value - 1; + objIndex = (int)value - 1; } } @@ -718,7 +718,7 @@ Tcl_ScanObjCmd( if ((ch < 0x80) && isdigit(UCHAR(ch))) { /* INTL: "C" locale. */ unsigned long long ull; - ull = strtoull(format-1, (char **) &format, 10); /* INTL: "C" locale. */ + ull = strtoull(format-1, (char **)&format, 10); /* INTL: "C" locale. */ assert(ull <= TCL_SIZE_MAX); /* Else ValidateFormat should've error'ed */ width = (Tcl_Size)ull; format += TclUtfToUniChar(format, &ch); @@ -731,6 +731,17 @@ Tcl_ScanObjCmd( */ switch (ch) { + case 'z': + case 't': + if (sizeof(void *) > sizeof(int)) { + flags |= SCAN_LONGER; + } + format += TclUtfToUniChar(format, &ch); + break; + case 'L': + flags |= SCAN_BIG; + format += TclUtfToUniChar(format, &ch); + break; case 'l': if (*format == 'l') { flags |= SCAN_BIG; @@ -739,7 +750,8 @@ Tcl_ScanObjCmd( break; } /* FALLTHRU */ - case 'L': + case 'j': + case 'q': flags |= SCAN_LONGER; /* FALLTHRU */ case 'h': |
