The branch main has been updated by des:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=38509270663f336103273878cc8ddc88a225b9d8

commit 38509270663f336103273878cc8ddc88a225b9d8
Author:     Dag-Erling Smørgrav <[email protected]>
AuthorDate: 2023-12-14 16:07:04 +0000
Commit:     Dag-Erling Smørgrav <[email protected]>
CommitDate: 2023-12-14 16:07:04 +0000

    cp: Further simplify the core logic.
    
    If the destination file exists but we decide unlink it, set the dne
    flag.  This means we don't need to re-check the conditions that would
    have caused us to delete the file when we later need to decide whether
    to create or replace it.
    
    MFC after:      1 week
    Sponsored by:   Klara, Inc.
    Reviewed by:    kevans
    Differential Revision:  https://reviews.freebsd.org/D43064
---
 bin/cp/utils.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/bin/cp/utils.c b/bin/cp/utils.c
index 891360604631..80a0c1fce824 100644
--- a/bin/cp/utils.c
+++ b/bin/cp/utils.c
@@ -145,6 +145,7 @@ copy_file(const FTSENT *entp, int dne)
                if (fflag) {
                        /* remove existing destination file */
                        (void)unlink(to.p_path);
+                       dne = 1;
                }
        }
 
@@ -166,7 +167,7 @@ copy_file(const FTSENT *entp, int dne)
                goto done;
        }
 
-       if (!dne && !fflag) {
+       if (!dne) {
                /* overwrite existing destination file */
                to_fd = open(to.p_path, O_WRONLY | O_TRUNC, 0);
        } else {

Reply via email to