http://bugs.winehq.org/show_bug.cgi?id=28158
--- Comment #10 from MestreLion wine@rodrigosilva.com 2011-08-23 08:31:25 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. That's why we lowercase in some cases - to force everything into the common *nix case.
If you're saying Windows does case sensitive matching, then yes, winemenubuilder needs to be fixed.
Im glad to hear from you, Damjan, as i truly admire all the hard work you put on winemenubuilder... i've been studing its source code, and its a phenomenal tool.
The issue is not about associations within windows. Its about the bridge that winemenubuilder does in native associations. More precisely, functions build_native_mime_types() and freedesktop_mime_type_for_extension(). They should also lowercase native extensions.
Currently, if a windows app registers .z (or .Z, or .amr), winemenubuilder will not find the corresponding native mimetypes application/x-compress (or audio/AMR), and it **will think those extensions dont exist in native system!*** and will create new, redundant mimetypes for them.
Not only that, but the new mimetypes and .desktop entries will not work the way they should: native apps will not be able to open .Z files, because x-wine-extension-z.desktop wont handle them
winemenubuilder is a bridge between windows and native. So it should force lowercase for all incoming extensions (meaning build_native_mime_types() should lowercase fd.o entries when building the list) for truly case-insensitiveness to work correctly. And it should use proper case when creating .desktop and mime.xml files in native system.