The concept of the "main" extension for a mimetype is missing in 
shared-mime-info,
(which constitutes a regression compared to our earlier system).

This is needed in one case: when saving a file, using the file dialog. It is a 
rather common
feature to choose a mimetype in the file dialog "filter" combobox, and to let 
the application
append the extension to the typed filename.
But for a mimetype that has more than one extension, how do we know which 
extension should
be used? That's where the concept of the "main" extension is needed.

I tried to make it "the first glob listed for this mimetype", but 
update-mime-database uses a hash
internally, so the order of the lines in the globs file is unrelated to the 
order of the globs in the XML,
and this approach is therefore unreliable.

Testcase for this issue: openoffice installs a packages/openoffice.xml file 
which says
  <mime-type type="application/vnd.oasis.opendocument.text">
    <sub-class-of type="application/xml"/> [...]
    <glob pattern="*.odt" />
    <glob pattern="*.fodt" />
  </mime-type>
This adds the [strange] extension *.fodt to this mimetype, and due to the 
hashing in update-mime-database
it appears as the "first" extension for this mimetype, which breaks saving in 
koffice, people get .fodt files now :)

I see two solutions:
1) fixing update-mime-database to respect the order of the globs [but this is a 
bit of an undocumented use of that order]
2) adding real support for the "main" extension for a mimetype (which would 
also remove the need for parsing it
out of the *.foo format). For instance <default-extension name="odt"> or 
something like that.

-- 
David Faure, [EMAIL PROTECTED], sponsored by Trolltech to work on KDE,
Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).
_______________________________________________
xdg mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/xdg

Reply via email to