gf -server: fix bug that caused '+' to be converted to ' ' in uploaded grammars

Fixed buggy workaround for bug in httpd-shed function queryToArguments.
This commit is contained in:
hallgren
2012-02-01 17:17:46 +00:00
parent ac5ee00e21
commit 4c1c115217

View File

@@ -90,10 +90,9 @@ handle_fcgi execute1 state0 stateM cache =
-- | HTTP request handler
handle state0 cache execute1
rq@(Request method URI{uriPath=upath,uriQuery=q} hdrs body) state =
do let qs = decodeQ $
case method of
"GET" -> queryToArguments q
"POST" -> queryToArguments body
do let qs = case method of
"GET" -> inputs q
"POST" -> inputs body
logPutStrLn $ method++" "++upath++" "++show qs
case upath of
@@ -338,9 +337,11 @@ toHeader s = FCGI.HttpExtensionHeader s -- cheating a bit
-}
-- * misc utils
decodeQ qs = [(decode n,decode v)|(n,v)<-qs]
decode = map decode1
decode1 '+' = ' ' -- httpd-shed bug workaround
decode1 c = c
inputs = queryToArguments . fixplus
where
fixplus = concatMap decode
decode '+' = "%20" -- httpd-shed bug workaround
decode c = [c]
mapFst f xys = [(f x,y)|(x,y)<-xys]