From 9348f2301275b473b59425310f3ac4beb7e545c0 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Wed, 6 Nov 2019 12:34:27 +0000 Subject: Fix tclScan.c, not generating a string representation any more with unsigned wideints --- generic/tcl.h | 2 +- generic/tclScan.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/generic/tcl.h b/generic/tcl.h index 5822d86..6453ed7 100644 --- a/generic/tcl.h +++ b/generic/tcl.h @@ -361,7 +361,7 @@ typedef long LONG; */ #if !defined(TCL_WIDE_INT_TYPE)&&!defined(TCL_WIDE_INT_IS_LONG) -# if defined(_MSC_VER) || (defined(_WIN32) && !defined(__cplusplus)) +# if defined(_MSC_VER) || defined(_WIN32) # define TCL_WIDE_INT_TYPE __int64 # define TCL_LL_MODIFIER "I64" # if defined(_WIN64) diff --git a/generic/tclScan.c b/generic/tclScan.c index 67138e6..24b4374 100644 --- a/generic/tclScan.c +++ b/generic/tclScan.c @@ -934,8 +934,9 @@ Tcl_ScanObjCmd( } } if ((flags & SCAN_UNSIGNED) && (wideValue < 0)) { - sprintf(buf, "%" TCL_LL_MODIFIER "u", wideValue); - Tcl_SetStringObj(objPtr, buf, -1); + mp_int big; + TclBNInitBignumFromWideUInt(&big, (Tcl_WideUInt)wideValue); + Tcl_SetBignumObj(objPtr, &big); } else { TclSetIntObj(objPtr, wideValue); } -- cgit v0.12