From: Pádraig Brady
Date: Fri, 3 May 2024 09:18:50 +0000 (+0100) Subject: cp: actually support --update=none-fail X-Git-Tag: v9.6~244 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=de49e993ea8b6dcdf6cada3c0f44a6371514f952;p=thirdparty%2Fcoreutils.git 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 --- diff --git a/NEWS b/NEWS index 389f725169..7e8ccb34f7 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 28b0217db1..06dbad155c 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 1643578036..39ff677b92 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