[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