changeset 146:5109083b4794

Skip comments lines
author David Demelier <markand@malikania.fr>
date Fri, 11 May 2012 19:06:56 +0200
parents 24efccba44e4
children 535f12e0a5af
files ini.c
diffstat 1 files changed, 6 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/ini.c	Fri May 11 00:37:38 2012 +0200
+++ b/ini.c	Fri May 11 19:06:56 2012 +0200
@@ -16,7 +16,6 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#include <sys/stat.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdarg.h>
@@ -240,10 +239,9 @@
 		ini_warn(cg, "line %d: option within no section", cg->pv->lineno);
 		goto bad;
 	}
-	if (cg->pv->ignore)
-		goto bad;
 
-	if (!(option = calloc(1, sizeof (*option))))
+	if (cg->pv->ignore ||
+	    !(option = calloc(1, sizeof (*option))))
 		goto bad;
 
 	/* Not valid */
@@ -254,6 +252,7 @@
 
 	/* End of option */
 	end = begin;
+	sskip(&end);
 	sseek(&end);
 
 	option->key = sstrndup(begin, end - begin);
@@ -317,6 +316,9 @@
 	while (*lp != '\0') {
 		sskip(&lp);
 
+		if (*lp == '\0' || *lp == '#' || *lp == ';')
+			return 0;
+
 		/* Begin of section */
 		if (*lp == '[') {
 			++ lp;