diff --git a/CHANGELOG.md b/CHANGELOG.md index f9c665fa..b55fe9a5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -86,6 +86,7 @@ * Crash when receiving an OSC-9 or OSC-777 with an empty notification body ([#1866][1866]). +* Crash when tripple-clicking on region containing `NUL` characters. [1866]: https://codeberg.org/dnkl/foot/issues/1866 diff --git a/selection.c b/selection.c index 91c851d2..d7aa617a 100644 --- a/selection.c +++ b/selection.c @@ -533,8 +533,8 @@ selection_find_quote_left(struct terminal *term, struct coord *pos, const struct row *row = grid_row_in_view(term->grid, pos->row); char32_t wc = row->cells[pos->col].wc; - if ((*quote_char == '\0' && (wc == '"' || wc == '\'')) || - wc == *quote_char) + if (*quote_char == '\0' ? (wc == '"' || wc == '\'') + : wc == *quote_char) { return false; } @@ -555,8 +555,8 @@ selection_find_quote_left(struct terminal *term, struct coord *pos, wc = row->cells[next_col].wc; - if ((*quote_char == '\0' && (wc == '"' || wc == '\'')) || - wc == *quote_char) + if (*quote_char == '\0' ? (wc == '"' || wc == '\'') + : wc == *quote_char) { pos->row = next_row; pos->col = next_col + 1;