X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=utils%2Fpwd%2Fpwd.hs;fp=utils%2Fpwd%2Fpwd.hs;h=264cc982e9990703c37f3e8755e989215739e30e;hb=068bf75eeee553c7f2cb06b8d84bdff58677c319;hp=0000000000000000000000000000000000000000;hpb=c5805c8232bd3ece535e78c86c72bddec05bb975;p=ghc-hetmet.git diff --git a/utils/pwd/pwd.hs b/utils/pwd/pwd.hs new file mode 100644 index 0000000..264cc98 --- /dev/null +++ b/utils/pwd/pwd.hs @@ -0,0 +1,26 @@ + +module Main where + +import System.Directory +import System.Environment + +main :: IO () +main = do args <- getArgs + let escape = case args of + ["quadruple-backslash"] -> escape_quadruple_backslash + ["forwardslash"] -> escape_forwardslash + _ -> error ("pwd: Bad args: " ++ show args) + d <- getCurrentDirectory + putStr $ concatMap escape d + +-- In prog006 we have to escape \ twice, once to get through sed and +-- again to get through parsing pkg.conf +escape_quadruple_backslash :: Char -> String +escape_quadruple_backslash '\\' = "\\\\\\\\" +escape_quadruple_backslash c = [c] + +-- Normally we can get away with just replacing backslashes with forwardslashes +escape_forwardslash :: Char -> String +escape_forwardslash '\\' = "/" +escape_forwardslash c = [c] +