1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- #include <stdio.h>
- #include <string.h>
- #include <ctype.h>
- int main(int argc, char *argv[])
- {
- FILE *fi, *fo;
- char buf[256];
- if (argc != 3) {
- printf("usage:\n%s <carthw.cfg> <carthw.c>\n", argv[0]);
- return 1;
- }
- fi = fopen(argv[1], "r");
- fo = fopen(argv[2], "w");
- if (fi == NULL || fo == NULL) {
- printf("fopen failed\n");
- return 1;
- }
- fprintf(fo, "/* generated by %s, do not modify */\n", argv[0]);
- fprintf(fo, "static const char builtin_carthw_cfg[] =\n");
- while ((fgets(buf, sizeof(buf), fi)))
- {
- char bufd[256];
- char *d = bufd, *p = buf;
- int quote = 0;
- while (*p && isspace(*p))
- p++;
- if (*p == 0 || *p == '#')
- continue;
- /* section names not needed */
- if (*p == '[')
- strcpy(p, "[]");
- for (; *p != 0; p++) {
- if (!quote && isspace(*p))
- continue;
- if (*p == '"') {
- quote = !quote;
- *d++ = '\\';
- }
- *d++ = *p;
- }
- *d = 0;
- fprintf(fo, " \"%s\\n\"\n", bufd);
- }
- fprintf(fo, ";\n");
- fclose(fi);
- fclose(fo);
- return 0;
- }
|