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 -- [email protected]
To unsubscribe send an email to [email protected]