From 73a3ad345c6915aff3ead289da36f0dbece28591 Mon Sep 17 00:00:00 2001 From: Jun-ichi Takimoto Date: Wed, 18 Jul 2018 00:38:10 +0900 Subject: 43177: _grep: support bzgrep, and add a few options for macOS --- ChangeLog | 5 +++++ Completion/Unix/Command/_grep | 20 +++++++++++++------- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 060db0507..147eb359e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2018-07-18 Jun-ichi Takimoto + + * 43177: Completion/Unix/Command/_grep: support bzgrep, and add + a few options for macOS. + 2018-07-17 Peter Stephenson * unposted: Doc/Makefile.in: remove ftp_sites.yo. diff --git a/Completion/Unix/Command/_grep b/Completion/Unix/Command/_grep index 5f45ce9a8..3bc8d3fe0 100644 --- a/Completion/Unix/Command/_grep +++ b/Completion/Unix/Command/_grep @@ -1,4 +1,4 @@ -#compdef grep egrep fgrep bsdgrep zgrep zegrep zfgrep ggrep gegrep gfgrep gzgrep gzegrep gzfgrep -value-,GREP_OPTIONS,-default- +#compdef grep egrep fgrep bsdgrep zgrep zegrep zfgrep ggrep gegrep gfgrep gzgrep gzegrep gzfgrep bzgrep bzegrep bzfgrep -value-,GREP_OPTIONS,-default- local arguments matchers command variant @@ -11,13 +11,15 @@ else arguments=( '(-e --regexp -f --file)1: :_guard "^-*" pattern' ) if [[ $service = z* ]]; then arguments+=( '*:files:_files -g "*.gz(-.)"' ) + elif [[ $service = bz* ]]; then + arguments+=( '*:files:_files -g "*.bz2(-.)"' ) else arguments+=( '*:files:_files' ) fi command="$words[1]" fi -if [[ $service != (|g)(|z)[ef]grep ]]; then +if [[ $service != (|g|z|gz|bz)[ef]grep ]]; then matchers='(--extended-regexp --fixed-strings --basic-regexp --perl-regexp -E -F -G -P)' arguments+=( $matchers{--extended-regexp,-E}'[use extended regular expression]' @@ -66,7 +68,7 @@ arguments+=( _pick_variant -r variant -c "$command" gnu=gnu gpl2=2.5.1 unix --version case $variant:$OSTYPE in (gnu:*|gpl2:freebsd*)) - [[ $service != (|g)(|z)[ef]grep ]] && arguments+=( + [[ $service != (|g|z|gz|bz)[ef]grep ]] && arguments+=( $matchers{--perl-regexp,-P}'[use perl regular expression]' ) ;| @@ -76,15 +78,19 @@ case $variant:$OSTYPE in '(-z --null-data)'{-z,--null-data}'[input data separated by 0 byte, not newline]' ) ;| - gpl2:freebsd*) + gpl2:(freebsd|darwin)*) arguments+=( '(--null --no-filename -h)--null[print 0 byte after each filename]' + '(-Z --decompress -J --bz2decompress)'{-J,--bz2decompress}"[decompress bzip2'ed input before searching]" + '(-Z --decompress -J --bz2decompress)'{-Z,--decompress}"[decompress gzip'ed input before searching]" ) ;| - gpl2:(freebsd|darwin)*) + gpl2:darwin*) arguments+=( - '(-Z --decompress -J --bz2decompress)'{-J,--bz2decompress}"[decompress bzip2'ed input before searching]" - '(-Z --decompress -J --bz2decompress)'{-Z,--decompress}"[decompress gzip'ed input before searching]" + '(-p -S)-O[follow symlinks on the command line]' + '(-O -S)-p[do not follow symlinks]' + '(-O -p)-S[follow all symlinks]' + '*--include-dir=[only search directories matching specified pattern]:directory pattern' ) ;| (gnu:*|gpl2:netbsd*)) -- cgit 1.4.1