summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2005-09-12 14:31:15 (GMT)
committerdgp <dgp@users.sourceforge.net>2005-09-12 14:31:15 (GMT)
commit0f676d700286952cb2db293c6dd1320dd31e7fe9 (patch)
tree1f92cde91eee5e0a365c457a3fcfff3dd37fc4f2
parent45909ec3aa0b65d35c86d597e659ad698ad37c75 (diff)
downloadtcl-0f676d700286952cb2db293c6dd1320dd31e7fe9.zip
tcl-0f676d700286952cb2db293c6dd1320dd31e7fe9.tar.gz
tcl-0f676d700286952cb2db293c6dd1320dd31e7fe9.tar.bz2
2005-09-12 Don Porter <dgp@users.sourceforge.net>
* 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.
-rw-r--r--ChangeLog6
-rw-r--r--generic/tclStringObj.c10
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 <dgp@users.sourceforge.net>
+
+ * 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 <andreask@activestate.com>
* 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) {