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
*/\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);
/* 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;
}