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



Reply via email to