url-mode: remove overlapping URLs, not just duplicates

echo -e '\e]8;;https://www.foo.bar\e\\https://www.foo\e]8;;\e\\.bar'

will produce an OSC-8 URL (https://www.foo) that is slightly shorter
than the auto-detected one (https://www.foo.bar).

This produces strange results in URL mode. For example, if
url.osc8-underline=always, the OSC8 underline will be removed when
url-mode is exited.

This patch changes the behavior so that auto-detected URLs that
overlap OSC-8 URLs are removed.

Note that OSC-8 URLs cannot overlap with each other, and that
auto-detected URLs also cannot overlap with each other.
This commit is contained in:
Daniel Eklöf 2021-05-22 16:42:43 +02:00
parent 458dd66135
commit 5605eb9040
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
3 changed files with 38 additions and 10 deletions

View file

@ -82,6 +82,7 @@
(https://codeberg.org/dnkl/foot/issues/478).
* `ctrl + w` (_extend-to-word-boundary_) can now be used across lines
(https://codeberg.org/dnkl/foot/issues/421).
* Ignore auto-detected URLs that overlap with OSC-8 URLs.
### Deprecated