mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-05 04:06:08 -05:00
url-mode: off-by-one error in end-point column of auto-detected URLs
When an auto-detected URL ended *on* the right-most column, the URL endpoint was off by one, resulting in the underline in URL mode being one character short.
This commit is contained in:
parent
19429d13a3
commit
974c3acd78
2 changed files with 13 additions and 5 deletions
|
|
@ -147,6 +147,8 @@
|
|||
around (https://codeberg.org/dnkl/foot/issues/552).
|
||||
* Selection incorrectly wrapping rows ending with an explicit newline
|
||||
(https://codeberg.org/dnkl/foot/issues/565).
|
||||
* Off-by-one error in markup of auto-detected URLs when the URL ends
|
||||
in the right-most column.
|
||||
|
||||
|
||||
### Security
|
||||
|
|
|
|||
16
url-mode.c
16
url-mode.c
|
|
@ -320,14 +320,16 @@ auto_detected(const struct terminal *term, enum url_action action,
|
|||
break;
|
||||
}
|
||||
|
||||
if (c >= term->cols - 1 && row->linebreak)
|
||||
if (c >= term->cols - 1 && row->linebreak) {
|
||||
/*
|
||||
* Endpoint is inclusive, and we’ll be subtracting
|
||||
* 1 from the column when emitting the URL.
|
||||
*/
|
||||
c++;
|
||||
emit_url = true;
|
||||
}
|
||||
|
||||
if (emit_url) {
|
||||
/* Heuristic to remove trailing characters that
|
||||
* are valid URL characters, but typically not at
|
||||
* the end of the URL */
|
||||
bool done = false;
|
||||
struct coord end = {c, r};
|
||||
|
||||
if (--end.col < 0) {
|
||||
|
|
@ -335,6 +337,10 @@ auto_detected(const struct terminal *term, enum url_action action,
|
|||
end.col = term->cols - 1;
|
||||
}
|
||||
|
||||
/* Heuristic to remove trailing characters that
|
||||
* are valid URL characters, but typically not at
|
||||
* the end of the URL */
|
||||
bool done = false;
|
||||
do {
|
||||
switch (url[len - 1]) {
|
||||
case L'.': case L',': case L':': case L';': case L'?':
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue