Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=yaxmenu.git;a=commitdiff;h=4ce340d392a67122061a7ee6ec29fbd433453cbd

commit 4ce340d392a67122061a7ee6ec29fbd433453cbd
Author: James Buren <r...@frugalware.org>
Date:   Mon Dec 7 15:04:13 2009 -0600

utility.c
* add user data to xparsefile

diff --git a/src/utility.c b/src/utility.c
index ba56763..0fb4516 100644
--- a/src/utility.c
+++ b/src/utility.c
@@ -25,7 +25,7 @@ static const char comment_char       = '#';
static const char whitespace_chars[] = " \t\r\n";
static const char scanner_format[]   = "%*[^=]=%n%*[^\n]\n%n";

-static inline bool _xparsefile_line(char *line,parser_callback_t fun) {
+static inline bool _xparsefile_line(char *line,pc_t fun,void *data) {
char *str, *key, *val;
size_t i, j;

@@ -55,7 +55,7 @@ static inline bool _xparsefile_line(char 
*line,parser_callback_t fun) {
if(!*key || !*val)
return false;

-  return fun(key,val);
+  return fun(key,val,data);
}

void *xmalloc(size_t size) {
@@ -111,13 +111,15 @@ char *xstrtrim(char *str) {
return str;
}

-size_t xparsefile(FILE *file,parser_callback_t fun) {
+size_t xparsefile(FILE *file,pc_t fun,void *data) {
char line[LINE_MAX];
size_t num;
bool err;

+  assert(file && fun);
+
for( num = 1, err = false ; xfgets(line,file) ; ++num )
-    if(!_xparsefile_line(line,fun)) {
+    if(!_xparsefile_line(line,fun,data)) {
err = true;
break;
}
_______________________________________________
Frugalware-git mailing list
Frugalware-git@frugalware.org
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to