Important script compatibility announcement:
A bug in IF statements will soon be fixed CHDK UBASIC. IF-THEN-ELSE statements should then work as they were meant to even when nested, but
THIS FIX WILL BREAK SOME OLD SCRIPTS. Only UBASIC scripts (*.bas) are affected. Lua scripts (*.lua) are not affected in any way.
Details:
Most scripts will not be affected, but some of your scripts may stop working. Typically this is because they violate one of these rules (that have always been there):
- a single line IF-THEN-[ELSE] statement must not end with an ENDIF.
- in multi line statements IF-THEN, ELSE and ENDIF must each be on separate lines.
examples:
correct:
IF a>3 THEN b=1 ELSE b=0
wrong:
IF a>3 THEN b=1 ELSE b=0 ENDIF
correct:
IF a>3 THEN
b=1
c=1
ELSE
b=0
ENDIF
Your script could also be exploiting (or working around) the bug in some perverse way that will no longer work.
For more information, see this thread:
http://chdk.setepontos.com/index.php/topic,4276.0.html. A simple utility for checking your scripts is available at
http://chdk.setepontos.com/index.php/topic,4276.msg40944.html#msg40944. Please report any faulty scripts you find in that thread.