From c490a6ff2b7336121428c908de1ad4ceb87f6199 Mon Sep 17 00:00:00 2001 From: Rasmus Villemoes Date: Thu, 18 Jul 2013 21:53:12 +0000 Subject: [PATCH] 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. --- src/rm.c | 10 +++++++--- tests/rm/interactive-always.sh | 4 ++-- tests/rm/interactive-once.sh | 12 ++++++------ 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/rm.c b/src/rm.c index 3e187cf80d..b9b84e1178 100644 --- a/src/rm.c +++ b/src/rm.c @@ -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 1dfb5a694d..13743eb497 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 d138b75208..dcda5b8482 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 -- 2.47.2