forcemerge 44889 44865 44883 stop On 26/11/2020 14:35, Nick Alcock wrote:
diff --git a/src/remove.c b/src/remove.c index 2d40c55cd..1150cf179 100644 --- a/src/remove.c +++ b/src/remove.c @@ -508,8 +508,7 @@ rm_fts (FTS *fts, FTSENT *ent, struct rm_options const *x) s = excise (fts, ent, x, true); fts_skip_tree (fts, ent); } - - if (s != RM_OK) + else if (s != RM_OK) { mark_ancestor_dirs (ent); fts_skip_tree (fts, ent);
I think we'd still like to mark ancestors when failing to remove, so that we don't prompt unnecessarily. I think it would be better to do: diff --git a/src/remove.c b/src/remove.c index 2d40c55cd..adf948935 100644 --- a/src/remove.c +++ b/src/remove.c @@ -506,7 +506,8 @@ rm_fts (FTS *fts, FTSENT *ent, struct rm_options const *x) /* When we know (from prompt when in interactive mode) that this is an empty directory, don't prompt twice. */ s = excise (fts, ent, x, true); - fts_skip_tree (fts, ent); + if (s == RM_OK) + fts_skip_tree (fts, ent); } I've also adjusted the test slightly to not check for `tail`, and another few cleanups. I'll push in your name if you're ok with the above changes. thanks, Pádraig