GNU bug report logs -
#12339
Bug: rm -fr . doesn't dir depth first deletion yet it is documented to do so.
Previous Next
Reported by: Linda Walsh <coreutils <at> tlinx.org>
Date: Mon, 3 Sep 2012 00:34:02 UTC
Severity: normal
Done: Assaf Gordon <assafgordon <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
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
This bug report was last modified 6 years and 187 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.