diff options
| -rw-r--r-- | generic/tclUtil.c | 3 | ||||
| -rw-r--r-- | tests/util.test | 3 |
2 files changed, 5 insertions, 1 deletions
diff --git a/generic/tclUtil.c b/generic/tclUtil.c index d7e0168..086b03b 100644 --- a/generic/tclUtil.c +++ b/generic/tclUtil.c @@ -1859,7 +1859,8 @@ Tcl_ConcatObj( TclListObjGetElements(NULL, objPtr, &listc, &listv); if (listc) { if (resPtr) { - if (TCL_OK != Tcl_ListObjReplace(NULL, resPtr, + if (Tcl_GetString(listv[0])[0] == '#' + || TCL_OK != Tcl_ListObjReplace(NULL, resPtr, INT_MAX, 0, listc, listv)) { /* Abandon ship! */ Tcl_DecrRefCount(resPtr); diff --git a/tests/util.test b/tests/util.test index 3f7ffe2..9eee1a6 100644 --- a/tests/util.test +++ b/tests/util.test @@ -206,6 +206,9 @@ test util-4.7 {Tcl_ConcatObj - refCount safety} testconcatobj { # symptoms was Bug #2055782. testconcatobj } {} +test util-4.8 {Tcl_ConcatObj - [Bug 26649439c7]} { + concat [list foo] [list #] +} {foo {#}} proc Wrapper_Tcl_StringMatch {pattern string} { # Forces use of Tcl_StringMatch, not Tcl_UniCharCaseMatch |
