summaryrefslogtreecommitdiffstats
path: root/generic/tclStringObj.c
diff options
context:
space:
mode:
Diffstat (limited to 'generic/tclStringObj.c')
-rw-r--r--generic/tclStringObj.c44
1 files changed, 36 insertions, 8 deletions
diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c
index 1bb11d9..409b983 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.2 1998/09/14 18:40:02 stanton Exp $
+ * RCS: @(#) $Id: tclStringObj.c,v 1.3 1999/03/10 05:52:49 stanton Exp $
*/
#include "tclInt.h"
@@ -363,7 +363,7 @@ Tcl_AppendToObj(objPtr, bytes, length)
/*
*----------------------------------------------------------------------
*
- * Tcl_AppendStringsToObj --
+ * Tcl_AppendStringsToObjVA --
*
* This procedure appends one or more null-terminated strings
* to an object.
@@ -379,14 +379,14 @@ Tcl_AppendToObj(objPtr, bytes, length)
*/
void
-Tcl_AppendStringsToObj TCL_VARARGS_DEF(Tcl_Obj *,arg1)
+Tcl_AppendStringsToObjVA (objPtr, argList)
+ register Tcl_Obj *objPtr; /* Points to the object to append to. */
+ va_list argList; /* Variable argument list. */
{
- va_list argList;
- register Tcl_Obj *objPtr;
+ va_list tmpArgList;
int newLength, oldLength;
register char *string, *dst;
- objPtr = (Tcl_Obj *) TCL_VARARGS_START(Tcl_Obj *,arg1,argList);
if (Tcl_IsShared(objPtr)) {
panic("Tcl_AppendStringsToObj called with shared object");
}
@@ -400,9 +400,10 @@ Tcl_AppendStringsToObj TCL_VARARGS_DEF(Tcl_Obj *,arg1)
* bytes would be appended, just return.
*/
+ tmpArgList = argList;
newLength = oldLength = objPtr->length;
while (1) {
- string = va_arg(argList, char *);
+ string = va_arg(tmpArgList, char *);
if (string == NULL) {
break;
}
@@ -430,7 +431,6 @@ Tcl_AppendStringsToObj TCL_VARARGS_DEF(Tcl_Obj *,arg1)
* strings to the object.
*/
- TCL_VARARGS_START(Tcl_Obj *,arg1,argList);
dst = objPtr->bytes + oldLength;
while (1) {
string = va_arg(argList, char *);
@@ -455,6 +455,34 @@ Tcl_AppendStringsToObj TCL_VARARGS_DEF(Tcl_Obj *,arg1)
*dst = 0;
}
objPtr->length = newLength;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tcl_AppendStringsToObj --
+ *
+ * This procedure appends one or more null-terminated strings
+ * to an object.
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * The contents of all the string arguments are appended to the
+ * string representation of objPtr.
+ *
+ *----------------------------------------------------------------------
+ */
+
+void
+Tcl_AppendStringsToObj TCL_VARARGS_DEF(Tcl_Obj *,arg1)
+{
+ register Tcl_Obj *objPtr;
+ va_list argList;
+
+ objPtr = TCL_VARARGS_START(Tcl_Obj *,arg1,argList);
+ Tcl_AppendStringsToObjVA(objPtr, argList);
va_end(argList);
}