@@ -298,18 +298,18 @@ *dataval = lc_process_size(value, endptr); return(0); } - -static int lc_handle_type(lc_var_type_t type, const char *value, void *data) { +int lc_handle_type(lc_var_type_t type, const char *value, void *data) { const char *next; int is_list; is_list = type & LC_VAR_LIST; if (is_list == LC_VAR_LIST) { + /* XXX */ } switch (type) { case LC_VAR_STRING: return(lc_process_var_string(data, value, &next)); @@ -375,11 +375,12 @@ case LC_VAR_UNKNOWN: case LC_VAR_SECTION: case LC_VAR_SECTIONSTART: case LC_VAR_SECTIONEND: return(0); - break; + case LC_VAR_LIST: + return(0); } return(-1); } @@ -399,10 +400,13 @@ } switch (handler->mode) { case LC_MODE_CALLBACK: if (handler->callback != NULL) { + lc_errno = LC_ERR_NONE; + lc_err_usererrmsg = NULL; + retval = handler->callback(localvar, var, varargs, value, flags, handler->extra); if (retval < 0) { lc_errno = LC_ERR_CALLBACK; } return(retval);