http://bugs.winehq.org/show_bug.cgi?id=28158
--- Comment #11 from MestreLion wine@rodrigosilva.com 2011-08-23 08:54:49 CDT --- (In reply to comment #9)
Filename extension case sensitivity was written with the assumption that on Windows it is case insensitive while on *nix it is case sensitive.
Thats a great and correct assumption, and Im not against it. But its not working that way right now.
That's why we lowercase in some cases - to force everything into the common *nix case.
So why not lower case in build_native_mime_types()? If you lowercase one side and not the other, and then compare them, it wont match. So currently windows is not being case-insensitive when looking for existent mimetypes in fd.o mime database
Being case-insensitive means .z in windows should accept either *.z or *.Z as their corresponding native globs.
In general, to achieve the assumption, use lowercase when *reading* from *nix, and proper (original) case when *writing* to it.
So: - build_native_mime_types() - lowercase - freedesktop_mime_type_for_extension() - lowercase - match_glob - lowercase - write_freedesktop_mime_type_entry() - original case - write_freedesktop_association_entry() - original case