1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-03-10 16:58:47 +03:00

o Added new value type CFG_EMPTY_ARRAY, to indicate '[]', useful since we use

the arrays to hold a symbolic set of flags.
This commit is contained in:
Joe Thornber 2002-08-01 12:46:52 +00:00
parent ffa879d092
commit 07bb413a8f
2 changed files with 20 additions and 0 deletions

View File

@ -177,6 +177,13 @@ static void _write_value(FILE * fp, struct config_value *v)
case CFG_INT: case CFG_INT:
fprintf(fp, "%d", v->v.i); fprintf(fp, "%d", v->v.i);
break; break;
case CFG_EMPTY_ARRAY:
fprintf(fp, "[]");
break;
default:
log_err("Unknown value type");
} }
} }
@ -325,6 +332,16 @@ static struct config_value *_value(struct parser *p)
match(TOK_COMMA); match(TOK_COMMA);
} }
match(TOK_ARRAY_E); match(TOK_ARRAY_E);
/*
* Special case an empty array.
*/
if (!h) {
if (!(h = _create_value(p)))
return NULL;
h->type = CFG_EMPTY_ARRAY;
}
} else } else
h = _type(p); h = _type(p);
@ -335,6 +352,8 @@ static struct config_value *_type(struct parser *p)
{ {
/* [0-9]+ | [0-9]*\.[0-9]* | ".*" */ /* [0-9]+ | [0-9]*\.[0-9]* | ".*" */
struct config_value *v = _create_value(p); struct config_value *v = _create_value(p);
if (!v)
return NULL;
switch (p->t) { switch (p->t) {
case TOK_INT: case TOK_INT:

View File

@ -13,6 +13,7 @@ enum {
CFG_STRING, CFG_STRING,
CFG_FLOAT, CFG_FLOAT,
CFG_INT, CFG_INT,
CFG_EMPTY_ARRAY
}; };
struct config_value { struct config_value {