From 7ec254467c58047a8105fa688044e88f04a806d6 Mon Sep 17 00:00:00 2001 From: Xabier Oneca Date: Fri, 9 Apr 2021 23:27:41 +0200 Subject: touch: remove unneeded GETOPT32 defines Long options handling (getopt32 vs getopt32long) is done in libbb.h, no need to care here of the same logic. This cleans the code a bit. Also, --no-create was grouped as a SUSv3 option, where as the short -c was not. Even if it is part of SUS, leave it out as was the short option. v2: Fix for disabled ENABLE_LONG_OPTS. getopt32long does not like IF_FEATURE_xxx() style conditionals... :/ Signed-off-by: Xabier Oneca Signed-off-by: Denys Vlasenko --- coreutils/touch.c | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/coreutils/touch.c b/coreutils/touch.c index 68fb625..92e1341 100644 --- a/coreutils/touch.c +++ b/coreutils/touch.c @@ -97,23 +97,18 @@ int touch_main(int argc UNUSED_PARAM, char **argv) OPT_m = (1 << 5) * ENABLE_FEATURE_TOUCH_SUSV3, OPT_h = (1 << 6) * ENABLE_FEATURE_TOUCH_NODEREF, }; -#if ENABLE_FEATURE_TOUCH_SUSV3 /* NULL = use current time */ const struct timeval *newtime = NULL; -# if ENABLE_LONG_OPTS +#if ENABLE_LONG_OPTS static const char touch_longopts[] ALIGN1 = /* name, has_arg, val */ "no-create\0" No_argument "c" - "reference\0" Required_argument "r" - "date\0" Required_argument "d" + IF_FEATURE_TOUCH_SUSV3("reference\0" Required_argument "r") + IF_FEATURE_TOUCH_SUSV3("date\0" Required_argument "d") IF_FEATURE_TOUCH_NODEREF("no-dereference\0" No_argument "h") ; -# define GETOPT32 getopt32long -# define LONGOPTS ,touch_longopts -# else -# define GETOPT32 getopt32 -# define LONGOPTS -# endif +#endif +#if ENABLE_FEATURE_TOUCH_SUSV3 char *reference_file = NULL; char *date_str = NULL; /* timebuf[0] is atime, timebuf[1] is mtime */ @@ -123,20 +118,20 @@ int touch_main(int argc UNUSED_PARAM, char **argv) # define reference_file NULL # define date_str NULL # define timebuf ((struct timeval*)NULL) -# define GETOPT32 getopt32 -# define LONGOPTS #endif /* -d and -t both set time. In coreutils, * accepted data format differs a bit between -d and -t. * We accept the same formats for both */ - opts = GETOPT32(argv, "c" IF_FEATURE_TOUCH_SUSV3("r:d:t:am") + opts = getopt32long(argv, "c" IF_FEATURE_TOUCH_SUSV3("r:d:t:am") IF_FEATURE_TOUCH_NODEREF("h") - /*ignored:*/ "f" IF_NOT_FEATURE_TOUCH_SUSV3("am") - LONGOPTS - IF_FEATURE_TOUCH_SUSV3(, &reference_file) - IF_FEATURE_TOUCH_SUSV3(, &date_str) - IF_FEATURE_TOUCH_SUSV3(, &date_str) + /*ignored:*/ "f" IF_NOT_FEATURE_TOUCH_SUSV3("am"), + touch_longopts +#if ENABLE_FEATURE_TOUCH_SUSV3 + , &reference_file + , &date_str + , &date_str +#endif ); argv += optind; -- cgit v1.1