diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2008-10-08 11:37:34 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2008-10-08 11:37:34 +0000 |
commit | 612cec047f7726f5b5f974b365894de4a58aef78 (patch) | |
tree | 635fdab2765c00d37f3c796710231e6c6bd41482 /Completion/Unix/Command | |
parent | 7e86f2da31ec41931f6fb524854d5baf6143062a (diff) | |
download | zsh-612cec047f7726f5b5f974b365894de4a58aef78.tar.gz zsh-612cec047f7726f5b5f974b365894de4a58aef78.tar.xz zsh-612cec047f7726f5b5f974b365894de4a58aef78.zip |
Nikolai Weibull: 25828: new rm completion
unposted: note some new features in NEWS
Diffstat (limited to 'Completion/Unix/Command')
-rw-r--r-- | Completion/Unix/Command/.distfiles | 1 | ||||
-rw-r--r-- | Completion/Unix/Command/_rm | 41 |
2 files changed, 42 insertions, 0 deletions
diff --git a/Completion/Unix/Command/.distfiles b/Completion/Unix/Command/.distfiles index c8d935bd5..2a96ad6b1 100644 --- a/Completion/Unix/Command/.distfiles +++ b/Completion/Unix/Command/.distfiles @@ -164,6 +164,7 @@ _rcs _renice _ri _rlogin +_rm _rrdtool _rsync _rubber diff --git a/Completion/Unix/Command/_rm b/Completion/Unix/Command/_rm new file mode 100644 index 000000000..4209134b0 --- /dev/null +++ b/Completion/Unix/Command/_rm @@ -0,0 +1,41 @@ +#compdef rm + +declare -a opts args +args=( + '(-f --force)'{-f,--force}'[ignore nonexistent files, never prompt]' + '(-I --interactive)-i[prompt before every removal]' + '(-r -R --recursive)'{-r,-R,--recursive}'[remove directories and their contents recursively]' + '*:files:->file' +) +if _pick_variant gnu=gnu unix --help; then + opts+=(-S) + args+=( + '(-i --interactive)-I[prompt when removing many files]' + '(-i -I)--interactive=-[prompt under given condition (defaulting to always)]::when:((once\:"prompt when removing many files" + always\:"prompt before every removal"))' + '--one-file-system[stay within filesystems of files given as arguments]' + '( --preserve-root)--no-preserve-root[do not treat / specially]' + '(--no-preserve-root )--preserve-root[do not remove / (default)]' + '(-v --verbose)'{-v,--verbose}'[explain what is being done]' + '(- *)--help[display help message and exit]' + '(- *)--version[output version information and exit]' + ) +else + args=(${args:#*--(force|recursive)\[*}) +fi + +local curcontext=$curcontext state line ret=1 +declare -A opt_args + +_arguments -C $opts \ + $args && ret=0 + +case $state in + (file) + declare -a ignored + ignored=(${line//(#m)[\[\]()\\*?#<>~\^]/\\$MATCH}) + _path_files -F ignored && ret=0 + ;; +esac + +return $ret |