- Update to 0.16

This commit is contained in:
Michael Johnson 2005-04-02 16:50:27 +00:00
parent 853f238762
commit 249f17b408
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=132218
4 changed files with 10 additions and 1097 deletions

View file

@ -5,19 +5,13 @@
# $FreeBSD$ # $FreeBSD$
PORTNAME= shared-mime-info PORTNAME= shared-mime-info
PORTVERSION= 0.15 PORTVERSION= 0.16
PORTREVISION= 9 PORTREVISION= 1
CATEGORIES= misc gnome CATEGORIES= misc gnome
MASTER_SITES= http://www.marcuscom.com/downloads/ \ MASTER_SITES= http://www.marcuscom.com/downloads/ \
http://www.freedesktop.org/software/shared-mime-info/ http://freedesktop.org/~jrb/
DISTNAME= shared-mime-info-${PORTVERSION} DISTNAME= shared-mime-info-${PORTVERSION}
PATCH_SITES= http://www.marcuscom.com/downloads/ \
http://people.FreeBSD.org/~marcus/ \
${MASTER_SITE_LOCAL}
PATCH_SITE_SUBDIR= marcus
PATCHFILES= patch-0159-freedesktop.org.xml
MAINTAINER= gnome@FreeBSD.org MAINTAINER= gnome@FreeBSD.org
COMMENT= A MIME type database from the FreeDesktop project COMMENT= A MIME type database from the FreeDesktop project

View file

@ -1,4 +1,2 @@
MD5 (shared-mime-info-0.15.tar.gz) = 51793b041edc68717c3f87e26a4bc087 MD5 (shared-mime-info-0.16.tar.gz) = 255a20bae753ebd41e2286b01e7b86d0
SIZE (shared-mime-info-0.15.tar.gz) = 422311 SIZE (shared-mime-info-0.16.tar.gz) = 753513
MD5 (patch-0159-freedesktop.org.xml) = 99d3a5f1ac16042717fe0fbe80abb7cc
SIZE (patch-0159-freedesktop.org.xml) = 722446

View file

