darcs-beta- a distributed, interactive, smart revision control system



FileName is an abstract type intended to facilitate the input and output of unicode filenames.



encodeWhite :: FilePath -> StringSource

encodeWhite translates whitespace in filenames to a darcs-specific format (numerical representation according to ord surrounded by backslashes). Note that backslashes are also escaped since they are used in the encoding.

 encodeWhite "hello there" == "hello\32\there"
 encodeWhite "hello\there" == "hello\92\there"

decodeWhite :: String -> FilePathSource

decodeWhite interprets the Darcs-specific "encoded" filenames produced by encodeWhite

 decodeWhite "hello\32\there"  == "hello there"
 decodeWhite "hello\92\there"  == "hello\there"
 decodeWhite "hello\there"   == error "malformed filename"

breakup :: String -> [String]Source

Split a file path at the slashes