Hi there, guys!
First of all, let me thank you so much for having such fun with this great piece of software! And I'm really sorry if this bug should have been posted in the Development forum, I was just not sure.
I'm in process of developing a web source script (soon I'll be posting it), and had a bad time trying to figure out what was going wrong (I was having an exception after a certain modification).
It turns out that the conditional If commands are causing an exception if you don't write them strictly as lowercase words.
I understand that most of the web sources scripts I've seen are written entirely in lowercase (when it comes to commands), but afaik, script commands are case-insensitive.
I have the habit of writing commands as they are described in the documentation. If I use, for example, FindInLine or findinline, I always have the same results, and no problem with that.
But if I use If, IfNot, Else or/and EndIf (notice the capital first letters), MP3Tag does not run the script correctly and shows an exception message. Please notice that the documentation shows these words as I wrote them in this message.
The workaround is pretty simple: you must write them always as lower-case words. I recognize that this is a pretty low priority bug, but knowing it could save time from other guys, since I took about two hours to find it out.
As far for all of the other commands I've used through my script, they seem to act perfectly in mixed-case words. I just found this problem with if/ifnot/else/endif.
Reproducing the bug:
Edit any script you might have with you already, "Amazon.com (cover-only)", for example. Replace all if statements with If (capital first letter). Do a search and you'll have the exception. Undo the replacements and it'll work fine again.
In the error log:
================================================================================
ERROR
--------------------------------------------------------------------------------
File: .\mtonlineselectdlg.cpp
Line: 96
Expression: items.get_count() != 0
LastError: 00000000 The operation completed successfully.
--------------------------------------------------------------------------------
CATCH
--------------------------------------------------------------------------------
File: .\mtonlineselectdlg.cpp
Line: 135
================================================================================