more work on config parser

This commit is contained in:
tth 2019-01-17 14:00:17 +01:00
parent c848ebd12d
commit e5cc357130
5 changed files with 39 additions and 10 deletions

View File

@ -1,4 +1,5 @@
# experimental config file
input_device s /def/ttyACM0 input_device s /def/ttyACM0

View File

@ -1,5 +1,5 @@
/* /*
* parseconf * core/parseconf.c
*/ */
#include <stdio.h> #include <stdio.h>
@ -10,12 +10,14 @@
extern int verbosity; extern int verbosity;
extern Configuration config; extern Configuration config;
#define CMP(a) (!strcmp(cptr, a))
/* ---------------------------------------------------------------- */ /* ---------------------------------------------------------------- */
int parse_config(char *fname, int flags) int parse_config(char *fname, int flags)
{ {
FILE *fp; FILE *fp;
char line[SZ_STRINGS+1]; char line[SZ_STRINGS+1], *cptr;
int numligne;
#if DEBUG_LEVEL #if DEBUG_LEVEL
fprintf(stderr, ">>> %s ( '%s' $%x )\n", fname, flags); fprintf(stderr, ">>> %s ( '%s' $%x )\n", fname, flags);
@ -28,19 +30,39 @@ if (NULL==(fp=fopen(fname, "r"))) {
return -2; return -2;
} }
numligne = 0;
while (fgets(line, SZ_STRINGS, fp)) 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 */ /* 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 */ /* skip comments */
if ('#'==*cptr) continue;
if(verbosity) fprintf(stderr, "[%s]\n", cptr);
/* seek for keyword */
} }
fclose(fp); fclose(fp);
return -1; return -1;

View File

@ -33,7 +33,6 @@ while ((opt = getopt(argc, argv, "v")) != -1) {
switch (opt) { switch (opt) {
case 'v': verbosity++; break; case 'v': verbosity++; break;
default: default:
fprintf(stderr, "%s : uh ?", argv[0]); fprintf(stderr, "%s : uh ?", argv[0]);
exit(1); exit(1);
@ -47,9 +46,10 @@ foo = parse_config(conffile, 1);
fprintf(stderr, "parse_config(%s) -> %d\n\n", conffile, foo); fprintf(stderr, "parse_config(%s) -> %d\n\n", conffile, foo);
show_config("foo"); show_config("foo");
/*
foo = load_lut1024f("foo.lut1024f", NULL, 1); foo = load_lut1024f("foo.lut1024f", NULL, 1);
fprintf(stderr, "chargement de la lut --> %d\n\n", foo); fprintf(stderr, "chargement de la lut --> %d\n\n", foo);
*/
return 0; return 0;
} }

View File

@ -21,7 +21,6 @@ v1 = getpid(); v2 = time(NULL);
return v1 ^ v2; return v1 ^ v2;
} }
/* --------------------------------------------------------------- */ /* --------------------------------------------------------------- */
int random1000(int type) int random1000(int type)
{ {
int value; int value;
@ -55,5 +54,4 @@ if (foo) fprintf(stderr, "got %d in %s\n", foo, __func__);
return (double)tv.tv_sec + (double)tv.tv_usec / 1e6; return (double)tv.tv_sec + (double)tv.tv_usec / 1e6;
} }
/* --------------------------------------------------------------- */ /* --------------------------------------------------------------- */

View File

@ -0,0 +1,8 @@
/*
* core/utils.h
*/
int seed_my_rand(int foo);
int random1000(int type);
double dtime(void);