summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiguel Sofer <miguel.sofer@gmail.com>2014-12-03 23:17:16 (GMT)
committerMiguel Sofer <miguel.sofer@gmail.com>2014-12-03 23:17:16 (GMT)
commit3e76a216e3a989a6dbaefd832a0a2dc795672e2e (patch)
treee08948ee7f431d6bd49ae4a3034133c8c12bd562
parent6e6e7b2c773fb61f034c68c04bf90e48cacce161 (diff)
downloadtcl-3e76a216e3a989a6dbaefd832a0a2dc795672e2e.zip
tcl-3e76a216e3a989a6dbaefd832a0a2dc795672e2e.tar.gz
tcl-3e76a216e3a989a6dbaefd832a0a2dc795672e2e.tar.bz2
test and fix (thx dgp)bug_0c043a175
-rw-r--r--generic/tclCompCmds.c2
-rw-r--r--tests/compile.test9
2 files changed, 6 insertions, 5 deletions
diff --git a/generic/tclCompCmds.c b/generic/tclCompCmds.c
index 18f4564..4e7ef97 100644
--- a/generic/tclCompCmds.c
+++ b/generic/tclCompCmds.c
@@ -3373,7 +3373,7 @@ TclPushVarName(
nameChars = p - varTokenPtr[1].start;
elName = p + 1;
remainingChars = (varTokenPtr[2].start - p) - 1;
- elNameChars = (varTokenPtr[n].start-p) + varTokenPtr[n].size - 2;
+ elNameChars = (varTokenPtr[n].start-p) + varTokenPtr[n].size - 1;
if (remainingChars) {
/*
diff --git a/tests/compile.test b/tests/compile.test
index 8150622..45d69e9 100644
--- a/tests/compile.test
+++ b/tests/compile.test
@@ -464,11 +464,12 @@ test compile-14.1 {testing errors in element name; segfault?} {} {
} {{wrong # args: should be "error message ?errorInfo? ?errorCode?"} {can't read "abba": no such variable}}
test compile-14.2 {testing element name "$"} -body {
- unset a
+ unset -nocomplain a
set a() 1
- set a($) 2
- list [set a()] [set a($)] [unset a(); lindex [array names a] 0]
-} -cleanup {unset a} -result {1 2 $}
+ set a(1) 2
+ set a($) 3
+ list [set a()] [set a(1)] [set a($)] [unset a(); lindex [array names a] 0]
+} -cleanup {unset a} -result [list 1 2 3 {$}]
# Tests compile-15.* cover Tcl Bug 633204