b850dbfa83
(tcl-expand-regression.patch, tcl#cc1e91552c). OBS-URL: https://build.opensuse.org/package/show/devel:languages:tcl/tcl?expand=0&rev=113
77 lines
2.5 KiB
Diff
77 lines
2.5 KiB
Diff
Index: generic/tclExecute.c
|
||
==================================================================
|
||
--- generic/tclExecute.c
|
||
+++ generic/tclExecute.c
|
||
@@ -5235,12 +5235,16 @@
|
||
}
|
||
#endif
|
||
|
||
/* Every range of an empty list is an empty list */
|
||
if (objc == 0) {
|
||
- TRACE_APPEND(("\n"));
|
||
- NEXT_INST_F(9, 0, 0);
|
||
+ /* avoid return of not canonical list (e. g. spaces in string repr.) */
|
||
+ if (ListObjIsCanonical(valuePtr)) {
|
||
+ TRACE_APPEND(("\n"));
|
||
+ NEXT_INST_F(9, 0, 0);
|
||
+ }
|
||
+ goto emptyList;
|
||
}
|
||
|
||
/* Decode index value operands. */
|
||
|
||
/*
|
||
|
||
Index: tests/basic.test
|
||
==================================================================
|
||
--- tests/basic.test
|
||
+++ tests/basic.test
|
||
@@ -959,10 +959,16 @@
|
||
lappend res [catch { run { {*}{error Hejsan} } } err]
|
||
lappend res $err
|
||
} -cleanup {
|
||
unset res t
|
||
} -result {0 10 1 Hejsan}
|
||
+
|
||
+test basic-48.24.$noComp {expansion: empty not canonical list, regression test, bug [cc1e91552c]} -constraints $constraints -setup {
|
||
+ unset -nocomplain a
|
||
+} -body {
|
||
+ run {list [list {*}{ }] [list {*}[format %c 32]] [list {*}[set a { }]]}
|
||
+} -result [lrepeat 3 {}] -cleanup {unset -nocomplain a}
|
||
|
||
} ;# End of noComp loop
|
||
|
||
test basic-49.1 {Tcl_EvalEx: verify TCL_EVAL_GLOBAL operation} testevalex {
|
||
set ::x global
|
||
|
||
Index: tests/lrange.test
|
||
==================================================================
|
||
--- tests/lrange.test
|
||
+++ tests/lrange.test
|
||
@@ -105,14 +105,24 @@
|
||
list [lrange {a b c} -1 1] [lrange {a b c} -1+0 end-1] [lrange {a b c} -2 1] [lrange {a b c} -2+0 0+1]
|
||
} [lrepeat 4 {a b}]
|
||
test lrange-3.6 {compiled with calculated indices, end out of range (after end)} {
|
||
list [lrange {a b c} 1 end+1] [lrange {a b c} 1+0 2+1] [lrange {a b c} 1 end+1] [lrange {a b c} end-1 3+1]
|
||
} [lrepeat 4 {b c}]
|
||
+
|
||
+test lrange-3.7a {compiled on empty not canonical list (with static and dynamic indices), regression test, bug [cc1e91552c]} {
|
||
+ list [lrange { } 0 1] [lrange [format %c 32] 0 1] [lrange [set a { }] 0 1] \
|
||
+ [lrange { } 0-1 end+1] [lrange [format %c 32] 0-1 end+1] [lrange $a 0-1 end+1]
|
||
+} [lrepeat 6 {}]
|
||
+test lrange-3.7b {not compiled on empty not canonical list (with static and dynamic indices), regression test, bug [cc1e91552c]} {
|
||
+ set cmd lrange
|
||
+ list [$cmd { } 0 1] [$cmd [format %c 32] 0 1] [$cmd [set a { }] 0 1] \
|
||
+ [$cmd { } 0-1 end+1] [$cmd [format %c 32] 0-1 end+1] [$cmd $a 0-1 end+1]
|
||
+} [lrepeat 6 {}]
|
||
|
||
|
||
# cleanup
|
||
::tcltest::cleanupTests
|
||
return
|
||
|
||
# Local Variables:
|
||
# mode: tcl
|
||
# End:
|
||
|