yeap its as brendy says, I forgot that set shading off relates more to other appearance commands, but then I did intend for you to retexture after using it regardless - that was the point i was making, not use it on its own. I just tested it and there is no change in the checklist results anyway. I did some further testing which shows thinking is along right lines, just nothing to do with the render side at all;
sync on
file$="FX/DefaultShader.dbs"
load effect file$,1,0
perform checklist for effect errors
do
cls 0
set cursor 0,0
if returnkey()=1
delete effect 1
set display mode 1024,768,32
empty checklist
load effect file$,1,0
perform checklist for effect errors
wait 1000
endif
print file$
print checklist quantity()
if checklist quantity()>0 then print checklist string$(1)
sync
loop
Now this works.
Without changing display mode the data from previous checklist remains unless new errors are present, where the data is stored isnt updated when errors are no longer present - you can test this by using any fx/dbs shader:
rem out display mode command and run prog, then create an error in the file and press return, then fix the error and create a different error in the file and press return, you will see 3 different results
Without the display mode command, error data does not update when fixed at runtime but does update if new errors are present.
Without the empty checklist command, error data does not get updated at all even if there are new errors and even if you change display mode.
So is it a bug? Looks like it, you might wanna draw up a bug report with these findings, empty checklist does not affect the checklist unless new errors occur or if the display mode is changed