summaryrefslogtreecommitdiff
path: root/Completion/Unix/Command/_grep
diff options
context:
space:
mode:
authorSven Wischnowsky <wischnow@users.sourceforge.net>2001-04-02 11:52:20 +0000
committerSven Wischnowsky <wischnow@users.sourceforge.net>2001-04-02 11:52:20 +0000
commit84d41177d703e418eba21fe622e48a5e85c834c3 (patch)
tree8a045d4a8dd2be4444803068ed3adba72fbdbf91 /Completion/Unix/Command/_grep
parenta355b046bab20d5389712967738cb79f021581dd (diff)
downloadzsh-84d41177d703e418eba21fe622e48a5e85c834c3.tar.gz
zsh-84d41177d703e418eba21fe622e48a5e85c834c3.zip
moved from Completion/User/_grep
Diffstat (limited to 'Completion/Unix/Command/_grep')
-rw-r--r--Completion/Unix/Command/_grep72
1 files changed, 72 insertions, 0 deletions
diff --git a/Completion/Unix/Command/_grep b/Completion/Unix/Command/_grep
new file mode 100644
index 000000000..5c2fd8869
--- /dev/null
+++ b/Completion/Unix/Command/_grep
@@ -0,0 +1,72 @@
+#compdef grep egrep fgrep
+# Ulrik Haugen 2001
+
+local efgrep="" efarguments arguments
+
+(( $+_is_gnu )) || typeset -gA _is_gnu
+
+if (( ! $+_is_gnu[$words[1]] )); then
+ if [[ $(_call_program version $words[1] --help </dev/null 2>/dev/null) = *gnu* ]]
+ then
+ _is_gnu[$words[1]]=yes
+ else
+ _is_gnu[$words[1]]=
+ fi
+fi
+
+
+[[ "$service" = [ef]grep ]] && efgrep=t
+
+if [[ -z $efgrep ]]; then
+ efarguments=( \
+ '(--extended-regexp -F --fixed-strings)-E[extended regexp]' \
+ '(-E -F --fixed-strings)--extended-regexp' \
+ '(--fixed-strings -E --extended-regexp)-F[fixed strings]' \
+ '(-F -E --extended-regexp)--fixed-strings' \
+ )
+fi
+
+arguments=( \
+ '(-e --regexp -f --file)1:pattern:' \
+ {'(--regexp -f --file 1)-e+[regexp]','(-e -f --file 1)--regexp='}':regexp:' \
+ {'(--file -e --regexp 1)-f+[file]','(-f -e --regexp 1)--file='}':pattern file:_files' \
+ \
+ '*:files:_files' \
+ \
+ {'(--after-context)-A+[after context]','(-A)--after-context='}':after context:(1)' \
+ '(--text --binary-files)-a[text]' '(-a --binary-files)--text' \
+ {'(--before-context)-B+[before context]','(-B)--before-context='}':before context:(1)' \
+ {'(--context)-C+[context]','(-C)--context='}':context:(1)' \
+ '(--byte-offset)-b[byte offset]' '(-b)--byte-offset' \
+ '(-a --text -I)--binary-files:binary files:(binary without-match text)' \
+ '(--count)-c[count]' '(-c)--count' \
+ {'(--directories -r --recursive)-d+[directories]','(-d -r --recursive)--directories='}':directories:(read skip recurse grep)' \
+ \
+ $efarguments \
+ \
+ '(--basic-regexp)-G[basic regexp]' '(-G)--basic-regexp' \
+ '(--with-filename)-H[with filename]' '(-H)--with-filename' \
+ '(--no-filename)-h[no filename]' '(-h)--no-filename' \
+ '--help' \
+ '(--binary-files)-I[ignore binary]' \
+ '(--ignore-case)-i[ignore case]' '(-i)--ignore-case' \
+ '(--files-without-match)-L[files without match]' '(-L)--files-without-match' \
+ '(--file-with-matches)-l[files with matches]' '(-l)--files-with-matches' \
+ '--mmap' \
+ '(--line-number)-n[line number]' '(-n)--line-number' \
+ '(--quiet --silent)-q[quiet]' '(-q --quiet)--silent' '(-q --silent)--quiet' \
+ '(--recursive -d --directories)-r[recursive]' '(-r -d --directories)--recursive' \
+ '(--no-mesages)-s[no messages]' '(-s)--no-messages' \
+ '(--version)-V[version]' '(-V)--version' \
+ '(--invert-match)-v[invert match]' '(-v)--invert-match' \
+ '(--word-regexp)-w[word regexp]' '(-w)--word-regexp' \
+ '(--line-regexp)-x[line regexp]' '(-x)--line-regexp' \
+ '(--null)-Z[null]' '(-Z)--null' \
+)
+
+# remove long options?
+[[ -z "$_is_gnu[$words[1]]" ]] &&
+ arguments=( ${${${${arguments:#*\)--*}:#--*}//--[^ )]#/}/\( #\)/} )
+
+_arguments -s $arguments
+