summaryrefslogtreecommitdiff
path: root/coreutils/date.c
diff options
context:
space:
mode:
Diffstat (limited to 'coreutils/date.c')
-rw-r--r--coreutils/date.c59
1 files changed, 29 insertions, 30 deletions
diff --git a/coreutils/date.c b/coreutils/date.c
index 7d14ec3..46d2e10 100644
--- a/coreutils/date.c
+++ b/coreutils/date.c
@@ -114,6 +114,11 @@ static struct tm *date_conv_ftime(struct tm *tm_time, const char *t_string)
return (tm_time);
}
+#define DATE_OPT_RFC2822 0x01
+#define DATE_OPT_SET 0x02
+#define DATE_OPT_UTC 0x04
+#define DATE_OPT_DATE 0x08
+#define DATE_OPT_REFERENCE 0x10
int date_main(int argc, char **argv)
{
@@ -121,7 +126,6 @@ int date_main(int argc, char **argv)
char *date_fmt = NULL;
char *t_buff;
int set_time;
- int rfc822;
int utc;
int use_arg = 0;
time_t tm;
@@ -143,37 +147,35 @@ int date_main(int argc, char **argv)
, &isofmt_arg
#endif
);
- rfc822 = opt & 1;
- set_time = opt & 2;
- utc = opt & 4;
- if(utc) {
- if (putenv("TZ=UTC0") != 0)
- bb_error_msg_and_die(bb_msg_memory_exhausted);
+ set_time = opt & DATE_OPT_SET;
+ utc = opt & DATE_OPT_UTC;
+ if ((utc) && (putenv("TZ=UTC0") != 0)) {
+ bb_error_msg_and_die(bb_msg_memory_exhausted);
}
- use_arg = opt & 8;
+ use_arg = opt & DATE_OPT_DATE;
if(opt & 0x80000000UL)
- bb_show_usage();
+ bb_show_usage();
#ifdef CONFIG_FEATURE_DATE_ISOFMT
- if(opt & 16) {
- if (!isofmt_arg)
- ifmt = 1;
- else {
+ if(opt & DATE_OPT_REFERENCE) {
+ if (!isofmt_arg) {
+ ifmt = 1;
+ } else {
int ifmt_len = bb_strlen(isofmt_arg);
- if ((ifmt_len <= 4)
+ if ((ifmt_len <= 4)
&& (strncmp(isofmt_arg, "date", ifmt_len) == 0)) {
- ifmt = 1;
- } else if ((ifmt_len <= 5)
- && (strncmp(isofmt_arg, "hours", ifmt_len) == 0)) {
- ifmt = 2;
- } else if ((ifmt_len <= 7)
- && (strncmp(isofmt_arg, "minutes", ifmt_len) == 0)) {
- ifmt = 3;
- } else if ((ifmt_len <= 7)
- && (strncmp(isofmt_arg, "seconds", ifmt_len) == 0)) {
- ifmt = 4;
- }
+ ifmt = 1;
+ } else if ((ifmt_len <= 5)
+ && (strncmp(isofmt_arg, "hours", ifmt_len) == 0)) {
+ ifmt = 2;
+ } else if ((ifmt_len <= 7)
+ && (strncmp(isofmt_arg, "minutes", ifmt_len) == 0)) {
+ ifmt = 3;
+ } else if ((ifmt_len <= 7)
+ && (strncmp(isofmt_arg, "seconds", ifmt_len) == 0)) {
+ ifmt = 4;
}
+ }
if (!ifmt) {
bb_show_usage();
}
@@ -197,11 +199,8 @@ int date_main(int argc, char **argv)
tm_time.tm_sec = 0;
tm_time.tm_min = 0;
tm_time.tm_hour = 0;
- }
-
- /* Process any date input to UNIX time since 1 Jan 1970 */
- if (date_str != NULL) {
+ /* Process any date input to UNIX time since 1 Jan 1970 */
if (strchr(date_str, ':') != NULL) {
date_conv_ftime(&tm_time, date_str);
} else {
@@ -246,7 +245,7 @@ int date_main(int argc, char **argv)
default:
#endif
date_fmt =
- (rfc822
+ (opt & DATE_OPT_RFC2822
? (utc ? "%a, %e %b %Y %H:%M:%S GMT" :
"%a, %e %b %Y %H:%M:%S %z") : "%a %b %e %H:%M:%S %Z %Y");