]> diplodocus.org Git - nmh/blobdiff - etc/gen-ctype-checked.c
Dynamically allocate space for the output of fmt_scan(), using
[nmh] / etc / gen-ctype-checked.c
index 60191673dfafd5a097ce4f6f8e5ed30537c1f645..befd64a750d9915d3c30e490534e22e7349171ef 100644 (file)
     X(isspace) \
     X(isupper) \
     X(isxdigit) \
+    X(tolower) \
+    X(toupper) \
 
 #if (defined (_BSD_SOURCE) && _BSD_SOURCE) || \
     (defined (_SVID_SOURCE) && _SVID_SOURCE) || \
     (defined (_XOPEN_SOURCE) && _XOPEN_SOURCE)
-# define CTYPE_FUNCTION_ISASCII X(isascii)
+# define CTYPE_FUNCTION_ISASCII X(isascii) \
+                                X(toascii)
 #else
 # define CTYPE_FUNCTION_ISASCII
 #endif
@@ -71,10 +74,11 @@ main () {
  */\n\n";
     char headername[] = "sbr/ctype-checked.h";
     const char cfilename[] =  "sbr/ctype-checked.c";
-    FILE *header, *cfile;
+    FILE *header = fopen (headername, "w");
+    FILE *cfile = fopen (cfilename, "w");
+    int status = 0;
 
-    if ((header = fopen (headername, "w")) != 0  &&
-        (cfile = fopen (cfilename, "w")) != 0) {
+    if (header != 0  &&  cfile != 0) {
         struct ctype_func *f;
 
         fprintf (header, copyright, headername);
@@ -113,13 +117,16 @@ main () {
 
         /* Need to put a symbol in the .c file with NDEBUG so the
            compilation unit isn't empty. */
-        fputs ("#else  /* NDEBUG */\n\nint ctype_checked;\n\n", cfile);
+        fputs ("#else  /* NDEBUG */\n\nvoid ctype_checked();\n\n", cfile);
         fputs ("#endif /* NDEBUG */\n", cfile);
         fprintf (header, "#endif /* CTYPE_CHECKED_H */\n");
     } else {
         perror ("fopen in sbr/");
-        return -1;
+        status = -1;
     }
 
-    return 0;
+    if (header) { fclose(header); }
+    if (cfile) { fclose(cfile); }
+
+    return status;
 }