Changeset: 0efbc9239a26 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/0efbc9239a26 Modified Files: gdk/gdk.h gdk/gdk_atoms.c Branch: default Log Message:
Use ctype functions. diffs (136 lines): diff --git a/gdk/gdk.h b/gdk/gdk.h --- a/gdk/gdk.h +++ b/gdk/gdk.h @@ -364,6 +364,7 @@ gdk_export _Noreturn void GDKfatal(_In_z #define GDKisspace(c) isspace((unsigned char) (c)) #define GDKisalnum(c) isalnum((unsigned char) (c)) #define GDKisdigit(c) isdigit((unsigned char) (c)) +#define GDKisxdigit(c) isxdigit((unsigned char) (c)) #define BATDIR "bat" #define TEMPDIR_NAME "TEMP_DATA" diff --git a/gdk/gdk_atoms.c b/gdk/gdk_atoms.c --- a/gdk/gdk_atoms.c +++ b/gdk/gdk_atoms.c @@ -428,45 +428,8 @@ TYPE##ToStr(char **dst, size_t *len, con return snprintf(*dst, *len, FMT, FMTCAST *src); \ } -static const bool xdigit[256] = { - false,false,false,false,false,false,false,false, /* NUL-BEL */ - false,false,false,false,false,false,false,false, /* BS-SI */ - false,false,false,false,false,false,false,false, /* DLE-ETB */ - false,false,false,false,false,false,false,false, /* CAN-US */ - false,false,false,false,false,false,false,false, /* SPACE-'\'' */ - false,false,false,false,false,false,false,false, /* '('-'/' */ - true, true, true, true, true, true, true, true, /* '0'-'7' */ - true, true, false,false,false,false,false,false, /* '8'-'?' */ - false,true, true, true, true, true, true, false, /* '@'-'G' */ - false,false,false,false,false,false,false,false, /* 'H'-'O' */ - false,false,false,false,false,false,false,false, /* 'P'-'W' */ - false,false,false,false,false,false,false,false, /* 'X'-'_' */ - false,true, true, true, true, true, true, false, /* '`'-'g' */ - false,false,false,false,false,false,false,false, /* 'h'-'o' */ - false,false,false,false,false,false,false,false, /* 'p'-'w' */ - false,false,false,false,false,false,false,false, /* 'x'-DEL */ - false,false,false,false,false,false,false,false, - false,false,false,false,false,false,false,false, - false,false,false,false,false,false,false,false, - false,false,false,false,false,false,false,false, - false,false,false,false,false,false,false,false, - false,false,false,false,false,false,false,false, - false,false,false,false,false,false,false,false, - false,false,false,false,false,false,false,false, - false,false,false,false,false,false,false,false, - false,false,false,false,false,false,false,false, - false,false,false,false,false,false,false,false, - false,false,false,false,false,false,false,false, - false,false,false,false,false,false,false,false, - false,false,false,false,false,false,false,false, - false,false,false,false,false,false,false,false, - false,false,false,false,false,false,false,false, -}; - -#define num10(x) ((x) >= '0' && (x) <= '9') #define base10(x) ((x) - '0') -#define num16(x) xdigit[(unsigned char) (x)] #define base16(x) (((x) >= 'a' && (x) <= 'f') ? ((x) - 'a' + 10) : ((x) >= 'A' && (x) <= 'F') ? ((x) - 'A' + 10) : (x) - '0') #define mult16(x) ((x) << 4) @@ -761,7 +724,7 @@ numFromStr(const char *src, size_t *len, while (GDKisspace(*p)) p++; - if (!num10(*p)) { + if (!GDKisdigit(*p)) { switch (*p) { case 'n': if (external) { @@ -781,7 +744,7 @@ numFromStr(const char *src, size_t *len, p++; break; } - if (!num10(*p)) { + if (!GDKisdigit(*p)) { GDKerror("not a number"); goto bailout; } @@ -795,13 +758,13 @@ numFromStr(const char *src, size_t *len, } base = 10 * base + dig; p++; - } while (num10(*p)); - if ((*p == 'e' || *p == 'E') && num10(p[1])) { + } while (GDKisdigit(*p)); + if ((*p == 'e' || *p == 'E') && GDKisdigit(p[1])) { p++; if (base == 0) { /* if base is 0, any exponent will do, the * result is still 0 */ - while (num10(*p)) + while (GDKisdigit(*p)) p++; } else { int exp = 0; @@ -813,7 +776,7 @@ numFromStr(const char *src, size_t *len, goto overflow; } p++; - } while (num10(*p)); + } while (GDKisdigit(*p)); if (base > maxdiv[exp].maxval) { /* overflow */ goto overflow; @@ -874,7 +837,7 @@ numFromStr(const char *src, size_t *len, return (ssize_t) (p - src); overflow: - while (num10(*p)) + while (GDKisdigit(*p)) p++; GDKerror("overflow: \"%.*s\" does not fit in %s\n", (int) (p - src), src, ATOMname(tp)); @@ -1040,11 +1003,11 @@ ptrFromStr(const char *src, size_t *len, if (p[0] == '0' && (p[1] == 'x' || p[1] == 'X')) { p += 2; } - if (!num16(*p)) { + if (!GDKisxdigit(*p)) { GDKerror("not a number\n"); return -1; } - while (num16(*p)) { + while (GDKisxdigit(*p)) { if (base >= ((size_t) 1 << (8 * sizeof(size_t) - 4))) { GDKerror("overflow\n"); return -1; @@ -1603,7 +1566,7 @@ BLOBfromstr(const char *instr, size_t *l /* count hexits and check for hexits/space */ for (i = nitems = 0; instr[i]; i++) { - if (xdigit[(unsigned char) instr[i]]) + if (GDKisxdigit(instr[i])) nitems++; else if (!GDKisspace(instr[i])) { GDKerror("Illegal char in blob\n"); _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org