@ -1,794 +0,0 @@
===================================================================
RCS file: /cvs/mime/shared-mime-info/freedesktop.org.xml.in,v
retrieving revision 1.21
retrieving revision 1.50
diff -u -r1.21 -r1.50
--- freedesktop.org.xml.in 2004/08/16 10:29:23 1.21
+++ freedesktop.org.xml.in 2005/03/19 12:15:55 1.50
@@ -68,6 +68,10 @@
<match type="string" value="must be converted with BinHex" offset="11"/>
</magic>
</mime-type>
+ <mime-type type="application/mathematica">
+ <comment xml:lang="en">Mathematica Notebook</comment>
+ <glob pattern="*.nb" />
+ </mime-type>
<mime-type type="application/octet-stream">
<_comment>unknown</_comment>
<magic priority="50">
@@ -89,6 +93,7 @@
<match type="string" value="%PDF-" offset="0"/>
</magic>
<glob pattern="*.pdf"/>
+ <alias type="application/x-pdf"/>
</mime-type>
<mime-type type="application/pgp">
<_comment>PGP message</_comment>
@@ -133,6 +138,15 @@
<glob pattern="*.smi"/>
<glob pattern="*.sml"/>
</mime-type>
+ <mime-type type="application/stuffit">
+ <_comment>StuffIt archive</_comment>
+ <magic priority="50">
+ <match type="string" value="StuffIt" offset="0"/>
+ </magic>
+ <glob pattern="*.sit"/>
+ <alias type="application/x-stuffit"/>
+ <alias type="application/x-sit"/>
+ </mime-type>
<mime-type type="application/vnd.corel-draw">
<_comment>Corel Draw drawing</_comment>
<magic priority="50">
@@ -151,7 +165,7 @@
<mime-type type="application/vnd.lotus-1-2-3">
<_comment>Lotus 1-2-3 spreadsheet</_comment>
<magic priority="50">
- <match type="string" value="\x00\x00\x02\x00" offset="0"/>
+ <match type="string" value="\x00\x00\x02\x00\x06\x04\x06\x00\x08\x00\x00\x00\x00\x00" offset="0"/>
</magic>
<glob pattern="*.123"/>
<glob pattern="*.wk1"/>
@@ -159,7 +173,12 @@
<glob pattern="*.wk4"/>
<glob pattern="*.wks"/>
</mime-type>
- <mime-type type="application/vnd.ms-excel">
+ <mime-type type="application/vnd.mozilla.xul+xml">
+ <sub-class-of type="text/xml"/>
+ <_comment>XML User Interface Language document</_comment>
+ <glob pattern="*.xul"/>
+ </mime-type>
+ <mime-type type="application/vnd.ms-excel">
<_comment>Microsoft Excel spreadsheet</_comment>
<magic priority="50">
<match type="string" value="Microsoft Excel 5.0 Worksheet" offset="2080"/>
@@ -184,8 +203,8 @@
<match type="little32" value="0xcfd0e011" offset="0"/>
</magic>
</mime-type>
- <mime-type type="application/vnd.ms-word">
- <_comment>Microsoft Word document</_comment>
+ <mime-type type="application/msword">
+ <_comment>Microsoft Word document</_comment>
<magic priority="50">
<match type="string" value="\x31\xbe\x00\x00" offset="0"/>
<match type="string" value="PO^Q`" offset="0"/>
@@ -195,7 +214,7 @@
<match type="string" value="Microsoft Word document data" offset="2112"/>
</magic>
<glob pattern="*.doc"/>
- <alias type="application/msword"/>
+ <alias type="application/vnd.ms-word"/>
</mime-type>
<mime-type type="application/vnd.palm">
<_comment>Palmpilot database/document</_comment>
@@ -275,6 +294,62 @@
<_comment>OpenOffice.org Writer document template</_comment>
<glob pattern="*.stw"/>
</mime-type>
+ <mime-type type="application/vnd.oasis.opendocument.text">
+ <_comment>OpenDocument Text</_comment>
+ <glob pattern="*.odt"/>
+ </mime-type>
+ <mime-type type="application/vnd.oasis.opendocument.text-template">
+ <_comment>OpenDocument Text Template</_comment>
+ <glob pattern="*.ott"/>
+ </mime-type>
+ <mime-type type="application/vnd.oasis.opendocument.text-web">
+ <_comment>OpenDocument HTML Document Template</_comment>
+ <glob pattern="*.oth"/>
+ </mime-type>
+ <mime-type type="application/vnd.oasis.opendocument.text-master">
+ <_comment>OpenDocument Master Document</_comment>
+ <glob pattern="*.odm"/>
+ </mime-type>
+ <mime-type type="application/vnd.oasis.opendocument.graphics">
+ <_comment>OpenDocument Drawing</_comment>
+ <glob pattern="*.odg"/>
+ </mime-type>
+ <mime-type type="application/vnd.oasis.opendocument.graphics-template">
+ <_comment>OpenDocument Drawing Template</_comment>
+ <glob pattern="*.otg"/>
+ </mime-type>
+ <mime-type type="application/vnd.oasis.opendocument.presentation">
+ <_comment>OpenDocument Presentation</_comment>
+ <glob pattern="*.odp"/>
+ </mime-type>
+ <mime-type type="application/vnd.oasis.opendocument.presentation-template">
+ <_comment>OpenDocument Presentation Template</_comment>
+ <glob pattern="*.otp"/>
+ </mime-type>
+ <mime-type type="application/vnd.oasis.opendocument.spreadsheet">
+ <_comment>OpenDocument Spreadsheet</_comment>
+ <glob pattern="*.ods"/>
+ </mime-type>
+ <mime-type type="application/vnd.oasis.opendocument.spreadsheet-template">
+ <_comment>OpenDocument Spreadsheet Template</_comment>
+ <glob pattern="*.ots"/>
+ </mime-type>
+ <mime-type type="application/vnd.oasis.opendocument.chart">
+ <_comment>OpenDocument Chart</_comment>
+ <glob pattern="*.odc"/>
+ </mime-type>
+ <mime-type type="application/vnd.oasis.opendocument.formula">
+ <_comment>OpenDocument Formula</_comment>
+ <glob pattern="*.odf"/>
+ </mime-type>
+ <mime-type type="application/vnd.oasis.opendocument.database">
+ <_comment>OpenDocument Database</_comment>
+ <glob pattern="*.odb"/>
+ </mime-type>
+ <mime-type type="application/vnd.oasis.opendocument.image">
+ <_comment>OpenDocument Image</_comment>
+ <glob pattern="*.odi"/>
+ </mime-type>
<mime-type type="application/vnd.wordperfect">
<alias type="application/x-wordperfect"/>
<alias type="application/wordperfect"/>
@@ -419,6 +494,10 @@
<_comment>PGN chess game</_comment>
<glob pattern="*.pgn"/>
</mime-type>
+ <mime-type type="application/x-chm">
+ <comment>Compiled HTML Help Format</comment>
+ <glob pattern="*.chm"/>
+ </mime-type>
<mime-type type="application/x-class-file">
<_comment>Java byte code</_comment>
</mime-type>
@@ -468,8 +547,16 @@
<glob pattern="*.cpio.gz"/>
</mime-type>
<mime-type type="application/x-csh">
+ <sub-class-of type="application/x-shellscript"/>
<sub-class-of type="text/plain"/>
<_comment>C shell script</_comment>
+ <magic>
+ <match type="string" value="/bin/tcsh" offset="1:16"/>
+ <match type="string" value="/bin/csh" offset="1:16"/>
+ <match type="string" value="#!/usr/bin/env csh" offset="0"/>
+ <match type="string" value="#!/usr/bin/env tcsh" offset="0"/>
+ </magic>
+ <glob pattern="*.csh"/>
</mime-type>
<mime-type type="application/x-dbase">
<_comment>dBASE document</_comment>
@@ -694,7 +781,7 @@
<glob pattern="*.gmo"/>
</mime-type>
<mime-type type="application/x-glade">
- <sub-class-of type="text/plain"/>
+ <sub-class-of type="text/xml"/>
<_comment>Glade project</_comment>
<glob pattern="*.glade"/>
</mime-type>
@@ -765,6 +852,14 @@
</magic>
<glob pattern="*.class"/>
</mime-type>
+ <mime-type type="application/x-java-jnlp-file">
+ <sub-class-of type="text/xml"/>
+ <_comment>Java Network Launched Application</_comment>
+ <glob pattern="*.jnlp"/>
+ <magic priority="50">
+ <match type="string" value="&lt;jnlp" offset="0:64"/>
+ </magic>
+ </mime-type>
<mime-type type="application/x-javascript">
<sub-class-of type="text/plain"/>
<_comment>Javascript program</_comment>
@@ -1111,6 +1206,14 @@
<mime-type type="application/x-palm-database">
<_comment>Palm OS database</_comment>
</mime-type>
+ <mime-type type="application/x-par2">
+ <comment>PAR2 Parity File</comment>
+ <magic priority="50">
+ <match offset="0" type="string" value="PAR2" />
+ </magic>
+ <glob pattern="*.PAR2" />
+ <glob pattern="*.par2" />
+ </mime-type>
<mime-type type="application/x-pef-executable">
<_comment>PEF executable</_comment>
<magic priority="50">
@@ -1118,6 +1221,7 @@
</magic>
</mime-type>
<mime-type type="application/x-perl">
+ <sub-class-of type='application/x-executable'/>
<sub-class-of type="text/plain"/>
<_comment>Perl script</_comment>
<magic priority="50">
@@ -1154,23 +1258,6 @@
<_comment>Pathetic Writer document</_comment>
<glob pattern="*.pw"/>
</mime-type>
- <mime-type type="application/x-python">
- <sub-class-of type="text/plain"/>
- <_comment>Python script</_comment>
- <magic priority="50">
- <match type="string" value="#!/bin/python" offset="0"/>
- <match type="string" value="#! /bin/python" offset="0"/>
- <match type="string" value='eval \"exec /bin/python' offset="0"/>
- <match type="string" value="#!/usr/bin/python" offset="0"/>
- <match type="string" value="#! /usr/bin/python" offset="0"/>
- <match type="string" value='eval \"exec /usr/bin/python' offset="0"/>
- <match type="string" value="#!/usr/local/bin/python" offset="0"/>
- <match type="string" value="#! /usr/local/bin/python" offset="0"/>
- <match type="string" value='eval \"exec /usr/local/bin/python' offset="0"/>
- <match type="string" value='/bin/env python' offset="1:16"/>
- </magic>
- <glob pattern="*.py"/>
- </mime-type>
<mime-type type="application/x-python-bytecode">
<_comment>Python bytecode</_comment>
<magic priority="50">
@@ -1209,6 +1296,7 @@
<glob pattern="*.rpm"/>
</mime-type>
<mime-type type="application/x-ruby">
+ <sub-class-of type='application/x-executable'/>
<sub-class-of type="text/plain"/>
<_comment>Ruby script</_comment>
<magic>
@@ -1253,25 +1341,18 @@
<sub-class-of type="text/plain"/>
<_comment>shell script</_comment>
<magic priority="50">
- <match type="string" value="#!/bin/ksh" offset="0"/>
- <match type="string" value="#!/usr/local/bin/ash" offset="0"/>
- <match type="string" value="#!/usr/local/tcsh" offset="0"/>
<match type="string" value="# This is a shell archive" offset="10"/>
<match type="string" value="/bin/bash" offset="1:16"/>
<match type="string" value="/bin/nawk" offset="1:16"/>
- <match type="string" value="/bin/tcsh" offset="1:16"/>
- <match type="string" value="/bin/csh" offset="1:16"/>
<match type="string" value="/bin/zsh" offset="1:16"/>
<match type="string" value="/bin/sh" offset="1:16"/>
+ <match type="string" value="/bin/ksh" offset="1:16"/>
<match type="string" value="#!/usr/bin/env sh" offset="0"/>
<match type="string" value="#!/usr/bin/env bash" offset="0"/>
- <match type="string" value="#!/usr/bin/env csh" offset="0"/>
- <match type="string" value="#!/usr/bin/env tcsh" offset="0"/>
<match type="string" value="#!/usr/bin/env zsh" offset="0"/>
-
+ <match type="string" value="#!/usr/bin/env ksh" offset="0"/>
</magic>
<glob pattern="*.sh"/>
- <glob pattern="*.csh"/>
</mime-type>
<mime-type type="application/x-shockwave-flash">
<_comment>Shockwave Flash file</_comment>
@@ -1407,12 +1488,13 @@
<glob pattern="*.zoo"/>
</mime-type>
<mime-type type="application/xhtml+xml">
- <sub-class-of type="text/plain"/>
+ <sub-class-of type="text/xml"/>
<_comment>XHTML page</_comment>
<glob pattern="*.xhtml"/>
<root-XML namespaceURI='http://www.w3.org/1999/xhtml' localName='html'/>
</mime-type>
<mime-type type="application/zip">
+ <alias type="application/x-zip-compressed"/>
<_comment>ZIP archive</_comment>
<magic priority="40">
<match type="string" value="PK\003\004" offset="0"/>
@@ -1497,6 +1579,13 @@
<glob pattern="*.mid"/>
<glob pattern="*.midi"/>
</mime-type>
+ <mime-type type="audio/x-m4a">
+ <_comment>MP4 audio</_comment>
+ <magic priority="50">
+ <match type="string" value="ftypM4A" offset="0"/>
+ </magic>
+ <glob pattern="*.m4a"/>
+ </mime-type>
<mime-type type="audio/x-mod">
<_comment>Amiga SoundTracker audio</_comment>
<glob pattern="*.mod"/>
@@ -1507,12 +1596,12 @@
<glob pattern="*.mtm"/>
<glob pattern="*.669"/>
</mime-type>
- <mime-type type="audio/x-mp3">
+ <mime-type type="audio/mpeg">
+ <alias type="audio/x-mp3" />
<_comment>MP3 audio</_comment>
<magic priority="50">
<match type="big32" value="0xfffb" offset="0"/>
<match type="string" value="ID3" offset="0"/>
- <match type="big16" mask="0xfff0" value="0xfff0" offset="0"/>
</magic>
<glob pattern="*.mp3"/>
</mime-type>
@@ -1525,6 +1614,9 @@
<mime-type type="audio/x-mpegurl">
<_comment>MP3 audio (streamed)</_comment>
<glob pattern="*.m3u"/>
+ <magic priority="50">
+ <match type="string" value="#EXTM3U" offset="0"/>
+ </magic>
</mime-type>
<mime-type type="audio/x-ms-asx">
<_comment>Playlist</_comment>
@@ -1557,6 +1649,11 @@
</mime-type>
<mime-type type="audio/x-scpls">
<_comment>MP3 ShoutCast playlist</_comment>
+ <magic priority="50">
+ <match type="string" value="[playlist]" offset="0"/>
+ <match type="string" value="[Playlist]" offset="0"/>
+ <match type="string" value="[PLAYLIST]" offset="0"/>
+ </magic>
<glob pattern="*.pls"/>
</mime-type>
<mime-type type="audio/x-stm">
@@ -1568,6 +1665,8 @@
<glob pattern="*.voc"/>
</mime-type>
<mime-type type="audio/x-wav">
+ <alias type="audio/wav"/>
+ <alias type="audio/vnd.wave"/>
<_comment>WAV audio</_comment>
<magic priority="50">
<match type="string" value="WAVE" offset="8"/>
@@ -1649,6 +1748,7 @@
<glob pattern="*.rle"/>
</mime-type>
<mime-type type="image/svg+xml">
+ <sub-class-of type="text/xml"/>
<_comment>scalable SVG image</_comment>
<magic priority="80">
<match type="string" value="&lt;!DOCTYPE svg" offset="0:256"/>
@@ -1695,11 +1795,11 @@
<glob pattern="*.xcf.gz"/>
<glob pattern="*.xcf.bz2"/>
</mime-type>
- <mime-type type="image/x-dcm">
+ <mime-type type="application/dicom">
<_comment>Digital Imaging and Communications in Medicine image</_comment>
<glob pattern="*.dcm"/>
<magic priority="50">
- <match type="string" value="DCMw" offset="0"/>
+ <match type="string" value="DICM" offset="128"/>
</magic>
</mime-type>
<mime-type type="image/x-dib">
@@ -1993,10 +2093,13 @@
<_comment>stream of data (server push)</_comment>
</mime-type>
<mime-type type="text/calendar">
- <_comment>iCalendar file</_comment>
+ <alias type="text/x-vcalendar"/>
+ <_comment>vCalendar interchange file</_comment>
<magic priority="50">
<match type="string" value="BEGIN:VCALENDAR" offset="0"/>
+ <match type="string" value="begin:vcalendar" offset="0"/>
</magic>
+ <glob pattern="*.vcs"/>
<glob pattern="*.ics"/>
</mime-type>
<mime-type type="text/css">
@@ -2005,47 +2108,24 @@
<glob pattern="*.CSSL"/>
</mime-type>
<mime-type type="text/directory">
- <_comment>directory information file</_comment>
+ <alias type="text/x-vcard"/>
+ <_comment>Electronic Business Card</_comment>
+ <magic priority="50">
+ <match type="string" value="BEGIN:VCARD" offset="0"/>
+ <match type="string" value="begin:vcard" offset="0"/>
+ </magic>
+ <glob pattern="*.vcf"/>
+ <glob pattern="*.vct"/>
+ <glob pattern="*.gcrd"/>
</mime-type>
<mime-type type="text/enriched">
<_comment>enriched text document</_comment>
</mime-type>
- <mime-type type="text/x-gettext-translation">
- <_comment>translated messages</_comment>
- <glob pattern="*.po"/>
- </mime-type>
- <mime-type type="text/x-gettext-translation-template">
- <_comment>message translation template</_comment>
- <glob pattern="*.pot"/>
- </mime-type>
- <mime-type type="text/html">
- <_comment>HTML page</_comment>
- <magic priority="50">
- <match type="string" value="&lt;!DOCTYPE HTML" offset="0:64"/>
- <match type="string" value="&lt;!doctype html" offset="0:64"/>
- <match type="string" value="&lt;HEAD" offset="0:64"/>
- <match type="string" value="&lt;head" offset="0:64"/>
- <match type="string" value="&lt;TITLE" offset="0:64"/>
- <match type="string" value="&lt;title" offset="0:64"/>
- <match type="string" value="&lt;html" offset="0:64"/>
- <match type="string" value="&lt;HTML" offset="0:64"/>
- <match type="string" value="&lt;BODY" offset="0"/>
- <match type="string" value="&lt;body" offset="0"/>
- <match type="string" value="&lt;TITLE" offset="0"/>
- <match type="string" value="&lt;title" offset="0"/>
- <match type="string" value="&lt;!--" offset="0"/>
- <match type="string" value="&lt;h1" offset="0"/>
- <match type="string" value="&lt;H1" offset="0"/>
- <match type="string" value="&lt;!doctype HTML" offset="0"/>
- <match type="string" value="&lt;!DOCTYPE html" offset="0"/>
- </magic>
- <glob pattern="*.html"/>
- <glob pattern="*.htm"/>
- </mime-type>
<mime-type type="text/htmlh">
<_comment>help page</_comment>
</mime-type>
<mime-type type="text/mathml">
+ <sub-class-of type="text/xml"/>
<_comment>MathML document</_comment>
<glob pattern="*.mml"/>
</mime-type>
@@ -2059,6 +2139,7 @@
<glob pattern="*.asc"/>
</mime-type>
<mime-type type="text/rdf">
+ <sub-class-of type="text/plain"/>
<_comment>Resource Description Framework (RDF) file</_comment>
<glob pattern="*.rdf"/>
</mime-type>
@@ -2066,10 +2147,12 @@
<_comment>email headers</_comment>
</mime-type>
<mime-type type="text/richtext">
+ <sub-class-of type="text/plain"/>
<_comment>rich text document</_comment>
<glob pattern="*.rtx"/>
</mime-type>
<mime-type type="text/rss">
+ <sub-class-of type="text/plain"/>
<_comment>RDF Site Summary</_comment>
<glob pattern="*.rss"/>
</mime-type>
@@ -2087,6 +2170,7 @@
<glob pattern="*.slk"/>
</mime-type>
<mime-type type="text/tab-separated-values">
+ <sub-class-of type="text/plain"/>
<_comment>text document (with tab-separated values)</_comment>
<glob pattern="*.tsv"/>
</mime-type>
@@ -2095,23 +2179,28 @@
<glob pattern="*.wml"/>
</mime-type>
<mime-type type="text/x-adasrc">
+ <sub-class-of type="text/plain"/>
<_comment>Ada source code</_comment>
<glob pattern="*.adb"/>
<glob pattern="*.ads"/>
</mime-type>
<mime-type type="text/x-authors">
+ <sub-class-of type="text/plain"/>
<_comment>author list</_comment>
<glob pattern="AUTHORS"/>
</mime-type>
<mime-type type="text/x-bibtex">
+ <sub-class-of type="text/plain"/>
<_comment>Bibtex bibliographic data</_comment>
<glob pattern="*.bib"/>
</mime-type>
<mime-type type="text/x-c++hdr">
+ <sub-class-of type="text/plain"/>
<_comment>C++ source code header</_comment>
<glob pattern="*.hh"/>
</mime-type>
<mime-type type="text/x-c++src">
+ <sub-class-of type="text/plain"/>
<_comment>C++ source code</_comment>
<glob pattern="*.cpp"/>
<glob pattern="*.cxx"/>
@@ -2120,32 +2209,39 @@
<glob pattern="*.c++"/>
</mime-type>
<mime-type type="text/x-chdr">
+ <sub-class-of type="text/plain"/>
<_comment>C source code header</_comment>
<glob pattern="*.h"/>
<glob pattern="*.h++"/>
<glob pattern="*.hp"/>
</mime-type>
<mime-type type="text/x-comma-separated-values">
+ <sub-class-of type="text/plain"/>
<_comment>text document (with comma-separated values)</_comment>
<glob pattern="*.csv"/>
</mime-type>
<mime-type type="text/x-copying">
+ <sub-class-of type="text/plain"/>
<_comment>software license terms</_comment>
<glob pattern="COPYING"/>
</mime-type>
<mime-type type="text/x-credits">
+ <sub-class-of type="text/plain"/>
<_comment>software author credits</_comment>
<glob pattern="CREDITS"/>
</mime-type>
<mime-type type="text/x-csrc">
+ <sub-class-of type="text/plain"/>
<_comment>C source code</_comment>
<glob pattern="*.c"/>
</mime-type>
<mime-type type="text/x-csharp">
+ <sub-class-of type="text/plain"/>
<_comment>C# source code</_comment>
<glob pattern="*.cs"/>
</mime-type>
<mime-type type="text/x-dcl">
+ <sub-class-of type="text/plain"/>
<_comment>DCL script</_comment>
<glob pattern="*.dcl"/>
</mime-type>
@@ -2153,11 +2249,18 @@
<_comment>DSSSL document</_comment>
<glob pattern="*.dsl"/>
</mime-type>
+ <mime-type type="text/x-dsrc">
+ <sub-class-of type="text/plain"/>
+ <_comment>D source code</_comment>
+ <glob pattern="*.d"/>
+ </mime-type>
<mime-type type="text/x-dtd">
+ <sub-class-of type="text/plain"/>
<_comment>document type definition</_comment>
<glob pattern="*.dtd"/>
</mime-type>
<mime-type type="text/x-emacs-lisp">
+ <sub-class-of type="text/plain"/>
<_comment>Emacs Lisp source code</_comment>
<magic priority="50">
<match type="string" value="\012(" offset="0"/>
@@ -2166,68 +2269,110 @@
<glob pattern="*.el"/>
</mime-type>
<mime-type type="text/x-fortran">
+ <sub-class-of type="text/plain"/>
<_comment>Fortran source code</_comment>
<glob pattern="*.f"/>
</mime-type>
+ <mime-type type="text/x-gettext-translation">
+ <sub-class-of type="text/plain"/>
+ <_comment>translated messages</_comment>
+ <glob pattern="*.po"/>
+ </mime-type>
+ <mime-type type="text/x-gettext-translation-template">
+ <sub-class-of type="text/plain"/>
+ <_comment>message translation template</_comment>
+ <glob pattern="*.pot"/>
+ </mime-type>
+ <mime-type type="text/html">
+ <_comment>HTML page</_comment>
+ <magic priority="50">
+ <match type="string" value="&lt;!DOCTYPE HTML" offset="0:64"/>
+ <match type="string" value="&lt;!doctype html" offset="0:64"/>
+ <match type="string" value="&lt;HEAD" offset="0:64"/>
+ <match type="string" value="&lt;head" offset="0:64"/>
+ <match type="string" value="&lt;TITLE" offset="0:64"/>
+ <match type="string" value="&lt;title" offset="0:64"/>
+ <match type="string" value="&lt;html" offset="0:64"/>
+ <match type="string" value="&lt;HTML" offset="0:64"/>
+ <match type="string" value="&lt;BODY" offset="0"/>
+ <match type="string" value="&lt;body" offset="0"/>
+ <match type="string" value="&lt;TITLE" offset="0"/>
+ <match type="string" value="&lt;title" offset="0"/>
+ <match type="string" value="&lt;!--" offset="0"/>
+ <match type="string" value="&lt;h1" offset="0"/>
+ <match type="string" value="&lt;H1" offset="0"/>
+ <match type="string" value="&lt;!doctype HTML" offset="0"/>
+ <match type="string" value="&lt;!DOCTYPE html" offset="0"/>
+ </magic>
+ <glob pattern="*.html"/>
+ <glob pattern="*.htm"/>
+ </mime-type>
<mime-type type="text/x-gtkrc">
+ <sub-class-of type="text/plain"/>
<_comment>GTK configuration</_comment>
<glob pattern="gtkrc"/>
<glob pattern=".gtkrc"/>
</mime-type>
<mime-type type="text/x-haskell">
+ <sub-class-of type="text/plain"/>
<_comment>Haskell source code</_comment>
<glob pattern="*.hs"/>
</mime-type>
<mime-type type="text/x-idl">
+ <sub-class-of type="text/plain"/>
<_comment>IDL document</_comment>
<glob pattern="*.idl"/>
</mime-type>
<mime-type type="text/x-install">
+ <sub-class-of type="text/plain"/>
<_comment>software installation instructions</_comment>
<glob pattern="INSTALL"/>
</mime-type>
<mime-type type="text/x-java">
+ <sub-class-of type="text/plain"/>
<_comment>Java source code</_comment>
<glob pattern="*.java"/>
</mime-type>
- <mime-type type="text/x-ksh">
- <_comment>Korn shell script</_comment>
- <magic priority="50">
- <match type="string" value="/bin/ksh" offset="1:16"/>
- </magic>
- </mime-type>
<mime-type type="text/x-ksysv-log">
+ <sub-class-of type="text/plain"/>
<magic priority="50">
<match type="string" value="KDE System V Init Editor" offset="0"/>
</magic>
</mime-type>
<mime-type type="text/x-literate-haskell">
+ <sub-class-of type="text/plain"/>
<_comment>Literate haskell source code</_comment>
<glob pattern="*.lhs"/>
</mime-type>
<mime-type type="text/x-log">
+ <sub-class-of type="text/plain"/>
<_comment>application log</_comment>
<glob pattern="*.log"/>
</mime-type>
<mime-type type="text/x-makefile">
+ <sub-class-of type="text/plain"/>
<_comment>Makefile</_comment>
<glob pattern="makefile*"/>
<glob pattern="[Mm]akefile"/>
</mime-type>
<mime-type type="text/x-moc">
+ <sub-class-of type="text/plain"/>
<_comment>Qt Meta Object file</_comment>
<glob pattern="*.moc"/>
</mime-type>
<mime-type type="text/x-objcsrc">
+ <sub-class-of type="text/plain"/>
<_comment>Objective-C source code</_comment>
<glob pattern="*.m"/>
</mime-type>
<mime-type type="text/x-pascal">
+ <sub-class-of type="text/plain"/>
<_comment>Pascal source code</_comment>
<glob pattern="*.p"/>
<glob pattern="*.pas"/>
</mime-type>
<mime-type type="text/x-patch">
+ <sub-class-of type="text/plain"/>
<_comment>differences between files</_comment>
<magic priority="50">
<match type="string" value="diff\t" offset="0"/>
@@ -2242,15 +2387,36 @@
<glob pattern="*.diff"/>
<glob pattern="*.patch"/>
</mime-type>
+ <mime-type type="text/x-python">
+ <sub-class-of type='application/x-executable'/>
+ <sub-class-of type="text/plain"/>
+ <_comment>Python script</_comment>
+ <magic priority="50">
+ <match type="string" value="#!/bin/python" offset="0"/>
+ <match type="string" value="#! /bin/python" offset="0"/>
+ <match type="string" value='eval \"exec /bin/python' offset="0"/>
+ <match type="string" value="#!/usr/bin/python" offset="0"/>
+ <match type="string" value="#! /usr/bin/python" offset="0"/>
+ <match type="string" value='eval \"exec /usr/bin/python' offset="0"/>
+ <match type="string" value="#!/usr/local/bin/python" offset="0"/>
+ <match type="string" value="#! /usr/local/bin/python" offset="0"/>
+ <match type="string" value='eval \"exec /usr/local/bin/python' offset="0"/>
+ <match type="string" value='/bin/env python' offset="1:16"/>
+ </magic>
+ <glob pattern="*.py"/>
+ </mime-type>
<mime-type type="text/x-readme">
+ <sub-class-of type="text/plain"/>
<_comment>README document</_comment>
<glob pattern="README*"/>
</mime-type>
<mime-type type="text/x-scheme">
+ <sub-class-of type="text/plain"/>
<_comment>Scheme source code</_comment>
<glob pattern="*.scm"/>
</mime-type>
<mime-type type="text/x-setext">
+ <sub-class-of type="text/plain"/>
<_comment>Setext document</_comment>
<glob pattern="*.etx"/>
</mime-type>
@@ -2258,15 +2424,18 @@
<_comment>Speech document</_comment>
</mime-type>
<mime-type type="text/x-sql">
+ <sub-class-of type="text/plain"/>
<_comment>SQL code</_comment>
<glob pattern="*.sql"/>
</mime-type>
<mime-type type="text/x-tcl">
+ <sub-class-of type="text/plain"/>
<_comment>Tcl script</_comment>
<glob pattern="*.tcl"/>
<glob pattern="*.tk"/>
</mime-type>
<mime-type type="text/x-tex">
+ <sub-class-of type="text/plain"/>
<_comment>TeX document</_comment>
<glob pattern="*.tex"/>
<glob pattern="*.ltx"/>
@@ -2274,6 +2443,7 @@
<glob pattern="*.cls"/>
</mime-type>
<mime-type type="text/x-texinfo">
+ <sub-class-of type="text/plain"/>
<_comment>TeXInfo document</_comment>
<glob pattern="*.texi"/>
<glob pattern="*.texinfo"/>
@@ -2300,24 +2470,6 @@
<glob pattern="*.uri"/>
<glob pattern="*.url"/>
</mime-type>
- <mime-type type="text/x-vcalendar">
- <_comment>vCalendar interchange file</_comment>
- <magic priority="50">
- <match type="string" value="BEGIN:VCALENDAR" offset="0"/>
- <match type="string" value="begin:vcalendar" offset="0"/>
- </magic>
- <glob pattern="*.vcs"/>
- <glob pattern="*.vcf"/>
- </mime-type>
- <mime-type type="text/x-vcard">
- <_comment>electronic business card</_comment>
- <magic priority="50">
- <match type="string" value="BEGIN:VCARD" offset="0"/>
- <match type="string" value="begin:vcard" offset="0"/>
- </magic>
- <glob pattern="*.vct"/>
- <glob pattern="*.gcrd"/>
- </mime-type>
<mime-type type="text/x-xmi">
<_comment>XML Metadata Interchange file</_comment>
<glob pattern="*.xmi"/>
@@ -2328,7 +2480,9 @@
<glob pattern="*.xslfo"/>
</mime-type>
<mime-type type="text/x-xslt">
+ <sub-class-of type="text/plain"/>
<_comment>XSLT stylesheet</_comment>
+ <sub-class-of type="text/xml"/>
<glob pattern="*.xslt"/>
<glob pattern="*.xsl"/>
</mime-type>
@@ -2338,6 +2492,7 @@
</magic>
</mime-type>
<mime-type type="text/xml">
+ <sub-class-of type="text/plain"/>
<_comment>eXtensible Markup Language document</_comment>
<magic priority="50">
<match type="string" value="&lt;?xml" offset="0"/>

