diff options
author | Oliver Kiddle <opk@zsh.org> | 2015-05-03 16:53:47 +0200 |
---|---|---|
committer | Oliver Kiddle <opk@zsh.org> | 2015-05-03 16:53:57 +0200 |
commit | ab7ec8d9851fea8230e1ccfba284c5bfaf457d88 (patch) | |
tree | 837b14c838b96728ebdb530eb20d35737ef8419b /Completion/Unix/Command/_sed | |
parent | b29278c69a67089ba225a98478069eb3f32ab4e6 (diff) | |
download | zsh-ab7ec8d9851fea8230e1ccfba284c5bfaf457d88.tar.gz zsh-ab7ec8d9851fea8230e1ccfba284c5bfaf457d88.tar.xz zsh-ab7ec8d9851fea8230e1ccfba284c5bfaf457d88.zip |
35011: update completions for some common Unix commands,
in particular improving FreeBSD support
Diffstat (limited to 'Completion/Unix/Command/_sed')
-rw-r--r-- | Completion/Unix/Command/_sed | 42 |
1 files changed, 35 insertions, 7 deletions
diff --git a/Completion/Unix/Command/_sed b/Completion/Unix/Command/_sed index 476575205..8e2385cc8 100644 --- a/Completion/Unix/Command/_sed +++ b/Completion/Unix/Command/_sed @@ -1,22 +1,29 @@ -#compdef sed +#compdef sed gsed psed s2p -local args +local args inplace extended args=( '(-n --quiet --silent)'{-n,--quiet,--silent}'[suppress automatic printing of pattern space]' - '(1)*'{-e,--expression=-}'[add sed commands to run]:sed script' + '(1)*'{-e,--expression=-}'[specify sed commands to run]:sed script' '(1)*'{-f,--file=-}'[add contents of file to commands to run]:file:_files' '(-e)1: :_guard "^-*" sed script' '*:input file:_files' ) +inplace='[edit files in-place, running scripts separately for each file]::suffix for backup' +extended='[use extended regular expressions]' -if _pick_variant gnu=GNU unix --version; then +if [[ $service = (psed|s2p) ]]; then + args=( + "${(@)args:#(|\(*\))(|\*)--*}" + '-a[delay opening files listed with w function]' + ) +elif _pick_variant gnu=GNU unix --version; then args+=( '--follow-symlinks[follow symlinks when processing in place]' - '(-i --in-place)'{-i-,--in-place=-}'[edit files in place]::suffix for backup' + '(-i --in-place)'{-i-,--in-place=-}$inplace '(-l --line-length)'{-l,--line-length=-}'[specify line-wrap length for the l command]' '(-r)--posix[disable GNU extensions]' - '(-r --regexp-extended)'{-r,--regexp-extended}'[use extended regular expressions]' + '(-r --regexp-extended)'{-r,--regexp-extended}$extended '(-s --separate)'{-s,--separate}'[consider files separately instead of as a combined stream]' '(-u --unbuffered)'{-u,--unbuffered}'[disable data buffering]' '(- 1 :)--help[print program usage]' @@ -24,6 +31,27 @@ if _pick_variant gnu=GNU unix --version; then ) else args=( "${(@)args:#(|\(*\))(|\*)--*}" ) + case $OSTYPE in + openbsd*|freebsd*|netbsd*|darwin*|dragonfly*) + args+=( + '(-r -E)'{-r,-E}$extended + '-a[delay opening files listed with w function]' + ) + ;| + darwin*|freebsd*|netbsd*) + args+=( + '-i'$inplace + '-l[make output line buffered]' + ) + ;| + freebsd*) args+=( '-u[disable data buffering]' ) ;| + freebsd*|netbsd*) + args+=( + '-I[edit files in-place, treating all files as a single input stream]::suffix for backup' + ) + ;; + openbsd*) args+=( '-u[make output line buffered]' ) ;; + esac fi -_arguments "$args[@]" +_arguments -s "$args[@]" |