darcs-2.8.4: a distributed, interactive, smart revision control system

Safe Haskell | None

Darcs.Patch.FileName

Description

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

Synopsis

- data FileName
- fp2fn :: FilePath -> FileName
- fn2fp :: FileName -> FilePath
- fn2ps :: FileName -> ByteString
- ps2fn :: ByteString -> FileName
- niceps2fn :: ByteString -> FileName
- fn2niceps :: FileName -> ByteString
- breakOnDir :: FileName -> Maybe (FileName, FileName)
- normPath :: FileName -> FileName
- ownName :: FileName -> FileName
- superName :: FileName -> FileName
- movedirfilename :: FileName -> FileName -> FileName -> FileName
- encodeWhite :: FilePath -> String
- decodeWhite :: String -> FilePath
- (///) :: FileName -> FileName -> FileName
- breakup :: String -> [String]
- isParentOrEqOf :: FileName -> FileName -> Bool

# Documentation

data FileName

Instances

Eq FileName |
Ord FileName |
Show FileName |
FilePathLike FileName |
FilePathOrURL FileName |

fp2fn :: FilePath -> FileName

fn2fp :: FileName -> FilePath

fn2ps :: FileName -> ByteString

ps2fn :: ByteString -> FileName

niceps2fn :: ByteString -> FileName

fn2niceps :: FileName -> ByteString

breakOnDir :: FileName -> Maybe (FileName, FileName)

normPath :: FileName -> FileName

ownName :: FileName -> FileName

superName :: FileName -> FileName

movedirfilename :: FileName -> FileName -> FileName -> FileName

encodeWhite :: FilePath -> String

`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 -> FilePath

`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"

(///) :: FileName -> FileName -> FileName

breakup :: String -> [String]

Split a file path at the slashes

isParentOrEqOf :: FileName -> FileName -> Bool