Dont strip :code:& and :code:- from the end of URLs

Fixes #2436
This commit is contained in:
Kovid Goyal 2020-03-15 08:29:56 +05:30
parent e8a9935cb2
commit e86c712424
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
4 changed files with 10 additions and 2 deletions

View File

@ -72,6 +72,8 @@ To update |kitty|, :doc:`follow the instructions <binary>`.
- Workaround for bug in less that causes colors to reset at wrapped lines
(:iss:`2381`)
- Dont strip :code:`&` and :code:`-` from the end of URLs (:iss:`2436`)
- Fix ``@selection`` placeholder not working with launch command (:iss:`2417`)
- Drop support for python 3.5

View File

@ -228,7 +228,9 @@ extend_url(Screen *screen, Line *line, index_type *x, index_type *y, char_type s
while(count++ < 10) {
if (*x != line->xnum - 1) break;
line = screen_visual_line(screen, *y + 1);
if (!line) break; // we deliberately allow non-continued lines as some programs, like mutt split URLs with newlines at line boundaries
if (!line) break;
// we deliberately allow non-continued lines as some programs, like
// mutt split URLs with newlines at line boundaries
index_type new_x = line_url_end_at(line, 0, false, sentinel);
if (!new_x) break;
*y += 1; *x = new_x;

View File

@ -20,7 +20,7 @@ static inline bool
can_strip_from_end_of_url(uint32_t ch) {
// remove trailing punctuation
return (
(is_P_category(ch) && ch != '/') ||
(is_P_category(ch) && ch != '/' && ch != '&' && ch != '-') ||
ch == '>'
) ? true : false;
}

View File

@ -281,6 +281,10 @@ class TestDataTypes(BaseTest):
l4 = create(' xxxxxtekljhgdkjgd')
self.ae(l4.url_end_at(0), 0)
for trail in '/-&':
l4 = create('http://a.b?q=1' + trail)
self.ae(l4.url_end_at(1), len(l4) - 1)
def rewrap(self, lb, lb2):
hb = HistoryBuf(lb2.ynum, lb2.xnum)
cy = lb.rewrap(lb2, hb)