Fixed bugs of 'break;'.
authorviric@mandarina
Sat, 13 May 2006 23:27:42 +0200
changeset 24 29ee3a15905b
parent 23 3e2a39def0db
child 25 31370b4c0627
Fixed bugs of 'break;'. Also changed the return value of add_config_element.
config.c
--- 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,