Accepting request 894038 from home:dimstar:Factory
- Add 0144b15dda4b1ea4fdbeca9f3ecb128eb98772fd.patch and a0ebd0037df973aed14779b51d59da3edc506b6a.patch: fix test suite run on 32bit archs. OBS-URL: https://build.opensuse.org/request/show/894038 OBS-URL: https://build.opensuse.org/package/show/utilities/dateutils?expand=0&rev=76
This commit is contained in:
parent
34fd1a5ab4
commit
e64f2c8d81
88
0144b15dda4b1ea4fdbeca9f3ecb128eb98772fd.patch
Normal file
88
0144b15dda4b1ea4fdbeca9f3ecb128eb98772fd.patch
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
From 0144b15dda4b1ea4fdbeca9f3ecb128eb98772fd Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sebastian Freundt <freundt@ga-group.nl>
|
||||||
|
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,
|
91
a0ebd0037df973aed14779b51d59da3edc506b6a.patch
Normal file
91
a0ebd0037df973aed14779b51d59da3edc506b6a.patch
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
From a0ebd0037df973aed14779b51d59da3edc506b6a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sebastian Freundt <freundt@ga-group.nl>
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
@ -1,3 +1,10 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon May 17 09:48:34 UTC 2021 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||||
|
|
||||||
|
- Add 0144b15dda4b1ea4fdbeca9f3ecb128eb98772fd.patch and
|
||||||
|
a0ebd0037df973aed14779b51d59da3edc506b6a.patch: fix test suite
|
||||||
|
run on 32bit archs.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Sun Feb 21 18:58:49 UTC 2021 - Andreas Stieger <andreas.stieger@gmx.de>
|
Sun Feb 21 18:58:49 UTC 2021 - Andreas Stieger <andreas.stieger@gmx.de>
|
||||||
|
|
||||||
|
@ -26,6 +26,8 @@ URL: https://github.com/hroptatyr/dateutils/
|
|||||||
Source0: https://github.com/hroptatyr/dateutils/releases/download/v%{version}/%{name}-%{version}.tar.xz
|
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
|
Source1: https://github.com/hroptatyr/dateutils/releases/download/v%{version}/%{name}-%{version}.tar.asc
|
||||||
Source2: %{name}.keyring
|
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: octave-devel
|
||||||
BuildRequires: pkgconfig
|
BuildRequires: pkgconfig
|
||||||
BuildRequires: timezone
|
BuildRequires: timezone
|
||||||
|
Loading…
x
Reference in New Issue
Block a user