From de49e993ea8b6dcdf6cada3c0f44a6371514f952 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A1draig=20Brady?= Date: Fri, 3 May 2024 10:18:50 +0100 Subject: [PATCH] cp: actually support --update=none-fail * src/cp.c: Add the entries for the --update=none-fail option. * tests/mv/update.sh: Add a test case. * NEWS: Mention the bug fix. Fixes https://bugs.gnu.org/70727 --- NEWS | 4 ++++ src/cp.c | 4 ++-- tests/mv/update.sh | 11 +++++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 389f72516..7e8ccb34f 100644 --- a/NEWS +++ b/NEWS @@ -4,6 +4,10 @@ GNU coreutils NEWS -*- outline -*- ** Bug fixes + cp fixes support for --update=none-fail, which would have been + rejected as an invalid option. + [bug introduced in coreutils-9.5] + ls and printf fix shell quoted output in the edge case of escaped first and last characters, and single quotes in the string. [bug introduced in coreutils-8.26] diff --git a/src/cp.c b/src/cp.c index 28b0217db..06dbad155 100644 --- a/src/cp.c +++ b/src/cp.c @@ -104,11 +104,11 @@ ARGMATCH_VERIFY (reflink_type_string, reflink_type); static char const *const update_type_string[] = { - "all", "none", "older", nullptr + "all", "none", "none-fail", "older", nullptr }; static enum Update_type const update_type[] = { - UPDATE_ALL, UPDATE_NONE, UPDATE_OLDER, + UPDATE_ALL, UPDATE_NONE, UPDATE_NONE_FAIL, UPDATE_OLDER, }; ARGMATCH_VERIFY (update_type_string, update_type); diff --git a/tests/mv/update.sh b/tests/mv/update.sh index 164357803..39ff677b9 100755 --- a/tests/mv/update.sh +++ b/tests/mv/update.sh @@ -38,6 +38,17 @@ for interactive in '' -i; do done done +# These should accept all options +for update_option in '--update' '--update=older' '--update=all' \ + '--update=none' '--update=none-fail'; do + + touch file1 || framework_failure_ + mv $update_option file1 file2 || fail=1 + test -f file1 && fail=1 + cp $update_option file2 file1 || fail=1 + rm file1 file2 || framework_failure_ +done + # These should perform the rename / copy for update_option in '--update' '--update=older' '--update=all' \ '--update=none --update=all'; do -- 2.44.0