View file

@ -1,216 +1,16 @@
--- update-mime-database.c.orig Sat Mar 19 15:29:41 2005 --- update-mime-database.c.orig Fri Dec 3 15:46:28 2004
+++ update-mime-database.c Sat Mar 19 15:29:45 2005 +++ update-mime-database.c Fri Mar 25 14:51:30 2005
@@ -94,6 +94,12 @@ static GHashTable *globs_hash = NULL; @@ -408,7 +408,8 @@
/* 'magic' nodes */
static GPtrArray *magic_array = NULL;
+/* Maps MIME type names to superclass names */
+static GHashTable *subclass_hash = NULL;
+
+/* Maps aliases to Types */
+static GHashTable *alias_hash = NULL;
+
/* Static prototypes */
static Magic *magic_new(xmlNode *node, Type *type, GError **error);
@@ -295,12 +301,37 @@ static gboolean process_freedesktop_node
{
char *other_type;
gboolean valid;
+ GSList *list, *nlist;
+
other_type = xmlGetNsProp(field, "type", NULL);
valid = other_type && strchr(other_type, '/');
- xmlFree(other_type);
if (valid)
- return FALSE; /* Copy through */
+ {
+ char *typename;
+ typename = g_strdup_printf("%s/%s",
+ type->media,
+ type->subtype);
+
+ if (strcmp(field->name, "alias") == 0)
+ g_hash_table_insert(alias_hash,
+ g_strdup(other_type), type);
+
+ else
+ {
+ list = g_hash_table_lookup(subclass_hash, typename);
+ nlist = g_slist_append (list, g_strdup(other_type));
+ if (list == NULL)
+ g_hash_table_insert(subclass_hash,
+ g_strdup(typename), nlist);
+ }
+ g_free(typename);
+ xmlFree(other_type);
+
+ return FALSE; /* Copy through */
+ }
+
+ xmlFree(other_type);
g_set_error(error, MIME_ERROR, 0,
_("Incorrect or missing 'type' attribute "
"in <%s>"), field->name);
@@ -377,7 +408,8 @@ static void remove_old(Type *type, xmlNo
} }
} }
- xmlFree(lang); - xmlFree(lang);
+ if (lang) + if (lang)
+ xmlFree(lang); + xmlFree(lang);
} }
/* 'node' is a <mime-type> node from a source file, whose type is 'type'. /* 'node' is a <mime-type> node from a source file, whose type is 'type'.
@@ -809,7 +841,14 @@ static void parse_int_value(int bytes, c @@ -1458,7 +1459,7 @@
unsigned long value;
int b;
- value = strtol(in, &end, 0);
+ value = strtoul(in, &end, 0);
+ if (errno == ERANGE) {
+ g_set_error(error, MIME_ERROR, 0,
+ "Number out-of-range (%s should fit in %d bytes)",
+ in, bytes);
+ return;
+ }
+
if (*end != '\0')
{
g_set_error(error, MIME_ERROR, 0, "Value is not a number");
@@ -834,9 +873,17 @@ static void parse_int_value(int bytes, c
if (in_mask)
{
int b;
- long mask;
+ unsigned long mask;
- mask = strtol(in_mask, &end, 0);
+ mask = strtoul(in_mask, &end, 0);
+ if (errno == ERANGE) {
+ g_set_error(error, MIME_ERROR, 0,
+ "Mask out-of-range (%s should fit in %d bytes)",
+ in_mask, bytes);
+ return;
+ }
+
+
if (*end != '\0')
{
g_set_error(error, MIME_ERROR, 0,
@@ -847,7 +894,7 @@ static void parse_int_value(int bytes, c
out_mask = g_new(char, bytes);
for (b = 0; b < bytes; b++)
{
- int shift = (bytes - b - 1) * 8;
+ int shift = (big_endian ? (bytes - b - 1) : b) * 8;
out_mask[b] = (mask >> shift) & 0xff;
}
}
@@ -991,11 +1038,33 @@ static void match_offset(Match *match, x
}
match->range_start = strtol(offset, &end, 10);
+ if (errno == ERANGE) {
+ char *number;
+ number = g_strndup(offset, end-offset);
+ g_set_error(error, MIME_ERROR, 0,
+ "Number out-of-range (%s should fit in 4 bytes)",
+ number);
+ g_free(number);
+ return;
+ }
+
if (*end == ':' && end[1] && match->range_start >= 0)
{
int last;
+ char *begin;
+
+ begin = end + 1;
+ last = strtol(begin, &end, 10);
+ if (errno == ERANGE) {
+ char *number;
+ number = g_strndup(begin, end-begin);
+ g_set_error(error, MIME_ERROR, 0,
+ "Number out-of-range (%s should fit in 8 bytes)",
+ number);
+ g_free(number);
+ return;
+ }
- last = strtol(end + 1, &end, 10);
if (*end == '\0' && last >= match->range_start)
match->range_length = last - match->range_start + 1;
else
@@ -1310,6 +1379,66 @@ static void write_namespaces(FILE *strea
g_ptr_array_free(lines, TRUE);
}
+static void write_subclass(gpointer key, gpointer value, gpointer data)
+{
+ GSList *list = value;
+ FILE *stream = data;
+ GSList *l;
+ char *line;
+
+ for (l = list; l; l = l->next)
+ {
+ line = g_strconcat (key, " ", l->data, "\n", NULL);
+ fwrite(line, 1, strlen(line), stream);
+ g_free (line);
+ }
+}
+
+/* Write all the collected subclass information to 'subclasses' */
+static void write_subclasses(FILE *stream)
+{
+ g_hash_table_foreach(subclass_hash, write_subclass, stream);
+}
+
+/* Extract one entry from alias_hash and put it in the GPtrArray so
+ * we can sort it.
+ */
+static void add_alias(gpointer key, gpointer value, gpointer data)
+{
+ GPtrArray *lines = (GPtrArray *) data;
+ const guchar *alias = (guchar *) key;
+ Type *type = (Type *) value;
+
+ g_ptr_array_add(lines, g_strconcat(alias, " ", type->media,
+ "/", type->subtype, "\n",
+ NULL));
+}
+
+/* Write all the collected aliases */
+static void write_aliases(FILE *stream)
+{
+ GPtrArray *lines;
+ int i;
+
+ lines = g_ptr_array_new();
+
+ g_hash_table_foreach(alias_hash, add_alias, lines);
+
+ g_ptr_array_sort(lines, strcmp2);
+
+ for (i = 0; i < lines->len; i++)
+ {
+ char *line = (char *) lines->pdata[i];
+
+ fwrite(line, 1, strlen(line), stream);
+
+ g_free(line);
+ }
+
+ g_ptr_array_free(lines, TRUE);
+}
+
+
/* Issue a warning if 'path' won't be found by applications */
static void check_in_path_xdg_data(const char *mime_path)
{
@@ -1330,7 +1459,7 @@ static void check_in_path_xdg_data(const
env = getenv("XDG_DATA_DIRS"); env = getenv("XDG_DATA_DIRS");
if (!env) if (!env)
@ -219,88 +19,3 @@
dirs = g_strsplit(env, ":", 0); dirs = g_strsplit(env, ":", 0);
g_return_if_fail(dirs != NULL); g_return_if_fail(dirs != NULL);
for (n = 0; dirs[n]; n++) for (n = 0; dirs[n]; n++)
@@ -1371,6 +1500,14 @@ out:
g_free(path);
}
+static void free_string_list(gpointer data)
+{
+ GSList *list = data;
+
+ g_slist_foreach(list, (GFunc)g_free, NULL);
+ g_slist_free(list);
+}
+
int main(int argc, char **argv)
{
char *mime_dir = NULL;
@@ -1442,7 +1579,11 @@ int main(int argc, char **argv)
namespace_hash = g_hash_table_new_full(g_str_hash, g_str_equal,
g_free, NULL);
magic_array = g_ptr_array_new();
-
+ subclass_hash = g_hash_table_new_full(g_str_hash, g_str_equal,
+ g_free, free_string_list);
+ alias_hash = g_hash_table_new_full(g_str_hash, g_str_equal,
+ g_free, NULL);
+
scan_source_dir(package_dir);
g_free(package_dir);
@@ -1494,7 +1635,7 @@ int main(int argc, char **argv)
atomic_update(magic_path);
g_free(magic_path);
}
-
+
{
FILE *stream;
char *ns_path;
@@ -1510,12 +1651,47 @@ int main(int argc, char **argv)
atomic_update(ns_path);
g_free(ns_path);
}
+
+ {
+ FILE *stream;
+ char *path;
+
+ path = g_strconcat(mime_dir, "/subclasses.new", NULL);
+ stream = fopen(path, "wb");
+ if (!stream)
+ g_error("Failed to open '%s' for writing\n",
+ path);
+
+ write_subclasses(stream);
+
+ atomic_update(path);
+ g_free(path);
+ }
+
+ {
+ FILE *stream;
+ char *path;
+
+ path = g_strconcat(mime_dir, "/aliases.new", NULL);
+ stream = fopen(path, "wb");
+ if (!stream)
+ g_error("Failed to open '%s' for writing\n",
+ path);
+
+ write_aliases(stream);
+
+ atomic_update(path);
+ g_free(path);
+ }
+
g_ptr_array_free(magic_array, TRUE);
g_hash_table_destroy(types);
g_hash_table_destroy(globs_hash);
g_hash_table_destroy(namespace_hash);
+ g_hash_table_destroy(subclass_hash);
+ g_hash_table_destroy(alias_hash);
g_print("***\n");