{-# LINE 1 "src/System/Directory/Glob/Internal.hsc" #-} {-| {-# LINE 2 "src/System/Directory/Glob/Internal.hsc" #-} Module : System.Directory.Glob.Internal Copyright : (c) Reuben D'Netto 2016 License : Apache 2.0 Maintainer : rdnetto@gmail.com Portability : POSIX -} module System.Directory.Glob.Internal where import Data.Bits ((.|.)) import Data.Monoid ((<>)) import Foreign.C.Types (CInt(..)) {-# LINE 15 "src/System/Directory/Glob/Internal.hsc" #-} -- | Control flags for glob. Use 'globDefaults' if you have no special requirements. -- To combine multiple flags, use the '<>' operator (re-exported here for convenience). -- See <https://linux.die.net/man/3/glob man glob(3)> for more information. data GlobFlag = GlobFlag !CInt -- | Default value - equivalent to 0 for the C function. globDefaults = GlobFlag 0 instance Monoid GlobFlag where mempty = globDefaults mappend (GlobFlag a) (GlobFlag b) = GlobFlag (a .|. b) -- | Used for mutation of an existing structure - for internal use only. globAppend :: GlobFlag globAppend = GlobFlag 32 {-# LINE 32 "src/System/Directory/Glob/Internal.hsc" #-} -- | Append a @/@ to each entry that is the path of a directory. globMark :: GlobFlag globMark = GlobFlag 2 {-# LINE 34 "src/System/Directory/Glob/Internal.hsc" #-} -- | If there are no matches, return the original pattern. globNoCheck :: GlobFlag globNoCheck = GlobFlag 16 {-# LINE 36 "src/System/Directory/Glob/Internal.hsc" #-} -- | Disable the use of @\@ for escaping metacharacters. globNoEscape :: GlobFlag globNoEscape = GlobFlag 64 {-# LINE 38 "src/System/Directory/Glob/Internal.hsc" #-} -- | Do not sort the entries before returning them. globNoSort :: GlobFlag globNoSort = GlobFlag 4 {-# LINE 40 "src/System/Directory/Glob/Internal.hsc" #-} -- GNU extensions {-# LINE 43 "src/System/Directory/Glob/Internal.hsc" #-} -- | Enable CSH-style brace expansion. e.g. foo.{txt,md}. Supports nested braces. (GNU extension) globBrace :: GlobFlag globBrace = GlobFlag 1024 {-# LINE 45 "src/System/Directory/Glob/Internal.hsc" #-} -- | Enables globNoCheck if the pattern contains no metacharacters. (GNU extension) globNoMagic :: GlobFlag globNoMagic = GlobFlag 2048 {-# LINE 47 "src/System/Directory/Glob/Internal.hsc" #-} -- | Only return directories, if it is cheap to do so. (GNU extension) globOnlyDir :: GlobFlag globOnlyDir = GlobFlag 8192 {-# LINE 49 "src/System/Directory/Glob/Internal.hsc" #-} -- | Allow leading '.' to be matched by metacharacters. globPeriod :: GlobFlag globPeriod = GlobFlag 128 {-# LINE 51 "src/System/Directory/Glob/Internal.hsc" #-} -- | Substitute home directory for '~' or '~user' prefixes. globTilde :: GlobFlag globTilde = GlobFlag 4096 {-# LINE 53 "src/System/Directory/Glob/Internal.hsc" #-} -- | Like globTilde, but return no matches if there is no such user. globTildeCheck :: GlobFlag globTildeCheck = GlobFlag 16384 {-# LINE 55 "src/System/Directory/Glob/Internal.hsc" #-} {-# LINE 56 "src/System/Directory/Glob/Internal.hsc" #-}