pwd.hs 842 Bytes
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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]