From dc698bb038756a926aaa529bda1b939eab2c1676 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Sat, 9 Jan 2010 19:10:49 +0100 Subject: *: make it easier to distinquish "struct tm", pointer to one, etc Signed-off-by: Denys Vlasenko --- libbb/time.c | 90 ++++++++++++++++++++++++++++++------------------------------ 1 file changed, 45 insertions(+), 45 deletions(-) (limited to 'libbb/time.c') diff --git a/libbb/time.c b/libbb/time.c index 85c72d163..82a0fa1fa 100644 --- a/libbb/time.c +++ b/libbb/time.c @@ -8,51 +8,51 @@ */ #include "libbb.h" -void FAST_FUNC parse_datestr(const char *date_str, struct tm *tm_time) +void FAST_FUNC parse_datestr(const char *date_str, struct tm *ptm) { char end = '\0'; const char *last_colon = strrchr(date_str, ':'); if (last_colon != NULL) { - /* Parse input and assign appropriately to tm_time */ + /* Parse input and assign appropriately to ptm */ /* HH:MM */ if (sscanf(date_str, "%u:%u%c", - &tm_time->tm_hour, - &tm_time->tm_min, + &ptm->tm_hour, + &ptm->tm_min, &end) >= 2) { /* no adjustments needed */ } else /* mm.dd-HH:MM */ if (sscanf(date_str, "%u.%u-%u:%u%c", - &tm_time->tm_mon, &tm_time->tm_mday, - &tm_time->tm_hour, &tm_time->tm_min, + &ptm->tm_mon, &ptm->tm_mday, + &ptm->tm_hour, &ptm->tm_min, &end) >= 4) { /* Adjust month from 1-12 to 0-11 */ - tm_time->tm_mon -= 1; + ptm->tm_mon -= 1; } else /* yyyy.mm.dd-HH:MM */ - if (sscanf(date_str, "%u.%u.%u-%u:%u%c", &tm_time->tm_year, - &tm_time->tm_mon, &tm_time->tm_mday, - &tm_time->tm_hour, &tm_time->tm_min, + if (sscanf(date_str, "%u.%u.%u-%u:%u%c", &ptm->tm_year, + &ptm->tm_mon, &ptm->tm_mday, + &ptm->tm_hour, &ptm->tm_min, &end) >= 5) { - tm_time->tm_year -= 1900; /* Adjust years */ - tm_time->tm_mon -= 1; /* Adjust month from 1-12 to 0-11 */ + ptm->tm_year -= 1900; /* Adjust years */ + ptm->tm_mon -= 1; /* Adjust month from 1-12 to 0-11 */ } else /* yyyy-mm-dd HH:MM */ - if (sscanf(date_str, "%u-%u-%u %u:%u%c", &tm_time->tm_year, - &tm_time->tm_mon, &tm_time->tm_mday, - &tm_time->tm_hour, &tm_time->tm_min, + if (sscanf(date_str, "%u-%u-%u %u:%u%c", &ptm->tm_year, + &ptm->tm_mon, &ptm->tm_mday, + &ptm->tm_hour, &ptm->tm_min, &end) >= 5) { - tm_time->tm_year -= 1900; /* Adjust years */ - tm_time->tm_mon -= 1; /* Adjust month from 1-12 to 0-11 */ + ptm->tm_year -= 1900; /* Adjust years */ + ptm->tm_mon -= 1; /* Adjust month from 1-12 to 0-11 */ //TODO: coreutils 6.9 also accepts "yyyy-mm-dd HH" (no minutes) } else { bb_error_msg_and_die(bb_msg_invalid_date, date_str); } if (end == ':') { /* xxx:SS */ - if (sscanf(last_colon + 1, "%u%c", &tm_time->tm_sec, &end) == 1) + if (sscanf(last_colon + 1, "%u%c", &ptm->tm_sec, &end) == 1) end = '\0'; /* else end != NUL and we error out */ } @@ -75,60 +75,60 @@ void FAST_FUNC parse_datestr(const char *date_str, struct tm *tm_time) /* MM[.SS] */ if (len == 2 && sscanf(date_str, "%2u%2u%2u%2u""%2u%c" + 12, - &tm_time->tm_min, + &ptm->tm_min, &end) >= 1) { } else /* HHMM[.SS] */ if (len == 4 && sscanf(date_str, "%2u%2u%2u""%2u%2u%c" + 9, - &tm_time->tm_hour, - &tm_time->tm_min, + &ptm->tm_hour, + &ptm->tm_min, &end) >= 2) { } else /* ddHHMM[.SS] */ if (len == 6 && sscanf(date_str, "%2u%2u""%2u%2u%2u%c" + 6, - &tm_time->tm_mday, - &tm_time->tm_hour, - &tm_time->tm_min, + &ptm->tm_mday, + &ptm->tm_hour, + &ptm->tm_min, &end) >= 3) { } else /* mmddHHMM[.SS] */ if (len == 8 && sscanf(date_str, "%2u""%2u%2u%2u%2u%c" + 3, - &tm_time->tm_mon, - &tm_time->tm_mday, - &tm_time->tm_hour, - &tm_time->tm_min, + &ptm->tm_mon, + &ptm->tm_mday, + &ptm->tm_hour, + &ptm->tm_min, &end) >= 4) { /* Adjust month from 1-12 to 0-11 */ - tm_time->tm_mon -= 1; + ptm->tm_mon -= 1; } else /* yymmddHHMM[.SS] */ if (len == 10 && sscanf(date_str, "%2u%2u%2u%2u%2u%c", - &tm_time->tm_year, - &tm_time->tm_mon, - &tm_time->tm_mday, - &tm_time->tm_hour, - &tm_time->tm_min, + &ptm->tm_year, + &ptm->tm_mon, + &ptm->tm_mday, + &ptm->tm_hour, + &ptm->tm_min, &end) >= 5) { /* Adjust month from 1-12 to 0-11 */ - tm_time->tm_mon -= 1; + ptm->tm_mon -= 1; } else /* ccyymmddHHMM[.SS] */ if (len == 12 && sscanf(date_str, "%4u%2u%2u%2u%2u%c", - &tm_time->tm_year, - &tm_time->tm_mon, - &tm_time->tm_mday, - &tm_time->tm_hour, - &tm_time->tm_min, + &ptm->tm_year, + &ptm->tm_mon, + &ptm->tm_mday, + &ptm->tm_hour, + &ptm->tm_min, &end) >= 5) { - tm_time->tm_year -= 1900; /* Adjust years */ - tm_time->tm_mon -= 1; /* Adjust month from 1-12 to 0-11 */ + ptm->tm_year -= 1900; /* Adjust years */ + ptm->tm_mon -= 1; /* Adjust month from 1-12 to 0-11 */ } else { bb_error_msg_and_die(bb_msg_invalid_date, date_str); } if (end == '.') { /* xxx.SS */ if (sscanf(strchr(date_str, '.') + 1, "%u%c", - &tm_time->tm_sec, &end) == 1) + &ptm->tm_sec, &end) == 1) end = '\0'; /* else end != NUL and we error out */ } @@ -138,9 +138,9 @@ void FAST_FUNC parse_datestr(const char *date_str, struct tm *tm_time) } } -time_t FAST_FUNC validate_tm_time(const char *date_str, struct tm *tm_time) +time_t FAST_FUNC validate_tm_time(const char *date_str, struct tm *ptm) { - time_t t = mktime(tm_time); + time_t t = mktime(ptm); if (t == (time_t) -1L) { bb_error_msg_and_die(bb_msg_invalid_date, date_str); } -- cgit v1.2.3