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

Reply via email to