tagcompare() uses toupper() and is sensitive to the current locale
I use libvorbis in EasyTAG to read Vorbis comments from Ogg files, and came across some code that resets the locale to the C locale before calling vorbis_comment_query_count() or vorbis_comment_query(). This avoids a problem where, if the user's locale is (for example) Turkish, the dotted lower-case i 'i' is transformed to the dotted upper-case i 'İ', rather than the expected dotless upper-case i 'I'. This causes problems for tag names with 'i' characters in the Turkish locale, and maybe there are other examples too.
It would be nice if tagcompare() used a locale-insensitive upper-casing function, so that I do not have to do this in my application (ignoring the fact that calling setlocale() in an application which uses threads is asking for trouble).