a56612a6507f5034172d1b164f2e2fdd09239303 galt Tue May 8 01:19:13 2012 -0700 fixing some bugs turned up by testing diff --git src/lib/sqlNum.c src/lib/sqlNum.c index de24c13..bc9eb25 100644 --- src/lib/sqlNum.c +++ src/lib/sqlNum.c @@ -41,31 +41,31 @@ char *p = s; char c; while (((c = *(p++)) >= '0') && (c <= '9')) { res *= 10; res += c - '0'; } if (!(c == '\0' || c == ',')) { char *e = strchr(s, ','); if (e) *e = 0; errAbort("invalid unsigned integer: \"%s\"", s); } -*pS = p; +*pS = --p; return res; } unsigned long sqlUnsignedLong(char *s) /* Convert series of digits to unsigned long about * twice as fast as atol (by not having to skip white * space or stop except at the null byte.) */ { unsigned long res = 0; char *p = s; char c; while (((c = *(p++)) >= '0') && (c <= '9')) { res *= 10; @@ -88,31 +88,31 @@ char *p = s; char c; while (((c = *(p++)) >= '0') && (c <= '9')) { res *= 10; res += c - '0'; } if (!(c == '\0' || c == ',')) { char *e = strchr(s, ','); if (e) *e = 0; errAbort("invalid unsigned long: \"%s\"", s); } -*pS = p; +*pS = --p; return res; } int sqlSigned(char *s) /* Convert string to signed integer. Unlike atol assumes * all of string is number. */ { int res = 0; char *p, *p0 = s; if (*p0 == '-') p0++; p = p0; while ((*p >= '0') && (*p <= '9')) {