diff options
author | Rasmus Villemoes <rv@rasmusvillemoes.dk> | 2013-07-18 21:53:12 +0000 |
---|---|---|
committer | Pádraig Brady <P@draigBrady.com> | 2013-07-19 12:27:09 +0100 |
commit | c490a6ff2b7336121428c908de1ad4ceb87f6199 (patch) | |
tree | cea64963e65a18457c4f7311c1d6f3341dee8d6e | |
parent | e6fc265b755eef0eae425caec3f93b8e28dbdddb (diff) | |
download | coreutils-c490a6ff2b7336121428c908de1ad4ceb87f6199.tar.xz |
rm: output number of arguments at the interactive prompt
Include the number of arguments which rm received in the "Remove all
arguments?" prompt. This is useful in the, presumably, common case
where the arguments were not provided by hand, but instead were the
result of various shell expansions. A simple, if somewhat contrived,
example (assuming rm is aliased to rm -I) could be:
rm * .o
where the prompt "Remove 120 arguments?" is more likely to make
the user catch the problem.
* src/rm.c (main): Include correctly pluralized n_files
in the output message. Also remove the now redudant "all".
* tests/rm/interactive-always.sh: Adjust to the new prompt.
* tests/rm/interactive-once.sh: Likewise.
-rw-r--r-- | src/rm.c | 10 | ||||
-rwxr-xr-x | tests/rm/interactive-always.sh | 4 | ||||
-rwxr-xr-x | tests/rm/interactive-once.sh | 12 |
3 files changed, 15 insertions, 11 deletions
@@ -339,9 +339,13 @@ main (int argc, char **argv) { fprintf (stderr, (x.recursive - ? _("%s: remove all arguments recursively? ") - : _("%s: remove all arguments? ")), - program_name); + ? ngettext ("%s: remove %zu argument recursively? ", + "%s: remove %zu arguments recursively? ", + select_plural (n_files)) + : ngettext ("%s: remove %zu argument? ", + "%s: remove %zu arguments? ", + select_plural (n_files))), + program_name, n_files); if (!yesno ()) exit (EXIT_SUCCESS); } diff --git a/tests/rm/interactive-always.sh b/tests/rm/interactive-always.sh index 1dfb5a694..13743eb49 100755 --- a/tests/rm/interactive-always.sh +++ b/tests/rm/interactive-always.sh @@ -72,13 +72,13 @@ no WHEN WHEN=never . WHEN=once -rm: remove all arguments recursively? . +rm: remove 2 arguments recursively? . WHEN=always @remove_empty 'file4-1'? @remove_empty 'file4-2'? . -f overrides --interactive . --interactive overrides -f -rm: remove all arguments recursively? . +rm: remove 1 argument recursively? . EOF compare expout out || fail=1 diff --git a/tests/rm/interactive-once.sh b/tests/rm/interactive-once.sh index d138b7520..dcda5b848 100755 --- a/tests/rm/interactive-once.sh +++ b/tests/rm/interactive-once.sh @@ -88,17 +88,17 @@ one file, no recursion three files, no recursion . four files, no recursion, answer no -rm: remove all arguments? . +rm: remove 4 arguments? . four files, no recursion, answer yes -rm: remove all arguments? . +rm: remove 4 arguments? . one file, recursion, answer no -rm: remove all arguments recursively? . +rm: remove 1 argument recursively? . one file, recursion, answer yes -rm: remove all arguments recursively? . +rm: remove 1 argument recursively? . multiple files, recursion, answer no -rm: remove all arguments recursively? . +rm: remove 2 arguments recursively? . multiple files, recursion, answer yes -rm: remove all arguments recursively? . +rm: remove 2 arguments recursively? . EOF compare expout out || fail=1 |