summaryrefslogtreecommitdiffstats
path: root/generic/tclCmdMZ.c
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2016-11-01 16:18:08 (GMT)
committerdgp <dgp@users.sourceforge.net>2016-11-01 16:18:08 (GMT)
commit02769c476212b9eca784283d63eee3c3e28a3d76 (patch)
tree52b0d7cb7390f6382be877a794f749ee0ad61a7b /generic/tclCmdMZ.c
parent1cb5e0af9770c565d370fbb5cf713af0d1f561de (diff)
parentcdc8b6080c2a2f05f3f66adfa3184405f04dc003 (diff)
downloadtcl-02769c476212b9eca784283d63eee3c3e28a3d76.zip
tcl-02769c476212b9eca784283d63eee3c3e28a3d76.tar.gz
tcl-02769c476212b9eca784283d63eee3c3e28a3d76.tar.bz2
Refactor to channel all [string cat] functions through a single implementation.
Diffstat (limited to 'generic/tclCmdMZ.c')
-rw-r--r--generic/tclCmdMZ.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/generic/tclCmdMZ.c b/generic/tclCmdMZ.c
index 591e31c..10c2ef3 100644
--- a/generic/tclCmdMZ.c
+++ b/generic/tclCmdMZ.c
@@ -2855,7 +2855,7 @@ StringCatCmd(
int objc, /* Number of arguments. */
Tcl_Obj *const objv[]) /* Argument objects. */
{
- int i;
+ int code;
Tcl_Obj *objResultPtr;
if (objc < 2) {
@@ -2872,16 +2872,16 @@ StringCatCmd(
Tcl_SetObjResult(interp, objv[1]);
return TCL_OK;
}
- objResultPtr = objv[1];
- if (Tcl_IsShared(objResultPtr)) {
- objResultPtr = Tcl_DuplicateObj(objResultPtr);
- }
- for(i = 2;i < objc;i++) {
- Tcl_AppendObjToObj(objResultPtr, objv[i]);
+
+ code = TclStringCatObjv(interp, /* inPlace */ 1, objc-1, objv+1,
+ &objResultPtr);
+
+ if (code == TCL_OK) {
+ Tcl_SetObjResult(interp, objResultPtr);
+ return TCL_OK;
}
- Tcl_SetObjResult(interp, objResultPtr);
- return TCL_OK;
+ return code;
}
/*