From 8104aea48f6bf626d00387ad5d64eb1fced427c3 Mon Sep 17 00:00:00 2001 From: Robert Spalek Date: Fri, 21 Apr 2006 01:15:19 +0200 Subject: [PATCH] small fixes --- lib/conf2.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/conf2.c b/lib/conf2.c index 594ad757..7c55384b 100644 --- a/lib/conf2.c +++ b/lib/conf2.c @@ -453,9 +453,9 @@ enum operation { #define MAX_STACK_SIZE 100 static struct item_stack { - void *base_ptr; - struct cf_section *sec; - enum operation op; + struct cf_section *sec; // nested section + void *base_ptr; // because original pointers are often relative + enum operation op; // it is performed when a closing brace is encountered } stack[MAX_STACK_SIZE]; static uns level; @@ -510,7 +510,7 @@ parse_subsection(struct cf_section *sec, int number, byte **pars, void *ptr) return "Only sections consisting entirely of basic attributes can be written on 1 line"; if (number) { - if (number <= ci->number) + if (number < ci->number) return "The number of parameters does not fit the section attributes"; void *p = ptr + (addr_int_t) ci->ptr; cf_journal_block(p, ci->number * parsers[ci->u.type].size); @@ -591,7 +591,7 @@ interpret_item(byte *name, enum operation op, int number, byte **pars) { case CC_STATIC: if (number != item->number) - return item->number==1 ? "Expecting one scalar value, not array" : "Expecting array of different length"; + return item->number==1 ? "Expecting one scalar value, not an array" : "Expecting array of different length"; cf_journal_block(ptr, number * parsers[item->u.type].size); return cf_parse_ary(number, pars, ptr, item->u.type); case CC_DYNAMIC: @@ -605,6 +605,8 @@ interpret_item(byte *name, enum operation op, int number, byte **pars) if (number > -item->number) return "Expecting less parameters"; } + for (int i=0; iu.par(number, pars, ptr); case CC_SECTION: // setting a subsection at once return parse_subsection(item->u.sec, number, pars, ptr); -- 2.39.2