00001 #include <sys/types.h>
00002
00003 #include <ctype.h>
00004 #include <errno.h>
00005 #include <stdio.h>
00006 #include <stdlib.h>
00007 #include <string.h>
00008
00009 void
00010 chk(f, str)
00011 char *f, *str;
00012 {
00013 char *s;
00014 int ch, l, ok, pc;
00015
00016 if (freopen(f, "r", stdin) == NULL) {
00017 fprintf(stderr, "%s: %s\n", f, strerror(errno));
00018 exit (1);
00019 }
00020
00021 for (l = 1, ok = 1, s = str; (ch = getchar()) != EOF;) {
00022 if (ch == '\n')
00023 ++l;
00024 if (!ok || ch != *s) {
00025 s = str;
00026 ok = !isalpha(ch) && !isdigit(ch) && ch != '_';
00027 continue;
00028 }
00029 if (*++s != '\0')
00030 continue;
00031
00032
00033 printf("%s: %d: %s", f, l, str);
00034 for (pc = 1; (ch = getchar()) != EOF;) {
00035 switch (ch) {
00036 case '(':
00037 ++pc;
00038 break;
00039 case ')':
00040 --pc;
00041 break;
00042 case '\n':
00043 ++l;
00044 break;
00045 }
00046 if (ch == '\n')
00047 putchar(' ');
00048 else
00049 putchar(ch);
00050 if (pc <= 0) {
00051 putchar('\n');
00052 break;
00053 }
00054 }
00055 s = str;
00056 }
00057 }
00058
00059 int
00060 main(int argc, char *argv[])
00061 {
00062 int r;
00063
00064 for (r = 0; *++argv != NULL;) {
00065 chk(*argv, "F_ISSET(");
00066 chk(*argv, "F_CLR(");
00067 chk(*argv, "F_SET(");
00068 }
00069 return (0);
00070 }