summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--THANKS1
-rw-r--r--src/rmdir.c14
3 files changed, 17 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index f48ffddb9..92a840884 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2007-06-13 Jim Meyering <jim@meyering.net>
+ rmdir: give better diagnostics
+ * src/rmdir.c (remove_parents): Give a more descriptive/consistent
+ diagnostic upon failure.
+ (main): Likewise.
+ Suggestion from Joey Hess.
+ * THANKS: Add Joey Hess.
+
Don't include "quotearg.h" when it is not used.
* Makefile.maint (sc_prohibit_quotearg_without_use): New rule.
* src/cp.c: Don't include "quotearg.h". It wasn't used.
diff --git a/THANKS b/THANKS
index e35b9fd5e..c86dab72e 100644
--- a/THANKS
+++ b/THANKS
@@ -239,6 +239,7 @@ Joakim Rosqvist dvljrt@cs.umu.se
Jochen Hein jochen@jochen.org
Joe Orton joe@manyfish.co.uk
Joerg Sonnenberger joerg@britannica.bec.de
+Joey Hess joeyh@debian.org
Johan Boule bohan@bohan.dyndns.org
Johan Danielsson joda@pdc.kth.se
John Bley jbb6@acpub.duke.edu
diff --git a/src/rmdir.c b/src/rmdir.c
index 5dd5a35a6..ca1af0e4c 100644
--- a/src/rmdir.c
+++ b/src/rmdir.c
@@ -1,6 +1,6 @@
/* rmdir -- remove directories
- Copyright (C) 90, 91, 1995-2002, 2004, 2005, 2006 Free Software
+ Copyright (C) 90, 91, 1995-2002, 2004, 2005, 2006, 2007 Free Software
Foundation, Inc.
This program is free software; you can redistribute it and/or modify
@@ -31,7 +31,7 @@
#include "system.h"
#include "error.h"
-#include "quotearg.h"
+#include "quote.h"
/* The official name of this program (e.g., no `g' prefix). */
#define PROGRAM_NAME "rmdir"
@@ -107,7 +107,7 @@ remove_parents (char *dir)
/* Give a diagnostic for each attempted removal if --verbose. */
if (verbose)
- error (0, 0, _("removing directory, %s"), dir);
+ error (0, 0, _("removing directory, %s"), quote (dir));
ok = (rmdir (dir) == 0);
@@ -121,7 +121,9 @@ remove_parents (char *dir)
}
else
{
- error (0, errno, "%s", quotearg_colon (dir));
+ /* Barring race conditions, DIR is expected to be a directory. */
+ error (0, errno, _("failed to remove directory %s"),
+ quote (dir));
}
break;
}
@@ -213,7 +215,9 @@ main (int argc, char **argv)
&& errno_rmdir_non_empty (errno))
continue;
- error (0, errno, "%s", quotearg_colon (dir));
+ /* Here, the diagnostic is less precise, since we have no idea
+ whether DIR is a directory. */
+ error (0, errno, _("failed to remove %s"), quote (dir));
ok = false;
}
else if (remove_empty_parents)