From 0f676d700286952cb2db293c6dd1320dd31e7fe9 Mon Sep 17 00:00:00 2001 From: dgp Date: Mon, 12 Sep 2005 14:31:15 +0000 Subject: 2005-09-12 Don Porter * generic/tclStringObj.c (TclAppendFormattedObjs): Bug fix: make sure %ld formats force the collection of a wide value, when the value could be a different long. --- ChangeLog | 6 ++++++ generic/tclStringObj.c | 10 ++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 85fe7f2..0cc4431 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2005-09-12 Don Porter + + * generic/tclStringObj.c (TclAppendFormattedObjs): Bug fix: + make sure %ld formats force the collection of a wide value, when + the value could be a different long. + 2005-09-09 Andreas Kupries * generic/tclIORChan.c (RcDecodeEventMask): Added missing type diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c index 3a042ce..dd1a2eb 100644 --- a/generic/tclStringObj.c +++ b/generic/tclStringObj.c @@ -33,7 +33,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclStringObj.c,v 1.42 2005/09/09 19:24:32 dgp Exp $ */ + * RCS: @(#) $Id: tclStringObj.c,v 1.43 2005/09/12 14:31:15 dgp Exp $ */ #include "tclInt.h" @@ -1921,13 +1921,15 @@ TclAppendFormattedObjs(interp, baseObj, format, objc, objv) Tcl_WideInt w; int isNegative = 0; - if (Tcl_GetLongFromObj(NULL, segment, &l) != TCL_OK) { + if (useWide) { + if (Tcl_GetWideIntFromObj(interp, segment, &w) != TCL_OK) { + goto error; + } + } else if (Tcl_GetLongFromObj(NULL, segment, &l) != TCL_OK) { if (Tcl_GetWideIntFromObj(interp, segment, &w) != TCL_OK) { goto error; } l = Tcl_WideAsLong(w); - } else if (useWide) { - w = Tcl_LongAsWide(l); } if (useShort) { -- cgit v0.12