diff options
| author | Garrett D'Amore <garrett@damore.org> | 2020-11-23 23:09:18 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2020-11-23 23:09:18 -0800 |
| commit | 5ea2a1845f3393e91d6d102a8a89f339dd24f467 (patch) | |
| tree | d17d6cd87d1a540e50f2e996924d8e1c92e1c8f0 /src/core | |
| parent | d1218d7309475193b53911667911c4f59a1a7752 (diff) | |
| download | nng-5ea2a1845f3393e91d6d102a8a89f339dd24f467.tar.gz nng-5ea2a1845f3393e91d6d102a8a89f339dd24f467.tar.bz2 nng-5ea2a1845f3393e91d6d102a8a89f339dd24f467.zip | |
fixes #1358 nni_strtou64 and nni_strtox64 could be replaced with strtoull
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/strs.c | 74 | ||||
| -rw-r--r-- | src/core/strs.h | 2 |
2 files changed, 0 insertions, 76 deletions
diff --git a/src/core/strs.c b/src/core/strs.c index ce03de22..3f51e59a 100644 --- a/src/core/strs.c +++ b/src/core/strs.c @@ -173,77 +173,3 @@ nni_asprintf(char **sp, const char *fmt, ...) *sp = s; return (0); } - -int -nni_strtou64(const char *s, uint64_t *u) -{ - uint64_t v = 0; - - // Arguably we could use strtoull, but Windows doesn't conform - // to C99, and so lacks it. - - if ((s == NULL) || (*s == '\0')) { - // Require a non-empty string. - return (NNG_EINVAL); - } - while (*s) { - uint64_t last = v; - if (isdigit(*s)) { - v *= 10; - v += (*s - '0'); - } else { - return (NNG_EINVAL); - } - if (v < last) { - // Overflow! - return (NNG_EINVAL); - } - s++; - } - *u = v; - return (0); -} - -int -nni_strtox64(const char *s, uint64_t *u) -{ - uint64_t v = 0; - - // Arguably we could use strtoull, but Windows doesn't conform - // to C99, and so lacks it. - - if (s == NULL) { - return (NNG_EINVAL); - } - // Skip over 0x if present. - if ((s[0] == '0') && ((s[1] == 'x') || (s[1] == 'X'))) { - s += 2; - } - if (*s == '\0') { - // Require a non-empty string. - return (NNG_EINVAL); - } - - while (*s) { - uint64_t last = v; - if (isdigit(*s)) { - v *= 16; - v += (*s - '0'); - } else if ((*s >= 'a') && (*s <= 'f')) { - v *= 16; - v += (*s - 'a') + 10; - } else if ((*s >= 'A') && (*s <= 'F')) { - v *= 16; - v += (*s - 'A') + 10; - } else { - return (NNG_EINVAL); - } - if (v < last) { - // Overflow! - return (NNG_EINVAL); - } - s++; - } - *u = v; - return (0); -} diff --git a/src/core/strs.h b/src/core/strs.h index 91639c64..697b4763 100644 --- a/src/core/strs.h +++ b/src/core/strs.h @@ -21,7 +21,5 @@ extern char * nni_strcasestr(const char *, const char *); extern int nni_strncasecmp(const char *, const char *, size_t); extern int nni_strcasecmp(const char *, const char *); extern int nni_asprintf(char **, const char *, ...); -extern int nni_strtou64(const char *, uint64_t *); // parses decimal -extern int nni_strtox64(const char *, uint64_t *); // parses hex #endif // CORE_STRS_H |
