- Jan
- 9
- 0
The lazy evaluation of lines appears to have broken in v17. In v16, .and. appears to be evaluated lazily like in C, etc, but in v17 it doesn't work any more.
I have quite a few batch files with lines like
Iff %2. != . .and. not IsDir %2 Then
Echo %2 IS DIR
EndIff
Prior to v17 they were lazy evaluated, so passing only 1 parameter to the batch file resulted in the target line not being evaluated, and no error.
In v17, this is broken. It produces
TCC: C:\temp\1.btm [1] Unknown command "Then"
IS DIR
TCC: C:\temp\1.btm [3] Unknown command "EndIff"
I can rewrite the offending code as a series of Ifs, but it's pretty annoying, so I'll probably just drop back to 16 until if/when it's fixed.
I have quite a few batch files with lines like
Iff %2. != . .and. not IsDir %2 Then
Echo %2 IS DIR
EndIff
Prior to v17 they were lazy evaluated, so passing only 1 parameter to the batch file resulted in the target line not being evaluated, and no error.
In v17, this is broken. It produces
TCC: C:\temp\1.btm [1] Unknown command "Then"
IS DIR
TCC: C:\temp\1.btm [3] Unknown command "EndIff"
I can rewrite the offending code as a series of Ifs, but it's pretty annoying, so I'll probably just drop back to 16 until if/when it's fixed.