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 <xoneca@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Xabier Oneca 2021-04-09 23:27:41 +02:00 committed by Denys Vlasenko
parent de1a49cb41
commit 7ec254467c

View File

@ -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
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
#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;