[prev in list] [next in list] [prev in thread] [next in thread]
List: busybox
Subject: Re: [PATCH] libbb: code shrink parse_datestr (again)
From: Denys Vlasenko <vda.linux () googlemail ! com>
Date: 2021-09-18 20:56:40
Message-ID: CAK1hOcPbrSiACiNL-cizbKZv96c=dq3h885mQ-uU-ZhzMRU=tg () mail ! gmail ! com
[Download RAW message or body]
libbb/time.c:144:4: error: a label can only be part of a statement and
a declaration is not a statement
Applied, thank you
On Sat, Sep 18, 2021 at 9:41 AM Ron Yorston <rmy@pobox.com> wrote:
>
> Commit 9fe1548bb (date,touch: allow timezone offsets in dates)
> mentioned the similarity between '@' format dates and those with
> timezone offsets. It didn't notice that as a result there's
> common code which can be shared.
>
> function old new delta
> parse_datestr 730 687 -43
> ------------------------------------------------------------------------------
> (add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-43) Total: -43 bytes
>
> Signed-off-by: Ron Yorston <rmy@pobox.com>
> ---
> libbb/time.c | 12 +++---------
> 1 file changed, 3 insertions(+), 9 deletions(-)
>
> diff --git a/libbb/time.c b/libbb/time.c
> index 41a69c754..8010c0caa 100644
> --- a/libbb/time.c
> +++ b/libbb/time.c
> @@ -13,6 +13,7 @@
> int FAST_FUNC parse_datestr(const char *date_str, struct tm *ptm)
> {
> char end = '\0';
> + time_t t;
> #if ENABLE_DESKTOP
> /*
> * strptime is BIG: ~1k in uclibc, ~10k in glibc
> @@ -47,9 +48,6 @@ int FAST_FUNC parse_datestr(const char *date_str, struct tm *ptm)
> if (endp && *endp == '\0') {
> #if ENABLE_FEATURE_TIMEZONE
> if (strchr(fmt, 'z')) {
> - time_t t;
> - struct tm *utm;
> -
> /* we have timezone offset: obtain Unix time_t */
> ptm->tm_sec -= ptm->tm_gmtoff;
> ptm->tm_isdst = 0;
> @@ -57,11 +55,7 @@ int FAST_FUNC parse_datestr(const char *date_str, struct tm *ptm)
> if (t == (time_t)-1)
> break;
> /* convert Unix time_t to struct tm in user's locale */
> - utm = localtime(&t);
> - if (!utm)
> - break;
> - *ptm = *utm;
> - return 0;
> + goto localise;
> }
> #endif
> return 1;
> @@ -141,12 +135,12 @@ int FAST_FUNC parse_datestr(const char *date_str, struct tm *ptm)
> } else
> #endif /* ENABLE_DESKTOP */
> if (date_str[0] == '@') {
> - time_t t;
> if (sizeof(t) <= sizeof(long))
> t = bb_strtol(date_str + 1, NULL, 10);
> else /* time_t is 64 bits but longs are smaller */
> t = bb_strtoll(date_str + 1, NULL, 10);
> if (!errno) {
> + IF_FEATURE_TIMEZONE(localise:)
> struct tm *lt = localtime(&t);
> if (lt) {
> *ptm = *lt;
> --
> 2.31.1
>
> _______________________________________________
> busybox mailing list
> busybox@busybox.net
> http://lists.busybox.net/mailman/listinfo/busybox
_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic