[PATCH 2/3] touch: prevent usage of -r and -t at once

Xabier Oneca -- xOneca xoneca at gmail.com
Mon Apr 12 21:31:32 UTC 2021


coreutils forbids this combination.

Signed-off-by: Xabier Oneca <xoneca at gmail.com>
---
 coreutils/touch.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/coreutils/touch.c b/coreutils/touch.c
index a00ee0ba4..6a4ffb400 100644
--- a/coreutils/touch.c
+++ b/coreutils/touch.c
@@ -124,14 +124,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
     );

--
2.30.2
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-touch-prevent-usage-of-r-and-t-at-once.patch
Type: application/x-patch
Size: 1406 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/busybox/attachments/20210412/969c951b/attachment.bin>


More information about the busybox mailing list