summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraspect <aspect+tclcore@abstracted-spleen.org>2015-06-16 00:41:39 (GMT)
committeraspect <aspect+tclcore@abstracted-spleen.org>2015-06-16 00:41:39 (GMT)
commitfb3057c4a82b8cead5f45c319b4256eb2f6c8dba (patch)
treeb2a52a81f044fe9da430aa691f31f4a4f64d2d20
parent594db8256437eeb9c5e78ca5ec38b22f441cdb00 (diff)
downloadtcl-fb3057c4a82b8cead5f45c319b4256eb2f6c8dba.zip
tcl-fb3057c4a82b8cead5f45c319b4256eb2f6c8dba.tar.gz
tcl-fb3057c4a82b8cead5f45c319b4256eb2f6c8dba.tar.bz2
fix for a4cb3f06c4fe - bug introduced in 32b61592465
-rw-r--r--generic/tclCompCmdsGR.c2
-rw-r--r--tests/lreplace.test3
2 files changed, 4 insertions, 1 deletions
diff --git a/generic/tclCompCmdsGR.c b/generic/tclCompCmdsGR.c
index b77c43c..8d8f2cc 100644
--- a/generic/tclCompCmdsGR.c
+++ b/generic/tclCompCmdsGR.c
@@ -1501,7 +1501,7 @@ TclCompileLreplaceCmd(
return TCL_ERROR;
}
- if(idx2 != INDEX_END && idx2 < idx1) {
+ if(idx2 != INDEX_END && idx2 >= 0 && idx2 < idx1) {
idx2 = idx1-1;
}
diff --git a/tests/lreplace.test b/tests/lreplace.test
index d1319c6..cf0ae51 100644
--- a/tests/lreplace.test
+++ b/tests/lreplace.test
@@ -146,6 +146,9 @@ test lreplace-4.4 {lreplace edge case} {
test lreplace-4.5 {lreplace edge case} {
lreplace {1 2 3 4 5} 3 0 _
} {1 2 3 _ 4 5}
+test lreplace-4.6 {lreplace end-x: bug a4cb3f06c4} {
+ lreplace {0 1 2 3 4} 0 end-2
+} {3 4}
# cleanup
catch {unset foo}