else
break;
} else if (parsr->allocated) {
- parsr->line_len += PAGE_SIZE;
- parsr->data = realloc(parsr->data,
+ parsr->line_len += PAGE_SIZE;
+ parsr->data = realloc(parsr->data,
parsr->data_len + parsr->line_len);
parsr->line = parsr->data + parsr->data_len;
} else {
return parser;
}
-parser_t attribute_hidden * FAST_FUNC config_open(const char *filename)
+parser_t * FAST_FUNC config_open(const char *filename)
{
return config_open2(filename, fopen_or_warn_stdin);
}
}
#endif
-void attribute_hidden FAST_FUNC config_close(parser_t *parser)
+void FAST_FUNC config_close(parser_t *parser)
{
if (parser) {
fclose(parser->fp);
(but more than 0) are found. Empty lines are always skipped (not warned about).
*/
#undef config_read
-int attribute_hidden FAST_FUNC config_read(parser_t *parser, char ***tokens,
+int FAST_FUNC config_read(parser_t *parser, char ***tokens,
unsigned flags, const char *delims)
{
char *line;
len = bb_get_chunk_with_continuation(parser);
if (len == -1)
return 0;
- *tokens = (char **) parser->data;
- memset(*tokens, 0, sizeof(*tokens[0]) * ntokens);
line = parser->line;
/* Skip multiple token-delimiters in the start of line? */
if (line[0] == '\0' || line[0] == delims[0])
goto again;
+ *tokens = (char **) parser->data;
+ memset(*tokens, 0, sizeof(*tokens[0]) * ntokens);
+
/* Tokenize the line */
for (t = 0; *line && *line != delims[0] && t < ntokens; t++) {
/* Pin token */