From 7ed835cf137db0ca834826ec0f23d2867dabf88f Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 27 Dec 2017 06:35:09 +0530 Subject: [PATCH] Fix a crash when detecting URLs continued onto multiple lines Fixes #244 --- kitty/line.c | 3 +-- kitty_tests/datatypes.py | 3 +++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/kitty/line.c b/kitty/line.c index 1ac7b3c87..7402d449d 100644 --- a/kitty/line.c +++ b/kitty/line.c @@ -139,7 +139,7 @@ line_url_end_at(Line *self, index_type x, bool check_short) { index_type ans = x; if (x >= self->xnum || (check_short && self->xnum <= MIN_URL_LEN + 3)) return 0; while (ans < self->xnum && is_url_char(self->cells[ans].ch)) ans++; - ans--; + if (ans) ans--; while (ans > x && can_strip_from_end_of_url(self->cells[ans].ch)) ans--; return ans; } @@ -618,4 +618,3 @@ copy_char(Line* self, PyObject *args) { COPY_CELL(self, src, to, dest); Py_RETURN_NONE; } - diff --git a/kitty_tests/datatypes.py b/kitty_tests/datatypes.py index ddc244f70..37c251b82 100644 --- a/kitty_tests/datatypes.py +++ b/kitty_tests/datatypes.py @@ -269,6 +269,9 @@ class TestDataTypes(BaseTest): no_url('http: //acme.com') no_url('http:/ /acme.com') + l4 = create(' xxxxxtekljhgdkjgd') + self.ae(l4.url_end_at(0), 0) + def rewrap(self, lb, lb2): hb = HistoryBuf(lb2.ynum, lb2.xnum) cy = lb.rewrap(lb2, hb)