summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobby Russell <robby@planetargon.com>2014-04-19 12:53:42 -0700
committerRobby Russell <robby@planetargon.com>2014-04-19 12:53:42 -0700
commit8aa6e6a412258c6a8210a9a18c407377ac187c9d (patch)
tree0c36b61eb856f4602a7bf338994aa2af7929200b
parentee31abfb2d627fd5e1a75f9e013e5016dba49b01 (diff)
parent9385b3ee0a8425ae8a2b5c16084d4fab1ebc3764 (diff)
downloadzsh-8aa6e6a412258c6a8210a9a18c407377ac187c9d.tar.gz
zsh-8aa6e6a412258c6a8210a9a18c407377ac187c9d.tar.bz2
zsh-8aa6e6a412258c6a8210a9a18c407377ac187c9d.zip
Merge pull request #2650 from kemko/patch-1
don't add --exclude-dir to GREP_OPTIONS on FreeBSD
-rw-r--r--lib/grep.zsh23
1 files changed, 17 insertions, 6 deletions
diff --git a/lib/grep.zsh b/lib/grep.zsh
index 977435ee4..276fec382 100644
--- a/lib/grep.zsh
+++ b/lib/grep.zsh
@@ -3,11 +3,22 @@
# Examples: http://rubyurl.com/ZXv
#
-# avoid VCS folders
-GREP_OPTIONS=
-for PATTERN in .cvs .git .hg .svn; do
- GREP_OPTIONS+="--exclude-dir=$PATTERN "
-done
-GREP_OPTIONS+="--color=auto"
+GREP_OPTIONS="--color=auto"
+
+# avoid VCS folders (if the necessary grep flags are available)
+grep-flag-available() {
+ echo | grep $1 "" >/dev/null 2>&1
+}
+if grep-flag-available --exclude-dir=.cvs; then
+ for PATTERN in .cvs .git .hg .svn; do
+ GREP_OPTIONS+=" --exclude-dir=$PATTERN"
+ done
+elif grep-flag-available --exclude=.cvs; then
+ for PATTERN in .cvs .git .hg .svn; do
+ GREP_OPTIONS+=" --exclude=$PATTERN"
+ done
+fi
+unfunction grep-flag-available
+
export GREP_OPTIONS="$GREP_OPTIONS"
export GREP_COLOR='1;32'