|
@@ -222,7 +222,8 @@ static int perf_parse_file(config_fn_t fn, void *data)
|
|
|
const unsigned char *bomptr = utf8_bom;
|
|
|
|
|
|
for (;;) {
|
|
|
- int c = get_next_char();
|
|
|
+ int line, c = get_next_char();
|
|
|
+
|
|
|
if (bomptr && *bomptr) {
|
|
|
/* We are at the file beginning; skip UTF8-encoded BOM
|
|
|
* if present. Sane editors won't put this in on their
|
|
@@ -261,8 +262,16 @@ static int perf_parse_file(config_fn_t fn, void *data)
|
|
|
if (!isalpha(c))
|
|
|
break;
|
|
|
var[baselen] = tolower(c);
|
|
|
- if (get_value(fn, data, var, baselen+1) < 0)
|
|
|
+
|
|
|
+ /*
|
|
|
+ * The get_value function might or might not reach the '\n',
|
|
|
+ * so saving the current line number for error reporting.
|
|
|
+ */
|
|
|
+ line = config_linenr;
|
|
|
+ if (get_value(fn, data, var, baselen+1) < 0) {
|
|
|
+ config_linenr = line;
|
|
|
break;
|
|
|
+ }
|
|
|
}
|
|
|
die("bad config file line %d in %s", config_linenr, config_file_name);
|
|
|
}
|