Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package dateutils for openSUSE:Factory checked in at 2021-06-04 00:33:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/dateutils (Old) and /work/SRC/openSUSE:Factory/.dateutils.new.1898 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dateutils" Fri Jun 4 00:33:48 2021 rev:28 rq:897111 version:0.4.8 Changes: -------- --- /work/SRC/openSUSE:Factory/dateutils/dateutils.changes 2021-02-22 14:41:03.444664037 +0100 +++ /work/SRC/openSUSE:Factory/.dateutils.new.1898/dateutils.changes 2021-06-04 00:34:10.660977418 +0200 @@ -1,0 +2,7 @@ +Mon May 17 09:48:34 UTC 2021 - Dominique Leuenberger <[email protected]> + +- Add 0144b15dda4b1ea4fdbeca9f3ecb128eb98772fd.patch and + a0ebd0037df973aed14779b51d59da3edc506b6a.patch: fix test suite + run on 32bit archs. + +------------------------------------------------------------------- New: ---- 0144b15dda4b1ea4fdbeca9f3ecb128eb98772fd.patch a0ebd0037df973aed14779b51d59da3edc506b6a.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dateutils.spec ++++++ --- /var/tmp/diff_new_pack.tcp4Mb/_old 2021-06-04 00:34:11.104978697 +0200 +++ /var/tmp/diff_new_pack.tcp4Mb/_new 2021-06-04 00:34:11.104978697 +0200 @@ -26,6 +26,8 @@ Source0: https://github.com/hroptatyr/dateutils/releases/download/v%{version}/%{name}-%{version}.tar.xz Source1: https://github.com/hroptatyr/dateutils/releases/download/v%{version}/%{name}-%{version}.tar.asc Source2: %{name}.keyring +Patch0: https://github.com/hroptatyr/dateutils/commit/0144b15dda4b1ea4fdbeca9f3ecb128eb98772fd.patch +Patch1: https://github.com/hroptatyr/dateutils/commit/a0ebd0037df973aed14779b51d59da3edc506b6a.patch BuildRequires: octave-devel BuildRequires: pkgconfig BuildRequires: timezone ++++++ 0144b15dda4b1ea4fdbeca9f3ecb128eb98772fd.patch ++++++ >From 0144b15dda4b1ea4fdbeca9f3ecb128eb98772fd Mon Sep 17 00:00:00 2001 From: Sebastian Freundt <[email protected]> Date: Mon, 22 Feb 2021 12:21:40 +0000 Subject: [PATCH] minor, condense %s%N to DT_SPFL_N_EPOCHNS, fixes issue 123 --- lib/dt-core-strpf.c | 10 ++++++++-- lib/dt-core.c | 2 +- lib/token.c | 4 ++++ lib/token.h | 2 ++ 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/lib/dt-core-strpf.c b/lib/dt-core-strpf.c index 2d460fef..e03f6501 100644 --- a/lib/dt-core-strpf.c +++ b/lib/dt-core-strpf.c @@ -277,7 +277,8 @@ __strpdt_card(struct strpdt_s *d, const char *sp, struct dt_spec_s s, char **ep) res = __strpt_card(&d->st, sp, s, ep); goto out_direct; - case DT_SPFL_N_EPOCH: { + case DT_SPFL_N_EPOCH: + case DT_SPFL_N_EPOCHNS: { /* read over @ */ const char *tp = sp; tp += *tp == '@'; @@ -287,6 +288,10 @@ __strpdt_card(struct strpdt_s *d, const char *sp, struct dt_spec_s s, char **ep) } else { sp = tp; } + if (s.spfl == DT_SPFL_N_EPOCHNS) { + d->st.ns = d->i % 1000000000; + d->i /= 1000000000; + } break; } @@ -358,7 +363,8 @@ __strfdt_card( res = __strft_card(buf, bsz, s, &d->st, that.t); break; - case DT_SPFL_N_EPOCH: { + case DT_SPFL_N_EPOCH: + case DT_SPFL_N_EPOCHNS: { /* convert to sexy */ int64_t sexy = dt_conv_to_sexy(that).sexy; res = snprintf(buf, bsz, "%" PRIi64, sexy); diff --git a/lib/dt-core.c b/lib/dt-core.c index afbd18fa..0232e788 100644 --- a/lib/dt-core.c +++ b/lib/dt-core.c @@ -702,7 +702,7 @@ dt_strpdt(const char *str, const char *fmt, char **ep) if (spec.spfl == DT_SPFL_UNK) { /* must be literal */ - if (*fp_sav != *sp++) { + if (UNLIKELY(*fp_sav != *sp++)) { goto fucked; } } else if (LIKELY(!spec.rom)) { diff --git a/lib/token.c b/lib/token.c index e9e06df5..07dd0263 100644 --- a/lib/token.c +++ b/lib/token.c @@ -146,6 +146,10 @@ __tok_spec(const char *fp, const char **ep) break; case 's': res.spfl = DT_SPFL_N_EPOCH; + if (fp[1U] == '%' && fp[2U] == 'N') { + res.spfl = DT_SPFL_N_EPOCHNS; + fp += 2U; + } break; case 'Z': res.spfl = DT_SPFL_N_ZDIFF; diff --git a/lib/token.h b/lib/token.h index caca1dcd..72718fb0 100644 --- a/lib/token.h +++ b/lib/token.h @@ -85,6 +85,8 @@ typedef enum { /* date/time specs */ /* %s epoch spec, non-standard */ DT_SPFL_N_EPOCH, + /* %s%N epoch spec, non-standard */ + DT_SPFL_N_EPOCHNS, /* %Z zone difference */ DT_SPFL_N_ZDIFF, DT_SPFL_N_DTLAST = DT_SPFL_N_ZDIFF, ++++++ a0ebd0037df973aed14779b51d59da3edc506b6a.patch ++++++ >From a0ebd0037df973aed14779b51d59da3edc506b6a Mon Sep 17 00:00:00 2001 From: Sebastian Freundt <[email protected]> Date: Fri, 5 Mar 2021 08:52:07 +0000 Subject: [PATCH] fix, extend slot to capture INT64_MIN, fixes bug #124 --- lib/dt-core-strpf.c | 4 ++-- lib/dt-core.c | 2 +- lib/strops.c | 16 ++++++---------- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/lib/dt-core-strpf.c b/lib/dt-core-strpf.c index e03f6501..b09608d6 100644 --- a/lib/dt-core-strpf.c +++ b/lib/dt-core-strpf.c @@ -289,8 +289,8 @@ __strpdt_card(struct strpdt_s *d, const char *sp, struct dt_spec_s s, char **ep) sp = tp; } if (s.spfl == DT_SPFL_N_EPOCHNS) { - d->st.ns = d->i % 1000000000; - d->i /= 1000000000; + d->st.ns = d->i % 1000000000LL; + d->i /= 1000000000LL; } break; } diff --git a/lib/dt-core.c b/lib/dt-core.c index 0232e788..913ed5c1 100644 --- a/lib/dt-core.c +++ b/lib/dt-core.c @@ -85,7 +85,7 @@ struct strpdt_s { struct strpd_s sd; struct strpt_s st; - long int i; + int64_t i; /* use 31 bits for the difference */ int32_t zdiff:31; diff --git a/lib/strops.c b/lib/strops.c index 5dd20965..7cc205a0 100644 --- a/lib/strops.c +++ b/lib/strops.c @@ -113,7 +113,7 @@ strtoi32(const char *str, const char **ep) { const char *sp = str; bool negp = false; - int32_t res = 0; + int32_t res = INT32_MIN; if (*str == '-') { negp = true; @@ -122,12 +122,10 @@ strtoi32(const char *str, const char **ep) while (res < INT32_MAX / 10 && (unsigned char)(*sp ^ '0') < 10U) { res *= 10, res += (unsigned char)(*sp++ ^ '0'); } - if (UNLIKELY(sp == str)) { - res = INT32_MIN; - } else if (negp) { + if (negp) { res = -res; } - *ep = (char*)sp; + *ep = res > INT32_MIN ? (char*)sp : (char*)str; return res; } @@ -137,7 +135,7 @@ strtoi64(const char *str, const char **ep) { const char *sp = str; bool negp = false; - int64_t res = 0; + int64_t res = INT64_MIN; if (*str == '-') { negp = true; @@ -146,12 +144,10 @@ strtoi64(const char *str, const char **ep) while (res < INT64_MAX / 10 && (unsigned char)(*sp ^ '0') < 10U) { res *= 10, res += (unsigned char)(*sp++ ^ '0'); } - if (UNLIKELY(sp == str)) { - res = INT64_MIN; - } else if (negp) { + if (negp) { res = -res; } - *ep = (char*)sp; + *ep = res > INT64_MIN ? (char*)sp : (char*)str; return res; }
