diff options
| author | bjorn <bjorn@bringert.net> | 2008-08-15 20:31:23 +0000 |
|---|---|---|
| committer | bjorn <bjorn@bringert.net> | 2008-08-15 20:31:23 +0000 |
| commit | 5bdfedcedf5886fefb8b73e199d2797b3cd029d0 (patch) | |
| tree | e7108764470af8c65688b2315b3723d3b82fa6c3 /src/server/MainFastCGI.hs | |
| parent | 38cdd440016282ddcfebee15861883086a7ad212 (diff) | |
Qualify PGF import in fastcgi server, to avoid hiding Language, which breaks with older cgi versions.
Diffstat (limited to 'src/server/MainFastCGI.hs')
| -rw-r--r-- | src/server/MainFastCGI.hs | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/src/server/MainFastCGI.hs b/src/server/MainFastCGI.hs index a0ce72f9d..c363aea7b 100644 --- a/src/server/MainFastCGI.hs +++ b/src/server/MainFastCGI.hs @@ -1,9 +1,10 @@ {-# LANGUAGE DeriveDataTypeable #-} -import PGF +import PGF (PGF) +import qualified PGF import FastCGIUtils -import Network.CGI hiding (Language) +import Network.CGI import Text.JSON import qualified Codec.Binary.UTF8.String as UTF8 (encodeString) @@ -31,7 +32,7 @@ main = do initFastCGI loopFastCGI (handleErrors (handleCGIErrors (fcgiMain r))) fcgiMain :: DataRef PGF -> CGI CGIResult -fcgiMain ref = getData readPGF ref grammarFile >>= cgiMain +fcgiMain ref = getData PGF.readPGF ref grammarFile >>= cgiMain cgiMain :: PGF -> CGI CGIResult cgiMain pgf = @@ -42,25 +43,25 @@ cgiMain pgf = mfrom <- getLang pgf "from" mto <- getLang pgf "to" outputJSON $ translate pgf input mcat mfrom mto - "/categories" -> outputJSON $ categories pgf - "/languages" -> outputJSON $ languages pgf + "/categories" -> outputJSON $ PGF.categories pgf + "/languages" -> outputJSON $ PGF.languages pgf _ -> outputNotFound path -getCat :: PGF -> String -> CGI (Maybe Category) +getCat :: PGF -> String -> CGI (Maybe PGF.Category) getCat pgf i = do mcat <- getInput i case mcat of Just "" -> return Nothing - Just cat | cat `notElem` categories pgf -> + Just cat | cat `notElem` PGF.categories pgf -> throwCGIError 400 "Unknown category" ["Unknown category: " ++ cat] _ -> return mcat -getLang :: PGF -> String -> CGI (Maybe Language) +getLang :: PGF -> String -> CGI (Maybe PGF.Language) getLang pgf i = do mlang <- getInput i case mlang of Just "" -> return Nothing - Just lang | lang `notElem` languages pgf -> + Just lang | lang `notElem` PGF.languages pgf -> throwCGIError 400 "Unknown language" ["Unknown language: " ++ lang] _ -> return mlang @@ -72,13 +73,13 @@ outputStrict :: String -> CGI CGIResult outputStrict x | x == x = output x | otherwise = fail "I am the pope." -translate :: PGF -> String -> Maybe Category -> Maybe Language -> Maybe Language -> Translation +translate :: PGF -> String -> Maybe PGF.Category -> Maybe PGF.Language -> Maybe PGF.Language -> Translation translate pgf input mcat mfrom mto = - Record [(from, [Record [(to, linearize pgf to tree) | to <- toLangs] | tree <- trees]) - | from <- fromLangs, let trees = parse pgf from cat input, not (null trees)] - where cat = fromMaybe (startCat pgf) mcat - fromLangs = maybe (languages pgf) (:[]) mfrom - toLangs = maybe (languages pgf) (:[]) mto + Record [(from, [Record [(to, PGF.linearize pgf to tree) | to <- toLangs] | tree <- trees]) + | from <- fromLangs, let trees = PGF.parse pgf from cat input, not (null trees)] + where cat = fromMaybe (PGF.startCat pgf) mcat + fromLangs = maybe (PGF.languages pgf) (:[]) mfrom + toLangs = maybe (PGF.languages pgf) (:[]) mto -- * General CGI Error exception mechanism |
