/* * core/parseconf.c */ #include #include #include "config.h" extern int verbosity; extern Configuration config; #define CMP(a) (!strcmp(cptr, a)) /* ---------------------------------------------------------------- */ int parse_config(char *fname, int flags) { FILE *fp; char line[SZ_STRINGS+1], *cptr; int numligne; #if DEBUG_LEVEL fprintf(stderr, ">>> %s ( '%s' $%x )\n", fname, flags); #endif config.valid = 49; if (NULL==(fp=fopen(fname, "r"))) { perror(fname); return -2; } numligne = 0; while (fgets(line, SZ_STRINGS, fp)) { numligne++; if ('\0'==line[0]) { fprintf(stderr, "%s : short read line %d\n", fname, numligne); fclose(fp); return -1; } /* massage the end of line */ line[strlen(line)-1] = '\0'; /* kill EOL */ if (verbosity) { fprintf(stderr, "%3d :\t%s\n", numligne, line); } /* seek for the first token in this line */ if (NULL==(cptr = strtok(line, " \t"))) { /* Got an empty line */ continue; } /* skip comments */ if ('#'==*cptr) continue; if(verbosity) fprintf(stderr, "[%s]\n", cptr); } fclose(fp); return -1; } /* ---------------------------------------------------------------- */ int show_config(char *title) { if (verbosity) { printf("********** %s **********\n", title); } printf("valid %d\n", config.valid); puts(""); return 0; } /* ---------------------------------------------------------------- */