Originally Posted By: Khaled
Quote:
I see the only purpose of interval flushing to mirc.ini being to preserve changes that the next ON START needs to see, and to not see things it shouldn't.

That does seem to be a reasonable assumption.

However, if you look back through versions.txt, you can see that /set -uN, /saveini, and $var() were all added at different times. So there was a time when scripters may have wanted access to the list of all active variables and could only find them in the variables file. That is a long time ago though.

On the other hand, even today, a DLL developer could choose to trigger /saveini and then read the variables file to retrieve a list of the currently active variables. It may not be good coding, or make great sense, but scripters often use the scripting language in ways that I do not expect.

I agree with your suggestion - it would only take a minute to change the behaviour - but considering it has been in place for twenty years...

I guess this is another example of trying to make a judgement about whether scripters (and now DLL writers) will have used mIRC in a specific way and whether a change would therefore break their code.

Personally I think it highly unlikely that DLL writers would code to get access to variables in this way - for example I am not sure how they would determine the file location for the ini files that holds this - but I suppose it is vaguely possible, and as Khaled says if your philosophy is to preserve backward compatibility even for the most unlikely use cases, then that makes changing any existing behaviours very difficult.