summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2019-11-06 12:34:27 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2019-11-06 12:34:27 (GMT)
commit9348f2301275b473b59425310f3ac4beb7e545c0 (patch)
treea6937da657fc599c9f566973b7b589ce3f410962
parent2b8429142401960e12bcece0205061dd68071ded (diff)
downloadtcl-9348f2301275b473b59425310f3ac4beb7e545c0.zip
tcl-9348f2301275b473b59425310f3ac4beb7e545c0.tar.gz
tcl-9348f2301275b473b59425310f3ac4beb7e545c0.tar.bz2
Fix tclScan.c, not generating a string representation any more with unsigned wideints
-rw-r--r--generic/tcl.h2
-rw-r--r--generic/tclScan.c5
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);
}