summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorstanton <stanton>1999-05-07 20:07:35 (GMT)
committerstanton <stanton>1999-05-07 20:07:35 (GMT)
commita859402af1acd94644d63a79eb8e96ada55060d4 (patch)
treef046004c395fea832db79ce3ba703b4c59e8f154
parent3d35353fe96d8703f973e4410629c560ff3b1611 (diff)
downloadtcl-a859402af1acd94644d63a79eb8e96ada55060d4.zip
tcl-a859402af1acd94644d63a79eb8e96ada55060d4.tar.gz
tcl-a859402af1acd94644d63a79eb8e96ada55060d4.tar.bz2
* generic/tclResult.c (Tcl_AppendResultVA):
* generic/tclStringObj.c (Tcl_AppendStringsToObjVA): Fixed to copy arglist using memcpy instead of assignment so it works properly on OS/390. [Bug: 1997]
-rw-r--r--generic/tclResult.c4
-rw-r--r--generic/tclStringObj.c7
2 files changed, 6 insertions, 5 deletions
diff --git a/generic/tclResult.c b/generic/tclResult.c
index 002437d..2f18b51 100644
--- a/generic/tclResult.c
+++ b/generic/tclResult.c
@@ -8,7 +8,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclResult.c,v 1.2 1999/04/16 00:46:53 stanton Exp $
+ * RCS: @(#) $Id: tclResult.c,v 1.3 1999/05/07 20:07:35 stanton Exp $
*/
#include "tclInt.h"
@@ -475,7 +475,7 @@ Tcl_AppendResultVA (interp, argList)
* Scan through all the arguments to see how much space is needed.
*/
- tmpArgList = argList;
+ memcpy ((VOID *) &tmpArgList, (VOID *) &argList, sizeof (tmpArgList));
newSpace = 0;
while (1) {
string = va_arg(tmpArgList, char *);
diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c
index e7d3ae7..ea0cbd7 100644
--- a/generic/tclStringObj.c
+++ b/generic/tclStringObj.c
@@ -14,7 +14,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.5 1999/04/28 17:06:06 stanton Exp $
+ * RCS: @(#) $Id: tclStringObj.c,v 1.6 1999/05/07 20:07:35 stanton Exp $
*/
#include "tclInt.h"
@@ -426,10 +426,11 @@ Tcl_AppendStringsToObjVA (objPtr, argList)
/*
* Figure out how much space is needed for all the strings, and
* expand the string representation if it isn't big enough. If no
- * bytes would be appended, just return.
+ * bytes would be appended, just return. Note that on some platforms
+ * (notably OS/390) the argList is an array so we need to use memcpy.
*/
- tmpArgList = argList;
+ memcpy ((VOID *) &tmpArgList, (VOID *) &argList, sizeof (tmpArgList));
newLength = oldLength = objPtr->length;
while (1) {
string = va_arg(tmpArgList, char *);