packages feed

cgrep 6.5.8 → 6.5.9

raw patch · 7 files changed

+35/−21 lines, 7 filesdep +regex-basedep +regex-pcre

Dependencies added: regex-base, regex-pcre

Files

README.md view
@@ -4,19 +4,20 @@ Usage ----- -Cgrep 6.5.8 Usage: cgrep [OPTION] [PATTERN] files...+Cgrep 6.5.9 Usage: cgrep [OPTION] [PATTERN] files...  cgrep [OPTIONS] [ITEM]  Pattern: -    -f --file=FILE            read PATTERNs from file (one per line)-    -w --word                 force word matching-    -p --prefix               force prefix matching-    -s --suffix               force suffix matching-    -e --edit                 use edit distance-    -i --ignore-case          ignore case distinctions-    -G --regex                regex matching+    -f --file=FILE            Read PATTERNs from file (one per line)+    -w --word                 Force word matching+    -p --prefix               Force prefix matching+    -s --suffix               Force suffix matching+    -e --edit                 Use edit distance+    -G --regex                Use regex matching (posix)+    -P --regex-pcre           Use regex matching (pcre)+    -i --ignore-case          Ignore case distinctions  Context filters (generic): 
cgrep.cabal view
@@ -1,6 +1,6 @@ Name:                cgrep Description:         Cgrep: a context-aware grep for source codes-Version:             6.5.8+Version:             6.5.9 Synopsis:            Command line tool Homepage:            http://awgn.github.io/cgrep/ License:             GPL-2@@ -41,7 +41,9 @@                        safe >=0.3,                         stringsearch >=0.3,                         unordered-containers >=0.1, +                       regex-base >=0.90,                        regex-posix >=0.90,+                       regex-pcre >=0.90,                        either >= 4.0,                        mtl >= 2.0,                        unix-compat >= 0.4,
src/CGrep/CGrep.hs view
@@ -67,17 +67,19 @@   } = i || k || d || h || n || s || c || o  +isRegexp :: Options -> Bool+isRegexp opt = regex_posix opt || regex_pcre opt  runCgrep :: FilePath -> [Text8] -> ReaderT Options IO [Output] runCgrep filename patterns = do     opt <- ask     case () of-        _ | not (regex opt) && not (hasTokenizerOpt opt) && not (semantic opt) && edit_dist opt -> Levenshtein.search filename patterns-          | not (regex opt) && not (hasTokenizerOpt opt) && not (semantic opt)                  -> BoyerMoore.search filename patterns-          | not (regex opt) && semantic opt && hasLanguage filename opt [C,Cpp]                 -> CppSemantic.search filename patterns-          | not (regex opt) && semantic opt                                                     -> Semantic.search filename patterns-          | not (regex opt)                                                                     -> CppTokenizer.search filename patterns-          | regex opt                                                                           -> Regex.search filename patterns-          | otherwise                                                                           -> undefined+        _ | (not . isRegexp) opt && not (hasTokenizerOpt opt) && not (semantic opt) && edit_dist opt -> Levenshtein.search filename patterns+          | (not . isRegexp) opt && not (hasTokenizerOpt opt) && not (semantic opt)                  -> BoyerMoore.search filename patterns+          | (not . isRegexp) opt && semantic opt && hasLanguage filename opt [C,Cpp]                 -> CppSemantic.search filename patterns+          | (not . isRegexp) opt && semantic opt                                                     -> Semantic.search filename patterns+          | (not . isRegexp) opt                                                                     -> CppTokenizer.search filename patterns+          | isRegexp opt                                                                             -> Regex.search filename patterns+          | otherwise                                                                                -> undefined  
src/CGrep/Strategy/Regex.hs view
@@ -24,7 +24,11 @@  import Control.Monad.Trans.Reader import Control.Monad.IO.Class++import Text.Regex.Base import Text.Regex.Posix+import Text.Regex.PCRE+ import Data.Array  import CGrep.Common@@ -36,6 +40,7 @@ import Debug  + search :: FilePath -> [Text8] -> ReaderT Options IO [Output] search f patterns = do @@ -53,10 +58,12 @@      -- search for matching tokens +        (=~~~) = if regex_pcre opt then (Text.Regex.PCRE.=~) else (Text.Regex.Posix.=~)+         tokens = map (\(str, (off,_)) -> (off, C.unpack str) ) $-                    concatMap elems $ patterns >>= (\p -> elems (getAllTextMatches $ text''' =~ p :: (Array Int) (MatchText Text8)))+                    concatMap elems $ patterns >>= (\p -> elems (getAllTextMatches $ text''' =~~~ p :: (Array Int) (MatchText Text8))) -    putStrLevel1 $ "strategy  : running regex search on " ++ filename ++ "..."+    putStrLevel1 $ "strategy  : running regex " ++ (if regex_pcre opt then "(pcre)" else "(posix)") ++ " search on " ++ filename ++ "..."     putStrLevel2 $ "tokens    : " ++ show tokens     putStrLevel3 $ "---\n" ++ C.unpack text''' ++ "\n---" 
src/CmdOptions.hs view
@@ -30,7 +30,8 @@           ,     prefix_match  = False       &= help "Force prefix matching" &=explicit &= name "prefix" &= name "p"           ,     suffix_match  = False       &= help "Force suffix matching" &=explicit &= name "suffix" &= name "s"           ,     edit_dist   = False         &= help "Use edit distance" &=explicit &= name "edit" &= name "e"-          ,     regex = False               &= help "Use regex matching" &= explicit &= name "G" &=name "regex"+          ,     regex_posix = False         &= help "Use regex matching (posix)" &= explicit &= name "G" &=name "regex"+          ,     regex_pcre = False          &= help "Use regex matching (pcre)"  &= explicit &= name "P" &=name "regex-pcre"           ,     ignore_case = False         &= help "Ignore case distinctions"           ,     code = False                &= groupname "\nContext filters (generic)" &= help "Enable search in source code"     &= explicit &= name "c" &= name "code"           ,     comment = False             &= help "Enable search in comments"        &= explicit &= name "m" &= name "comment"
src/Config.hs view
@@ -33,7 +33,7 @@ cgreprc = "cgreprc"  version :: String-version = "6.5.8"+version = "6.5.9"   data Config = Config
src/Options.hs view
@@ -29,8 +29,9 @@     ,   prefix_match        :: Bool     ,   suffix_match        :: Bool     ,   edit_dist           :: Bool+    ,   regex_posix         :: Bool+    ,   regex_pcre          :: Bool     ,   ignore_case         :: Bool-    ,   regex               :: Bool     -- Context:     ,   code                :: Bool     ,   comment             :: Bool