From 25308249920a3f0bf194569193ddf369ff19e480 Mon Sep 17 00:00:00 2001 From: "Tim Nieradzik, Jorge Arellano Cid" Date: Tue, 28 Apr 2009 08:32:47 -0400 Subject: Refactor the preferences parser --- dlib/dlib.c | 10 +++++++--- dlib/dlib.h | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) (limited to 'dlib') diff --git a/dlib/dlib.c b/dlib/dlib.c index 023f869a..9d8cc062 100644 --- a/dlib/dlib.c +++ b/dlib/dlib.c @@ -758,9 +758,10 @@ void *dList_find_sorted (Dlist *lp, const void *data, dCompareFunc func) * - line is modified! * - it skips blank lines and lines starting with '#' * - * Return value: 0 on successful value/pair, -1 otherwise + * Return value: 1 on blank line or comment, 0 on successful value/pair, + * -1 otherwise. */ -int dParser_get_rc_pair(char **line, char **name, char **value) +int dParser_parse_rc_line(char **line, char **name, char **value) { char *eq, *p; int len, ret = -1; @@ -770,7 +771,10 @@ int dParser_get_rc_pair(char **line, char **name, char **value) *name = NULL; *value = NULL; dStrstrip(*line); - if (*line[0] != '#' && (eq = strchr(*line, '='))) { + if (!*line[0] || *line[0] == '#') { + /* blank line or comment */ + ret = 1; + } else if ((eq = strchr(*line, '='))) { /* get name */ for (p = *line; *p && *p != '=' && !isspace(*p); ++p); *p = 0; diff --git a/dlib/dlib.h b/dlib/dlib.h index b1c72293..246f9adb 100644 --- a/dlib/dlib.h +++ b/dlib/dlib.h @@ -158,7 +158,7 @@ void *dList_find_sorted (Dlist *lp, const void *data, dCompareFunc func); /* *- Parse function ------------------------------------------------------------ */ -int dParser_get_rc_pair(char **line, char **name, char **value); +int dParser_parse_rc_line(char **line, char **name, char **value); /* *- Misc utility functions ---------------------------------------------------- -- cgit v1.2.3