diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | Completion/Unix/Command/.distfiles | 1 | ||||
-rw-r--r-- | Completion/Unix/Command/_rm | 41 | ||||
-rw-r--r-- | NEWS | 10 |
4 files changed, 58 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index a105ed2b7..bff66fa2b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-10-08 Peter Stephenson <pws@csr.com> + + * Nikolai Weibull: 25828: Completion/Unix/Command/_rm, + Completion/Unix/Command/.distfiles: new completion. + + * unposted: NEWS: note some new features. + 2008-10-07 Clint Adams <clint@zsh.org> * 25823: Functions/Misc/run-help: bring up zshcontrib man page if 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 diff --git a/NEWS b/NEWS index 01b44bc12..cdea0a127 100644 --- a/NEWS +++ b/NEWS @@ -11,12 +11,20 @@ The option COMBINING_CHARS has been added. When it is set, the line editor assumes the terminal is capable of displaying zero-width combining characters (typically accents) correctly as modifications to the base character, and will act accordingly. Note it is not set -by default owing to vagaries of terminals. +by default owing to vagaries of terminals. The system is reported +to work on MacOS, where this is particularly important as accented +characters in file names are stored in their decomposed form (i.e. +with base and combining characters). The option HIST_FCNTL_LOCK has been added to provide locking of history files using the system call fcntl(). On recent NFS implementations this may provide better reliability. +The syntax ~[...] provides a dynamic form of directory naming, +supplementing the existing static ~name syntax. A user-defined shell +function, zsh_directory_name, is used to handle both expansion of names to +directories and contraction of directories to names. + Patterns can now be used in incremental searches with the new widgets history-incremental-pattern-search-backward and history-incremental-pattern-search-forward. These are not bound to |