bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#12339: Bug: rm -fr . doesn't dir depth first deletion yet it is docu


From: Linda Walsh
Subject: bug#12339: Bug: rm -fr . doesn't dir depth first deletion yet it is documented to do so.
Date: Wed, 05 Sep 2012 14:06:02 -0700
User-agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.24) Gecko/20100228 Lightning/0.9 Thunderbird/2.0.0.24 Mnenhy/0.7.6.666

Thanks for the efforts at cleaning things up...it's appreciated
even if it's not exactly what  I might want...just wanted to
emphasize that your I appreciate the work you are doing!..

I just don't always appreciate the 'posixifing' of linux's default
behavior...but then I like powerful interface that allow me to shoot
myself in the foot if I really want to! ;-)



Jim Meyering wrote:
Paul Eggert wrote:

On 09/05/2012 07:56 AM, Jim Meyering wrote:
+  /* When failing to rmdir an unreadable directory, the typical errno value
+     is EISDIR or ENOTDIR, but that would be meaningless in a diagnostic.
+     When that happens and the errno value from the failed open is EPERM
+     or EACCES, use the earlier, more descriptive errno value.  */
+  if (ent->fts_info == FTS_DNR
+      && (errno == ENOTEMPTY || errno == EISDIR || errno == ENOTDIR)
+      && (ent->fts_errno == EPERM || ent->fts_errno == EACCES))
Thanks for doing all that.  I did notice that the code mentions
ENOTEMPTY but the comment doesn't -- is that intentional?

Yes.  I considered whether to remove explicit mention of those errno
values in the comment for precisely that reason, but didn't bother.
Good point.  I've relaxed the comment wording enough to permit other
explicit E* names:

diff --git a/src/remove.c b/src/remove.c
index 0c25462..a141718 100644
--- a/src/remove.c
+++ b/src/remove.c
@@ -392,8 +392,8 @@ excise (FTS *fts, FTSENT *ent, struct rm_options const *x, 
bool is_dir)
   if (ignorable_missing (x, errno))
     return RM_OK;

-  /* When failing to rmdir an unreadable directory, the typical errno value
-     is EISDIR or ENOTDIR, but that would be meaningless in a diagnostic.
+  /* When failing to rmdir an unreadable directory, we see errno values
+     like EISDIR or ENOTDIR, but they would be meaningless in a diagnostic.
      When that happens and the errno value from the failed open is EPERM
      or EACCES, use the earlier, more descriptive errno value.  */
   if (ent->fts_info == FTS_DNR





reply via email to

[Prev in Thread] Current Thread [Next in Thread]