# HG changeset patch # User Paul Boddie # Date 1480623791 -3600 # Node ID 77890dd7214eeda3868eeaab4f5cea4e830f4b90 # Parent 436d7832ca668981de36b898881695cd8d4d5c30 Fixed log10 call when handling negative inputs. diff -r 436d7832ca66 -r 77890dd7214e templates/native.c --- a/templates/native.c Thu Dec 01 19:48:31 2016 +0100 +++ b/templates/native.c Thu Dec 01 21:23:11 2016 +0100 @@ -1,4 +1,4 @@ -#include /* exit */ +#include /* abs, exit */ #include /* read, write */ #include /* ceil, log10, pow */ #include /* strcmp, strncpy, strlen */ @@ -281,7 +281,7 @@ __attr * const self = &__args[1]; /* self.__data__ interpreted as int */ int i = __load_via_object(self->value, __pos___data__).intvalue; - int n = i != 0 ? (int) ceil(log10(i+1)) + 1 : 2; + int n = i != 0 ? (int) ceil(log10(abs(i)+1)) + 1 : 2; char *s = (char *) __ALLOCATE(n, sizeof(char)); if (i < 0) n++;