Require trailing comment to be preceded by a space or tab

Fixes `word-delimiters` option to not ignore `#` and subsequent characters.

Closes #270
This commit is contained in:
Peter Colberg 2021-01-03 14:08:25 -05:00
parent e2b3ef63b9
commit afc343d528
2 changed files with 16 additions and 3 deletions

View file

@ -30,6 +30,8 @@
instead of needing to be manually cloned.
* Box drawing characters are now rendered by foot, instead of using
font glyphs (https://codeberg.org/dnkl/foot/issues/198)
* Trailing comments in `foot.ini` must now be preceded by a space or tab
(https://codeberg.org/dnkl/foot/issues/270)
### Deprecated
@ -43,6 +45,8 @@
* Erased, overflowing glyphs (when
`tweak.allow-overflowing-double-width-glyphs=yes` - the default) not
properly erasing the cell overflowed **into**.
* `word-delimiters` option ignores `#` and subsequent characters
(https://codeberg.org/dnkl/foot/issues/270)
### Security

View file

@ -1731,9 +1731,18 @@ parse_config_file(FILE *f, struct config *conf, const char *path, bool errors_ar
if (line[0] == '\0' || line[0] == '#')
continue;
/* Split up into key/value pair + trailing comment */
char *key_value = strtok(line, "#");
char UNUSED *comment = strtok(NULL, "\n");
/* Split up into key/value pair + trailing comment separated by blank */
char *key_value = line;
char *comment = line;
while (comment[0] != '\0') {
const char c = comment[0];
comment++;
if (isblank(c) && comment[0] == '#') {
comment[0] = '\0'; /* Terminate key/value pair */
comment++;
break;
}
}
/* Check for new section */
if (key_value[0] == '[') {