Amazing how forgiving the older LC engines are...
Paul Dupuis
paul at researchware.com
Mon Nov 11 09:00:53 EST 2019
I just got bit by how forgiving older LC engines version are.
Migrating a stack from LC6.7.11 to LC9.5.1. There is a handle to perform
a "select all" on a particular list field where "select all" means
select all lines but the first. The code was essentially:
put empty into tLineList
repeat with i=2 to the number of lines in fld 1
put i & cr after tLineList
end repeat
delete last char of tLineList
set the hilitedLines of fld 1 to tLineList'
This throws an script execution error under LC9.0.5 or 9.5.1 when trying
to execute the last line, but works perfectly well under LC6.7.11 and
earlier.
The problem, of course, is that the hilitedLines is supposed to be a
COMMA delimited list, not a CR delimited list. Even the LC6.7.11
Dictionary states comma delimited. And yet, LC6.7.11 and earlier happily
allowed and handled correctly wither comma or cr delimited lists for the
hilitedLines property.
Simple change of Cr to comma fixes the routine for LC9xx
I am not sure in what more recent LC versions this list flexibility went
away (7? 8? 9?) but I have mixed feelings that it did go away. On one
hand, I think the versatility of the older engine in forgiving and
working with bad syntax was amazing. On the other had, had they been
stricter, I would have discovered this bug long ago.
More information about the use-livecode
mailing list