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