@@ -115,15 +115,20 @@ getContent x = getC x "" where
115115 getC (n-1) (strCons x acc)
116116 else (return "")
117117
118+getCgiEnv : String -> IO String
119+getCgiEnv key = do
120+ val <- getEnv key
121+ return $ maybe "" id val
122+
118123abstract
119124runCGI : CGI a -> IO a
120125runCGI prog = do
121− clen_in <- getEnv "CONTENT_LENGTH"
126+ clen_in <- getCgiEnv "CONTENT_LENGTH"
122127 let clen = prim__fromStrInt clen_in
123128 content <- getContent clen
124− query <- getEnv "QUERY_STRING"
125− cookie <- getEnv "HTTP_COOKIE"
126− agent <- getEnv "HTTP_USER_AGENT"
129+ query <- getCgiEnv "QUERY_STRING"
130+ cookie <- getCgiEnv "HTTP_COOKIE"
131+ agent <- getCgiEnv "HTTP_USER_AGENT"
127132
128133 let get_vars = getVars ['&',';'] query
129134 let post_vars = getVars ['&'] content