touch: prevent usage of -r and -t at once

coreutils forbids this combination.

Signed-off-by: Xabier Oneca <xoneca@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Xabier Oneca 2021-04-10 00:11:46 +02:00 committed by Denys Vlasenko
parent 79c92dbd70
commit e3c6a0973c

View File

@ -120,14 +120,18 @@ int touch_main(int argc UNUSED_PARAM, char **argv)
* accepted data format differs a bit between -d and -t.
* We accept the same formats for both
*/
opts = getopt32long(argv, "c" IF_FEATURE_TOUCH_NODEREF("h")
IF_FEATURE_TOUCH_SUSV3("r:d:t:am")
/*ignored:*/ "f" IF_NOT_FEATURE_TOUCH_SUSV3("am"),
touch_longopts
opts = getopt32long(argv, "^"
"c" IF_FEATURE_TOUCH_NODEREF("h")
IF_FEATURE_TOUCH_SUSV3("r:d:t:am")
/*ignored:*/ "f" IF_NOT_FEATURE_TOUCH_SUSV3("am")
"\0" /* opt_complementary: */
/* coreutils forbids -r and -t at once: */ IF_FEATURE_TOUCH_SUSV3("r--t:t--r")
/* but allows these combinations: "r--d:d--r:t--d:d--t" */,
touch_longopts
#if ENABLE_FEATURE_TOUCH_SUSV3
, &reference_file
, &date_str
, &date_str
, &reference_file
, &date_str
, &date_str
#endif
);