64 lines
1.2 KiB
C
64 lines
1.2 KiB
C
// For generating prototypes.h
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <sys/types.h>
|
|
#include <dirent.h>
|
|
#include <string.h>
|
|
|
|
int
|
|
filter(struct dirent *p)
|
|
{
|
|
int len;
|
|
len = strlen(p->d_name);
|
|
if (len > 2 && strcmp(p->d_name + len - 2, ".h") == 0)
|
|
return 0;
|
|
else if (len > 4 && strcmp(p->d_name + len - 4, ".cpp") == 0)
|
|
return 1;
|
|
else
|
|
return 0;
|
|
}
|
|
|
|
main()
|
|
{
|
|
int i, n, x;
|
|
struct dirent **p;
|
|
n = scandir(".", &p, filter, alphasort);
|
|
for (i = 0; i < n; i++)
|
|
//printf("<a href=\"%s\">%s</a><br>\n", p[i]->d_name, p[i]->d_name);
|
|
g(p[i]->d_name);
|
|
}
|
|
|
|
char str1[1000], str2[1000], str3[1000];
|
|
|
|
g(char *s)
|
|
{
|
|
char *a, *b, *c, *t;
|
|
FILE *f;
|
|
if (strcmp(s, "MainOSX.cpp") == 0 || strcmp(s, "MainXP.cpp") == 0)
|
|
return;
|
|
printf("\n// %s\n", s);
|
|
f = fopen(s, "r");
|
|
if (f == NULL) {
|
|
printf("cannot open %s\n", s);
|
|
exit(1);
|
|
}
|
|
a = fgets(str1, 1000, f);
|
|
b = fgets(str2, 1000, f);
|
|
c = fgets(str3, 1000, f);
|
|
while (1) {
|
|
if (c == NULL)
|
|
break;
|
|
if (*c == '{' && strncmp(a, "static", 5) != 0) {
|
|
a[strlen(a) - 1] = 0; // erase newline
|
|
b[strlen(b) - 1] = 0;
|
|
printf("%s %s;\n", a, b);
|
|
}
|
|
t = a;
|
|
a = b;
|
|
b = c;
|
|
c = fgets(t, 1000, f);
|
|
}
|
|
fclose(f);
|
|
}
|