[Pkg-haskell-commits] [SCM] haskell-testpack branch, master, updated. debian/1.0.2-1-4-gb0d6b36
John Goerzen
jgoerzen at complete.org
Fri Apr 23 15:05:25 UTC 2010
The following commit has been merged in the master branch:
commit 724b7ba26c0b6b41f776673fff2b8ffe2f0a7920
Author: John Goerzen <jgoerzen at complete.org>
Date: Tue Dec 27 03:27:05 2005 +0100
Convert MIMETypes.hs from FiniteMap to Data.Map
diff --git a/MissingH/MIMETypes.hs b/MissingH/MIMETypes.hs
index ede7ae1..55e11ce 100644
--- a/MissingH/MIMETypes.hs
+++ b/MissingH/MIMETypes.hs
@@ -1,5 +1,5 @@
{- arch-tag: MIME Types main file
-Copyright (C) 2004 John Goerzen <jgoerzen at complete.org>
+Copyright (C) 2004-2005 John Goerzen <jgoerzen at complete.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -18,7 +18,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
{- |
Module : MissingH.MIMETypes
- Copyright : Copyright (C) 2004 John Goerzen
+ Copyright : Copyright (C) 2004-2005 John Goerzen
License : GNU GPL, version 2 or above
Maintainer : John Goerzen <jgoerzen at complete.org>
@@ -44,14 +44,14 @@ module MissingH.MIMETypes (-- * Creating Lookup Objects
)
where
-import Data.FiniteMap
+import qualified Data.Map as Map
import qualified System.Directory
import Monad
import System.IO
import System.IO.Error
import MissingH.IO
import MissingH.Path
-import MissingH.FiniteMap
+import MissingH.Map
import Data.Char
----------------------------------------------------------------------
@@ -63,15 +63,15 @@ data MIMETypeData = MIMETypeData
-- | A mapping used to expand common suffixes into equivolent,
-- better-parsed versions. For instance, ".tgz" would expand
-- into ".tar.gz".
- suffixMap :: FiniteMap String String,
+ suffixMap :: Map.Map String String,
-- | A mapping used to determine the encoding of a file.
-- This is used, for instance, to map ".gz" to "gzip".
- encodingsMap :: FiniteMap String String,
+ encodingsMap :: Map.Map String String,
-- | A mapping used to map extensions to MIME types.
- typesMap :: FiniteMap String String,
+ typesMap :: Map.Map String String,
-- | A mapping used to augment the 'typesMap' when non-strict
-- lookups are used.
- commonTypesMap :: FiniteMap String String
+ commonTypesMap :: Map.Map String String
}
{- | Return value from guessing a file's type.
@@ -96,8 +96,7 @@ readMIMETypes :: MIMETypeData -- ^ Data to work with
-> IO MIMETypeData -- ^ New object
readMIMETypes mtd strict fn = do
h <- openFile fn ReadMode
- retval <- hReadMIMETypes mtd strict h
- return retval
+ hReadMIMETypes mtd strict h
{- | Load a mime.types file from an already-open handle. -}
hReadMIMETypes :: MIMETypeData -- ^ Data to work with
@@ -133,11 +132,11 @@ guessType :: MIMETypeData -- ^ Source data for guessing
-> MIMEResults -- ^ Result of guessing (see 'MIMEResults' for details on interpreting it)
guessType mtd strict fn =
let mapext (base, ext) =
- case lookupFM (suffixMap mtd) ext of
+ case Map.lookup ext (suffixMap mtd) of
Nothing -> (base, ext)
Just x -> mapext (splitExt (base ++ x))
checkencodings (base, ext) =
- case lookupFM (encodingsMap mtd) ext of
+ case Map.lookup ext (encodingsMap mtd) of
Nothing -> (base, ext, Nothing)
Just x -> (fst (splitExt base),
snd (splitExt base),
@@ -145,8 +144,8 @@ guessType mtd strict fn =
(base, ext, enc) = checkencodings . mapext $ splitExt fn
typemap = getStrict mtd strict
in
- case lookupFM typemap ext of
- Nothing -> (lookupFM typemap (map toLower ext), enc)
+ case Map.lookup ext typemap of
+ Nothing -> (Map.lookup (map toLower ext) typemap, enc)
Just x -> (Just x, enc)
{- | Guess the extension of a file based on its MIME type.
@@ -176,7 +175,7 @@ guessAllExtensions mtd strict fn =
let mimetype = map toLower fn
themap = getStrict mtd strict
in
- flippedLookupFM themap mimetype
+ flippedLookupM mimetype themap
{- | Adds a new type to the data structures, replacing whatever data
may exist about it already. That is, it overrides existing information
@@ -188,7 +187,7 @@ addType :: MIMETypeData -- ^ Source data
-> String -- ^ Extension to add
-> MIMETypeData -- ^ Result of addition
addType mtd strict thetype theext =
- setStrict mtd strict (\m -> addToFM m theext thetype)
+ setStrict mtd strict (\m -> Map.insert theext thetype m)
{- | Default MIME type data to use -}
defaultmtd :: MIMETypeData
@@ -220,11 +219,11 @@ readSystemMIMETypes mtd =
-- Internal utilities
----------------------------------------------------------------------
-getStrict :: MIMETypeData -> Bool -> FiniteMap String String
+getStrict :: MIMETypeData -> Bool -> Map.Map String String
getStrict mtd True = typesMap mtd
-getStrict mtd False = plusFM (commonTypesMap mtd) (typesMap mtd)
+getStrict mtd False = Map.union (typesMap mtd) (commonTypesMap mtd)
-setStrict :: MIMETypeData -> Bool -> (FiniteMap String String -> FiniteMap String String) -> MIMETypeData
+setStrict :: MIMETypeData -> Bool -> (Map.Map String String -> Map.Map String String) -> MIMETypeData
setStrict mtd True func = mtd{typesMap = func (typesMap mtd)}
setStrict mtd False func = mtd{commonTypesMap = func (commonTypesMap mtd)}
@@ -242,145 +241,145 @@ defaultfilelocations =
]
-default_encodings_map = listToFM [
- (".Z", "compress"),
- (".gz", "gzip"),
- (".bz2", "bzip2")
- ]
+default_encodings_map = Map.fromList [
+ (".Z", "compress"),
+ (".gz", "gzip"),
+ (".bz2", "bzip2")
+ ]
-default_suffix_map = listToFM [
- (".tgz", ".tar.gz"),
- (".tz", ".tar.gz"),
- (".taz", ".tar.gz")
- ]
-
-default_types_map = listToFM [
- (".a", "application/octet-stream"),
- (".ai", "application/postscript"),
- (".aif", "audio/x-aiff"),
- (".aifc", "audio/x-aiff"),
- (".aiff", "audio/x-aiff"),
- (".au", "audio/basic"),
- (".avi", "video/x-msvideo"),
- (".bat", "text/plain"),
- (".bcpio", "application/x-bcpio"),
- (".bin", "application/octet-stream"),
- (".bmp", "image/x-ms-bmp"),
- (".c", "text/plain"),
- (".cdf", "application/x-netcdf"),
- (".cpio", "application/x-cpio"),
- (".csh", "application/x-csh"),
- (".css", "text/css"),
- (".dll", "application/octet-stream"),
- (".doc", "application/msword"),
- (".dot", "application/msword"),
- (".dvi", "application/x-dvi"),
- (".eml", "message/rfc822"),
- (".eps", "application/postscript"),
- (".etx", "text/x-setext"),
- (".exe", "application/octet-stream"),
- (".gif", "image/gif"),
- (".gtar", "application/x-gtar"),
- (".h", "text/plain"),
- (".hdf", "application/x-hdf"),
- (".htm", "text/html"),
- (".html", "text/html"),
- (".ief", "image/ief"),
- (".jpe", "image/jpeg"),
- (".jpeg", "image/jpeg"),
- (".jpg", "image/jpeg"),
- (".js", "application/x-javascript"),
- (".ksh", "text/plain"),
- (".latex", "application/x-latex"),
- (".m1v", "video/mpeg"),
- (".man", "application/x-troff-man"),
- (".me", "application/x-troff-me"),
- (".mht", "message/rfc822"),
- (".mhtml", "message/rfc822"),
- (".mif", "application/x-mif"),
- (".mov", "video/quicktime"),
- (".movie", "video/x-sgi-movie"),
- (".mp2", "audio/mpeg"),
- (".mp3", "audio/mpeg"),
- (".mpa", "video/mpeg"),
- (".mpe", "video/mpeg"),
- (".mpeg", "video/mpeg"),
- (".mpg", "video/mpeg"),
- (".ms", "application/x-troff-ms"),
- (".nc", "application/x-netcdf"),
- (".nws", "message/rfc822"),
- (".o", "application/octet-stream"),
- (".obj", "application/octet-stream"),
- (".oda", "application/oda"),
- (".p12", "application/x-pkcs12"),
- (".p7c", "application/pkcs7-mime"),
- (".pbm", "image/x-portable-bitmap"),
- (".pdf", "application/pdf"),
- (".pfx", "application/x-pkcs12"),
- (".pgm", "image/x-portable-graymap"),
- (".pl", "text/plain"),
- (".png", "image/png"),
- (".pnm", "image/x-portable-anymap"),
- (".pot", "application/vnd.ms-powerpoint"),
- (".ppa", "application/vnd.ms-powerpoint"),
- (".ppm", "image/x-portable-pixmap"),
- (".pps", "application/vnd.ms-powerpoint"),
- (".ppt", "application/vnd.ms-powerpoint"),
- (".ps", "application/postscript"),
- (".pwz", "application/vnd.ms-powerpoint"),
- (".py", "text/x-python"),
- (".pyc", "application/x-python-code"),
- (".pyo", "application/x-python-code"),
- (".qt", "video/quicktime"),
- (".ra", "audio/x-pn-realaudio"),
- (".ram", "application/x-pn-realaudio"),
- (".ras", "image/x-cmu-raster"),
- (".rdf", "application/xml"),
- (".rgb", "image/x-rgb"),
- (".roff", "application/x-troff"),
- (".rtx", "text/richtext"),
- (".sgm", "text/x-sgml"),
- (".sgml", "text/x-sgml"),
- (".sh", "application/x-sh"),
- (".shar", "application/x-shar"),
- (".snd", "audio/basic"),
- (".so", "application/octet-stream"),
- (".src", "application/x-wais-source"),
- (".sv4cpio", "application/x-sv4cpio"),
- (".sv4crc", "application/x-sv4crc"),
- (".swf", "application/x-shockwave-flash"),
- (".t", "application/x-troff"),
- (".tar", "application/x-tar"),
- (".tcl", "application/x-tcl"),
- (".tex", "application/x-tex"),
- (".texi", "application/x-texinfo"),
- (".texinfo", "application/x-texinfo"),
- (".tif", "image/tiff"),
- (".tiff", "image/tiff"),
- (".tr", "application/x-troff"),
- (".tsv", "text/tab-separated-values"),
- (".txt", "text/plain"),
- (".ustar", "application/x-ustar"),
- (".vcf", "text/x-vcard"),
- (".wav", "audio/x-wav"),
- (".wiz", "application/msword"),
- (".xbm", "image/x-xbitmap"),
- (".xlb", "application/vnd.ms-excel"),
- (".xls", "application/vnd.ms-excel"),
- (".xml", "text/xml"),
- (".xpm", "image/x-xpixmap"),
- (".xsl", "application/xml"),
- (".xwd", "image/x-xwindowdump"),
- (".zip", "application/zip")
- ]
-
-default_common_types = listToFM [
- (".jpg", "image/jpg"),
- (".mid", "audio/midi"),
- (".midi", "audio/midi"),
- (".pct", "image/pict"),
- (".pic", "image/pict"),
- (".pict", "image/pict"),
- (".rtf", "application/rtf"),
- (".xul", "text/xul")
- ]
+default_suffix_map = Map.fromList [
+ (".tgz", ".tar.gz"),
+ (".tz", ".tar.gz"),
+ (".taz", ".tar.gz")
+ ]
+
+default_types_map = Map.fromList [
+ (".a", "application/octet-stream"),
+ (".ai", "application/postscript"),
+ (".aif", "audio/x-aiff"),
+ (".aifc", "audio/x-aiff"),
+ (".aiff", "audio/x-aiff"),
+ (".au", "audio/basic"),
+ (".avi", "video/x-msvideo"),
+ (".bat", "text/plain"),
+ (".bcpio", "application/x-bcpio"),
+ (".bin", "application/octet-stream"),
+ (".bmp", "image/x-ms-bmp"),
+ (".c", "text/plain"),
+ (".cdf", "application/x-netcdf"),
+ (".cpio", "application/x-cpio"),
+ (".csh", "application/x-csh"),
+ (".css", "text/css"),
+ (".dll", "application/octet-stream"),
+ (".doc", "application/msword"),
+ (".dot", "application/msword"),
+ (".dvi", "application/x-dvi"),
+ (".eml", "message/rfc822"),
+ (".eps", "application/postscript"),
+ (".etx", "text/x-setext"),
+ (".exe", "application/octet-stream"),
+ (".gif", "image/gif"),
+ (".gtar", "application/x-gtar"),
+ (".h", "text/plain"),
+ (".hdf", "application/x-hdf"),
+ (".htm", "text/html"),
+ (".html", "text/html"),
+ (".ief", "image/ief"),
+ (".jpe", "image/jpeg"),
+ (".jpeg", "image/jpeg"),
+ (".jpg", "image/jpeg"),
+ (".js", "application/x-javascript"),
+ (".ksh", "text/plain"),
+ (".latex", "application/x-latex"),
+ (".m1v", "video/mpeg"),
+ (".man", "application/x-troff-man"),
+ (".me", "application/x-troff-me"),
+ (".mht", "message/rfc822"),
+ (".mhtml", "message/rfc822"),
+ (".mif", "application/x-mif"),
+ (".mov", "video/quicktime"),
+ (".movie", "video/x-sgi-movie"),
+ (".mp2", "audio/mpeg"),
+ (".mp3", "audio/mpeg"),
+ (".mpa", "video/mpeg"),
+ (".mpe", "video/mpeg"),
+ (".mpeg", "video/mpeg"),
+ (".mpg", "video/mpeg"),
+ (".ms", "application/x-troff-ms"),
+ (".nc", "application/x-netcdf"),
+ (".nws", "message/rfc822"),
+ (".o", "application/octet-stream"),
+ (".obj", "application/octet-stream"),
+ (".oda", "application/oda"),
+ (".p12", "application/x-pkcs12"),
+ (".p7c", "application/pkcs7-mime"),
+ (".pbm", "image/x-portable-bitmap"),
+ (".pdf", "application/pdf"),
+ (".pfx", "application/x-pkcs12"),
+ (".pgm", "image/x-portable-graymap"),
+ (".pl", "text/plain"),
+ (".png", "image/png"),
+ (".pnm", "image/x-portable-anymap"),
+ (".pot", "application/vnd.ms-powerpoint"),
+ (".ppa", "application/vnd.ms-powerpoint"),
+ (".ppm", "image/x-portable-pixmap"),
+ (".pps", "application/vnd.ms-powerpoint"),
+ (".ppt", "application/vnd.ms-powerpoint"),
+ (".ps", "application/postscript"),
+ (".pwz", "application/vnd.ms-powerpoint"),
+ (".py", "text/x-python"),
+ (".pyc", "application/x-python-code"),
+ (".pyo", "application/x-python-code"),
+ (".qt", "video/quicktime"),
+ (".ra", "audio/x-pn-realaudio"),
+ (".ram", "application/x-pn-realaudio"),
+ (".ras", "image/x-cmu-raster"),
+ (".rdf", "application/xml"),
+ (".rgb", "image/x-rgb"),
+ (".roff", "application/x-troff"),
+ (".rtx", "text/richtext"),
+ (".sgm", "text/x-sgml"),
+ (".sgml", "text/x-sgml"),
+ (".sh", "application/x-sh"),
+ (".shar", "application/x-shar"),
+ (".snd", "audio/basic"),
+ (".so", "application/octet-stream"),
+ (".src", "application/x-wais-source"),
+ (".sv4cpio", "application/x-sv4cpio"),
+ (".sv4crc", "application/x-sv4crc"),
+ (".swf", "application/x-shockwave-flash"),
+ (".t", "application/x-troff"),
+ (".tar", "application/x-tar"),
+ (".tcl", "application/x-tcl"),
+ (".tex", "application/x-tex"),
+ (".texi", "application/x-texinfo"),
+ (".texinfo", "application/x-texinfo"),
+ (".tif", "image/tiff"),
+ (".tiff", "image/tiff"),
+ (".tr", "application/x-troff"),
+ (".tsv", "text/tab-separated-values"),
+ (".txt", "text/plain"),
+ (".ustar", "application/x-ustar"),
+ (".vcf", "text/x-vcard"),
+ (".wav", "audio/x-wav"),
+ (".wiz", "application/msword"),
+ (".xbm", "image/x-xbitmap"),
+ (".xlb", "application/vnd.ms-excel"),
+ (".xls", "application/vnd.ms-excel"),
+ (".xml", "text/xml"),
+ (".xpm", "image/x-xpixmap"),
+ (".xsl", "application/xml"),
+ (".xwd", "image/x-xwindowdump"),
+ (".zip", "application/zip")
+ ]
+
+default_common_types = Map.fromList [
+ (".jpg", "image/jpg"),
+ (".mid", "audio/midi"),
+ (".midi", "audio/midi"),
+ (".pct", "image/pict"),
+ (".pic", "image/pict"),
+ (".pict", "image/pict"),
+ (".rtf", "application/rtf"),
+ (".xul", "text/xul")
+ ]
--
haskell-testpack
More information about the Pkg-haskell-commits
mailing list