diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-09-20 20:42:30 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-09-20 20:42:30 (GMT) |
commit | 4590e2d12033ebf1ad82a2b46da552f0638b763a (patch) | |
tree | 72f7aa4cfe58d05193183e02f20dac68dd5d800c /generic/tclCmdMZ.c | |
parent | 9b0b59d046f223efca4855691ed4f476fa43b1b8 (diff) | |
download | tcl-4590e2d12033ebf1ad82a2b46da552f0638b763a.zip tcl-4590e2d12033ebf1ad82a2b46da552f0638b763a.tar.gz tcl-4590e2d12033ebf1ad82a2b46da552f0638b763a.tar.bz2 |
Proposed fix for [c0bc269178], with testcase
Diffstat (limited to 'generic/tclCmdMZ.c')
-rw-r--r-- | generic/tclCmdMZ.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/generic/tclCmdMZ.c b/generic/tclCmdMZ.c index 3ff9947..53e12c5 100644 --- a/generic/tclCmdMZ.c +++ b/generic/tclCmdMZ.c @@ -3930,8 +3930,12 @@ TclNRSwitchObjCmd( if (matchVarObj != NULL) { Tcl_Obj *substringObj; - substringObj = Tcl_GetRange(stringObj, - info.matches[j].start, info.matches[j].end-1); + if (info.matches[j].end > 0) { + substringObj = Tcl_GetRange(stringObj, + info.matches[j].start, info.matches[j].end-1); + } else { + TclNewObj(substringObj); + } /* * Never fails; the object is always clean at this point. |