From 9970c2adba81633f4c6455c33530b4734ae87cc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Wed, 28 Jul 2021 12:48:34 +0200 Subject: [PATCH] url-mode: use same heuristics for <> as for [] and () --- url-mode.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/url-mode.c b/url-mode.c index 0efb3ad6..275bdf2a 100644 --- a/url-mode.c +++ b/url-mode.c @@ -230,6 +230,7 @@ auto_detected(const struct terminal *term, enum url_action action, ssize_t parenthesis = 0; ssize_t brackets = 0; + ssize_t ltgts = 0; for (int r = 0; r < term->rows; r++) { const struct row *row = grid_row_in_view(term->grid, r); @@ -288,7 +289,6 @@ auto_detected(const struct terminal *term, enum url_action action, case L'/': case L'?': case L'#': case L'@': case L'!': case L'$': case L'&': case L'\'': case L'*': case L'+': case L',': case L';': case L'=': case L'"': case L'%': - case L'<': case L'>': url[len++] = wc; break; @@ -302,6 +302,11 @@ auto_detected(const struct terminal *term, enum url_action action, url[len++] = wc; break; + case L'<': + ltgts++; + url[len++] = wc; + break; + case L')': if (--parenthesis < 0) emit_url = true; @@ -316,6 +321,13 @@ auto_detected(const struct terminal *term, enum url_action action, url[len++] = wc; break; + case L'>': + if (--ltgts < 0) + emit_url = true; + else + url[len++] = wc; + break; + default: emit_url = true; break;