From cae375549716c479d4e7121984df78a20d662386 Mon Sep 17 00:00:00 2001 From: "Rafael G. Martins" Date: Thu, 13 Oct 2016 02:41:42 +0200 Subject: renderer: fixed strtol error detection bug in freebsd it seems that error detection for strtol using errno is a glibc extension. --- src/blogc/renderer.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/blogc/renderer.c b/src/blogc/renderer.c index b4d7a90..398f4f8 100644 --- a/src/blogc/renderer.c +++ b/src/blogc/renderer.c @@ -6,7 +6,6 @@ * See the file LICENSE. */ -#include #include #include #include @@ -82,11 +81,11 @@ blogc_format_variable(const char *name, bc_trie_t *global, bc_trie_t *local, for (i = last - 1; i > 0 && var[i] >= '0' && var[i] <= '9'; i--); if (var[i] == '_' && (i + 1) < last) { // var ends with '_[0-9]+' - // passing NULL to endptr because our string was previously validated - len = strtol(var + i + 1, NULL, 10); - if (errno != 0) { - fprintf(stderr, "warning: invalid variable size for '%s' (%s), " - "ignoring.\n", var, strerror(errno)); + char *endptr; + len = strtol(var + i + 1, &endptr, 10); + if (*endptr != '\0') { + fprintf(stderr, "warning: invalid variable size for '%s', " + "ignoring.\n", var); len = -1; } else { -- cgit v1.2.3-18-g5258