[Bug 28160] New: [integration] winemenubuilder should have a consistent way to deal with extensions that have multiple (native) mimetypes

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Aug 22 20:27:13 CDT 2011


http://bugs.winehq.org/show_bug.cgi?id=28160

           Summary: [integration] winemenubuilder should have a consistent
                    way to deal with extensions that have multiple
                    (native) mimetypes
           Product: Wine
           Version: 1.3.26
          Platform: x86
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: programs
        AssignedTo: wine-bugs at winehq.org
        ReportedBy: wine at rodrigosilva.com


Granted, extensions (globs) and mimetypes do not have a 1-1 mapping. and things
like aliases, parents, and user/system databases only make this mapping harder.
Even if a perfect match is not possible, there is room to improve
winemenubuilder. Currently, when it tries to match a given extension with a
native mamitype, it concatenates user and system globs and... thats it. Picks
the 1st match it finds. No sorting. No removing duplicates.

That makes winemenubuilder really unpredictable. For instance, in my native
system i currently have this:

asc    application/pgp-encrypted
asc    application/pgp-keys
asc    text/plain

ogg    audio/ogg
ogg    audio/x-flac+ogg
ogg    audio/x-speex+ogg
ogg    audio/x-vorbis+ogg
ogg    video/x-theora+ogg

sub    text/x-microdvd
sub    text/x-mpsub
sub    text/x-subviewer

So, if winemenubuilder finds HKCR\.ogg , which of the 5 will it pick? The 1st
one it finds... which is? Who knows! It doesnt look at ContentType value before
assuming the "one and only" mimetype for that ext is the one he picked from
fd.o mime database. 

That makes impossible for a script to "pre-build" a
HKCU\Software\Wine\FileOpenAssociations\*ogg entry to inhibit winemenubuilder
from creating a redundant native association (x-wine-extension-ogg.desktop file
and others)

My suggestion, 2 different approaches to solve this:

1 - If [HKCR\.ext]ContentType=xxx is found, respect it. That means
generate_associations() should read ContentType *before* calling
freedesktop_mime_type_for_extension() , not *instead* of it.

2 - change build_native_mime_types() algorithm to *sort* the entries when
building mime_types list, either sort(user)+sort(system) or sort(user+system).
That way freedesktop_mime_type_for_extension()'s pick will be an easily
predictable one.

This bug is closely related to http://bugs.winehq.org/show_bug.cgi?id=28158 and
http://bugs.winehq.org/show_bug.cgi?id=28159

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list