Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: better handling of hyperlinks with parentheses #6391

Merged
merged 1 commit into from
Feb 8, 2025

Conversation

psyclaudeZ
Copy link
Contributor

Problem

I noticed there're a few cases where hyperlinks aren't handled correctly (see added unit tests). The root cause is that ) is a confusing character in the context of URL and we should probably add more checks while doing the regex matching.

Also the example explicit link isn't clickable.

Approach

Instead of handle the exhaustive list of cases of ) (which is inefficient and complicated), I decided to focus on the case where there's a terminating ). Particularly, I split the original regex into two: 1) match a URL with an explicit terminating ) 2) mach a URL with other "safe" terminating characters.

I also added _ to the safe terminating character list.

Also added unit tests.

Test Plan

Unit test.

cargo build and ran through a few examples.

I didn't explicitly attempt to fix the explicit hyperlink example. But after this regex change, printf '\e]8;;http://example.com\e\\This is a link\e]8;;\e\\\n' will actually generate a clickable link.

@wez wez merged commit dd7ae90 into wezterm:main Feb 8, 2025
1 check was pending
@wez
Copy link
Member

wez commented Feb 8, 2025

Thank you Bowei, this looks good!
Hope you are well!

wez added a commit that referenced this pull request Feb 8, 2025
wez added a commit that referenced this pull request Feb 8, 2025
Avoids a panic on startup:

```
thread 'main' panicked at config/src/config.rs:1671:86:
called `Result::unwrap()` on an `Err` value: Error(Regex(CompileError(InnerError(Syntax(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
regex parse error:
    ^(?:\s|$|[^_-/a-zA-Z0-9])
               ^^^
```

refs: #6391
@psyclaudeZ
Copy link
Contributor Author

No problem! Thank you Wez, same to you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants