diff options
| author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2019-11-07 15:39:37 (GMT) |
|---|---|---|
| committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2019-11-07 15:39:37 (GMT) |
| commit | d6d77a73bef59053e103b7d28390ade0e651a8cc (patch) | |
| tree | 2b5525e94553d4e1348506e2c741cf863d9e8fcb /generic/tclScan.c | |
| parent | 9348f2301275b473b59425310f3ac4beb7e545c0 (diff) | |
| parent | 22c56e716cf046ee48897490b5b2264d8c9cb328 (diff) | |
| download | tcl-d6d77a73bef59053e103b7d28390ade0e651a8cc.zip tcl-d6d77a73bef59053e103b7d28390ade0e651a8cc.tar.gz tcl-d6d77a73bef59053e103b7d28390ade0e651a8cc.tar.bz2 | |
Merge 8.7
Diffstat (limited to 'generic/tclScan.c')
| -rw-r--r-- | generic/tclScan.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/generic/tclScan.c b/generic/tclScan.c index 24b4374..7a15d78 100644 --- a/generic/tclScan.c +++ b/generic/tclScan.c @@ -581,9 +581,6 @@ Tcl_ScanObjCmd( Tcl_UniChar ch = 0, sch = 0; Tcl_Obj **objs = NULL, *objPtr = NULL; int flags; - char buf[513]; /* Temporary buffer to hold scanned number - * strings before they are passed to - * strtoul. */ (void)dummy; if (objc < 3) { @@ -973,8 +970,13 @@ Tcl_ScanObjCmd( } } if ((flags & SCAN_UNSIGNED) && (value < 0)) { - sprintf(buf, "%lu", value); /* INTL: ISO digit */ - Tcl_SetStringObj(objPtr, buf, -1); +#ifdef TCL_WIDE_INT_IS_LONG + mp_int big; + TclBNInitBignumFromWideUInt(&big, (unsigned long)value); + Tcl_SetBignumObj(objPtr, &big); +#else + TclSetIntObj(objPtr, (unsigned long)value); +#endif } else { TclSetIntObj(objPtr, value); } |
