summaryrefslogtreecommitdiff
path: root/system/procps/strtod.patch
diff options
context:
space:
mode:
Diffstat (limited to 'system/procps/strtod.patch')
-rw-r--r--system/procps/strtod.patch115
1 files changed, 0 insertions, 115 deletions
diff --git a/system/procps/strtod.patch b/system/procps/strtod.patch
deleted file mode 100644
index 9cc974b1b..000000000
--- a/system/procps/strtod.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-From 4ed44ab58e27a9a09902b9c5b49df484842b6c9a Mon Sep 17 00:00:00 2001
-From: Dr. Werner Fink <werner@suse.de>
-Date: Wed, 13 Jul 2016 20:08:51 +1000
-Subject: [PATCH] misc: fix strtod_nol_err tests
-
-A better way of implementing the string to double
-conversion and a better way of testing it.
-
-Signed-off-by: Craig Small <csmall@enc.com.au>
----
- include/strutils.h | 2 +-
- lib/strutils.c | 22 ++++++++++++----------
- lib/test_strtod_nol.c | 7 ++++---
- 4 files changed, 20 insertions(+), 18 deletions(-)
-
-diff --git a/include/strutils.h b/include/strutils.h
-index 85a6192..a5a15c9 100644
---- a/include/strutils.h
-+++ b/include/strutils.h
-@@ -7,6 +7,6 @@
-
- extern long strtol_or_err(const char *str, const char *errmesg);
- extern double strtod_or_err(const char *str, const char *errmesg);
--double strtod_nol_or_err(char *str, const char *errmesg);
-+extern double strtod_nol_or_err(char *str, const char *errmesg);
-
- #endif
-diff --git a/lib/strutils.c b/lib/strutils.c
-index e5245db..e0632c4 100644
---- a/lib/strutils.c
-+++ b/lib/strutils.c
-@@ -20,6 +20,8 @@
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-+#include <float.h>
-+#include <math.h>
- #include <stdlib.h>
- #include <ctype.h>
-
-@@ -71,9 +73,9 @@ double strtod_or_err(const char *str, const char *errmesg)
- */
- double strtod_nol_or_err(char *str, const char *errmesg)
- {
-- double num;
-+ long double num;
- const char *cp, *radix;
-- double mult;
-+ long double mult;
- int negative = 0;
-
- if (str != NULL && *str != '\0') {
-@@ -95,29 +97,29 @@ double strtod_nol_or_err(char *str, const char *errmesg)
- mult=0.1;
- while(isdigit(*radix)) {
- radix++;
-- mult *= 10;
-+ mult *= 10.0;
- }
- while(isdigit(*cp)) {
-- num += (*cp - '0') * mult;
-- mult /= 10;
-+ num += (long double)(*cp - '0') * mult;
-+ mult /= 10.0;
- cp++;
- }
- /* got the integers */
- if (*cp == '\0')
-- return (negative?-num:num);
-+ return (double)(negative?-num:num);
- if (*cp != '.' && *cp != ',')
- error(EXIT_FAILURE, EINVAL, "%s: '%s'", errmesg, str);
-
- cp++;
- mult = 0.1;
- while(isdigit(*cp)) {
-- num += (*cp - '0') * mult;
-- mult /= 10;
-+ num += (long double)(*cp - '0') * mult;
-+ mult /= 10.0;
- cp++;
- }
- if (*cp == '\0')
-- return (negative?-num:num);
-+ return (double)(negative?-num:num);
- }
- error(EXIT_FAILURE, errno, "%s: '%s'", errmesg, str);
-- return 0;
-+ return (double)0;
- }
-diff --git a/lib/test_strtod_nol.c b/lib/test_strtod_nol.c
-index 0be798c..736768a 100644
---- a/lib/test_strtod_nol.c
-+++ b/lib/test_strtod_nol.c
-@@ -1,4 +1,5 @@
--
-+#include <float.h>
-+#include <math.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include "strutils.h"
-@@ -33,8 +34,8 @@ int main(int argc, char *argv[])
- double val;
-
- for(i=0; tests[i].string != NULL; i++) {
-- if(strtod_nol_or_err(tests[i].string, "Cannot parse number") !=
-- tests[i].result) {
-+ val = strtod_nol_or_err(tests[i].string, "Cannot parse number");
-+ if(fabs(tests[i].result - val) > DBL_EPSILON) {
- fprintf(stderr, "FAIL: strtod_nol_or_err(\"%s\") != %f\n",
- tests[i].string, tests[i].result);
- return EXIT_FAILURE;
---
-libgit2 0.26.0
-