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:
parent
de1a49cb41
commit
7ec254467c
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user