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_m = (1 << 5) * ENABLE_FEATURE_TOUCH_SUSV3,
OPT_h = (1 << 6) * ENABLE_FEATURE_TOUCH_NODEREF, OPT_h = (1 << 6) * ENABLE_FEATURE_TOUCH_NODEREF,
}; };
#if ENABLE_FEATURE_TOUCH_SUSV3
/* NULL = use current time */ /* NULL = use current time */
const struct timeval *newtime = NULL; const struct timeval *newtime = NULL;
# if ENABLE_LONG_OPTS #if ENABLE_LONG_OPTS
static const char touch_longopts[] ALIGN1 = static const char touch_longopts[] ALIGN1 =
/* name, has_arg, val */ /* name, has_arg, val */
"no-create\0" No_argument "c" "no-create\0" No_argument "c"
"reference\0" Required_argument "r" IF_FEATURE_TOUCH_SUSV3("reference\0" Required_argument "r")
"date\0" Required_argument "d" IF_FEATURE_TOUCH_SUSV3("date\0" Required_argument "d")
IF_FEATURE_TOUCH_NODEREF("no-dereference\0" No_argument "h") IF_FEATURE_TOUCH_NODEREF("no-dereference\0" No_argument "h")
; ;
# define GETOPT32 getopt32long #endif
# define LONGOPTS ,touch_longopts #if ENABLE_FEATURE_TOUCH_SUSV3
# else
# define GETOPT32 getopt32
# define LONGOPTS
# endif
char *reference_file = NULL; char *reference_file = NULL;
char *date_str = NULL; char *date_str = NULL;
/* timebuf[0] is atime, timebuf[1] is mtime */ /* 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 reference_file NULL
# define date_str NULL # define date_str NULL
# define timebuf ((struct timeval*)NULL) # define timebuf ((struct timeval*)NULL)
# define GETOPT32 getopt32
# define LONGOPTS
#endif #endif
/* -d and -t both set time. In coreutils, /* -d and -t both set time. In coreutils,
* accepted data format differs a bit between -d and -t. * accepted data format differs a bit between -d and -t.
* We accept the same formats for both */ * 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") IF_FEATURE_TOUCH_NODEREF("h")
/*ignored:*/ "f" IF_NOT_FEATURE_TOUCH_SUSV3("am") /*ignored:*/ "f" IF_NOT_FEATURE_TOUCH_SUSV3("am"),
LONGOPTS touch_longopts
IF_FEATURE_TOUCH_SUSV3(, &reference_file) #if ENABLE_FEATURE_TOUCH_SUSV3
IF_FEATURE_TOUCH_SUSV3(, &date_str) , &reference_file
IF_FEATURE_TOUCH_SUSV3(, &date_str) , &date_str
, &date_str
#endif
); );
argv += optind; argv += optind;