While configuring a remote control I noticed that the ir-keytable
utility would throw the message "Invalid parameter on line 1" if the
first line following the "table ... type: ..." line is a comment.
Also, if a configuration line is invalid, the line number indication
of the error message is sometimes incorrect, because the comments
before it are not counted.
This happens because of the "continue" statement when processing
comments (or the table/type line), thus skipping the line counter
increase at the end of the loop. The included patch fixes both
problems by making sure the counter is always increased.
The parse_cfgfile() function had a similar problem.
Signed-off-by: Chris Pockelé <chris.pockele.f1@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
while (fgets(s, sizeof(s), fin)) {
char *p = s;
+
+ line++;
while (*p == ' ' || *p == '\t')
p++;
- if (!line && p[0] == '#') {
+ if (line==1 && p[0] == '#') {
p++;
p = strtok(p, "\n\t =:");
do {
return ENOMEM;
}
nextkey = nextkey->next;
- line++;
}
fclose(fin);
err_einval:
fprintf(stderr, "Invalid parameter on line %d of %s\n",
- line + 1, fname);
+ line, fname);
return EINVAL;
}
while (fgets(s, sizeof(s), fin)) {
char *p = s;
+
+ line++;
while (*p == ' ' || *p == '\t')
p++;
return ENOMEM;
}
nextcfg = nextcfg->next;
- line++;
}
fclose(fin);
err_einval:
fprintf(stderr, "Invalid parameter on line %d of %s\n",
- line + 1, fname);
+ line, fname);
return EINVAL;
}