from regex_syntax
import *
return ggrep(RE_SYNTAX_GREP
, pat
, files
)
return ggrep(RE_SYNTAX_EGREP
, pat
, files
)
return ggrep(RE_SYNTAX_EMACS
, pat
, files
)
def ggrep(syntax
, pat
, files
):
if len(files
) == 1 and type(files
[0]) == type([]):
opt_show_filename
= (len(files
) != 1)
syntax
= regex
.set_syntax(syntax
)
prog
= regex
.compile(pat
)
syntax
= regex
.set_syntax(syntax
)
if prog
.search(line
) >= 0:
showline(filename
, lineno
, line
, prog
)
if len(files
) == 1 and type(files
[0]) == type([]):
opt_show_filename
= (len(files
) != 1)
showline(filename
, lineno
, line
, prog
)
def showline(filename
, lineno
, line
, prog
):
if line
[-1:] == '\n': line
= line
[:-1]
prefix
= `lineno`
.rjust(3) + ': '
prefix
= filename
+ ': ' + prefix
start
, end
= prog
.regs()[0]
prefix
= ' ' * (len(prefix
) + start
)
prefix
= ' ' * len(prefix
)
if start
== end
: prefix
= prefix
+ '\\'
else: prefix
= prefix
+ '^'*(end
-start
)