Deploy the new <ctype.h> and `foocmp' macros from mLib.
[catacomb] / math / genprimes.c
index a4bf64a..1ed7b4d 100644 (file)
@@ -35,6 +35,7 @@
 
 #include <mLib/darray.h>
 #include <mLib/dstr.h>
+#include <mLib/macros.h>
 #include <mLib/mdwopt.h>
 #include <mLib/quis.h>
 #include <mLib/report.h>
@@ -52,6 +53,7 @@ int main(int argc, char *argv[])
   char *header = "primetab.h";
   char *source = "primetab.c";
   char *name = "primetab";
+  char *hdrbase;
   char *sym = 0;
   intv p = DA_INIT;
   int i;
@@ -95,6 +97,9 @@ int main(int argc, char *argv[])
   if (!p_max && !p_n)
     die(EXIT_FAILURE, "bad arguments to `-n' or `-m'");
 
+  if ((hdrbase = strrchr(header, '/')) == 0) hdrbase = header;
+  else hdrbase++;
+
   if (p_n || p_max >= 2)
     DA_PUSH(&p, 2);
   for (i = 3; (!p_max && !p_n) ||
@@ -119,8 +124,8 @@ int main(int argc, char *argv[])
     if (!sym) {
       for (q = header; *q; q++) {
        int ch = (unsigned char)*q;
-       if (isalnum(ch))
-         ch = toupper(ch);
+       if (ISALNUM(ch))
+         ch = TOUPPER(ch);
        else
          ch = '_';
        DPUTC(&d, ch);
@@ -170,7 +175,7 @@ extern const smallprime %s[];\n\
 #include \"%s\"\n\
 \n\
 const %s %s[] = {",
-           header, type, name);
+           hdrbase, type, name);
     for (i = 0; i < DA_LEN(&p); i++) {
       if (i % 8 == 0)
        fputs("\n  ", fp);