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 committed by Daniel Eklöf
parent 9c705b26ee
commit 0aa086065c
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 19 additions and 3 deletions

View file

@ -24,6 +24,11 @@
## 1.6.3
### Added
### Changed
* Trailing comments in `foot.ini` must now be preceded by a space or tab
(https://codeberg.org/dnkl/foot/issues/270)
### Deprecated
### Removed
### Fixed
@ -35,6 +40,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] == '[') {