From: Rasmus Villemoes Date: Thu, 18 Jul 2013 21:53:12 +0000 (+0000) Subject: rm: output number of arguments at the interactive prompt X-Git-Tag: v8.22~102 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c490a6ff2b7336121428c908de1ad4ceb87f6199;p=thirdparty%2Fcoreutils.git 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. --- 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