Fixed bugs of 'break;'.
Also changed the return value of add_config_element.
--- a/config.c Sat May 13 23:14:37 2006 +0200
+++ b/config.c Sat May 13 23:27:42 2006 +0200
@@ -89,24 +89,29 @@
parameter[nparameter]='\0';
nvalue=0;
state=READ_VALUE;
+ break;
case '\n':
if (state == READ_VALUE)
{
value[nvalue]='\0';
- add_config_element(parameter,value, MAX_STRING);
+ assert( add_config_element(parameter,
+ value, MAX_STRING)>=0);
}
nparameter=0;
nvalue=0;
state=READ_PARAMETER;
+ break;
default:
switch(state)
{
case READ_PARAMETER:
assert(nparameter <= MAX_STRING);
parameter[nparameter++]=rchar;
+ break;
case READ_VALUE:
assert(nvalue <= MAX_STRING);
value[nvalue++]=rchar;
+ break;
}
}
}
@@ -120,8 +125,9 @@
close(file);
}
-/* Retorna 1 si ha pogut afegir l'element, -1 si hi ha hagut error */
-static int add_config_element(const char * restrict p, const char * restrict v, const int max)
+/* Retorna el tipus si ha pogut afegir l'element, -1 si hi ha hagut error */
+static int add_config_element(const char * restrict p, const char * restrict v,
+ const int max)
{
enum etype_config i, type;
int j, pos;
@@ -168,7 +174,7 @@
main_config.el[pos].type = type;
strncpy(main_config.el[pos].value, v, MAX_STRING);
- return 1;
+ return type;
}
/* Returns 2 on configured type, 1 on default value, 0 on disabled,