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;
 }
 

Reply via email to