From 9e1c7e011707b63a878caa9be589da7c5a6908ec Mon Sep 17 00:00:00 2001 From: Edgar Hipp Date: Wed, 22 Jun 2016 16:30:38 +0200 Subject: [PATCH 1/3] Update readline.py --- qutebrowser/misc/readline.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/qutebrowser/misc/readline.py b/qutebrowser/misc/readline.py index cb0ffd996..5dd9d19c6 100644 --- a/qutebrowser/misc/readline.py +++ b/qutebrowser/misc/readline.py @@ -158,7 +158,23 @@ class ReadlineBridge: widget = self._widget() if widget is None: return - widget.cursorWordBackward(True) + cursor_position = widget.cursorPosition() + text = widget.text() + + target_position = cursor_position + + is_word_boundary = True + while is_word_boundary and target_position > 0: + is_word_boundary = text[target_position - 1] == " " + target_position-=1 + + is_word_boundary = False + while not is_word_boundary and target_position > 0: + is_word_boundary = text[target_position - 1] == " " + target_position-=1 + + moveby = cursor_position - target_position - 1 + widget.cursorBackward(True, moveby) self._deleted[widget] = widget.selectedText() widget.del_() @@ -211,3 +227,4 @@ class ReadlineBridge: if widget is None: return widget.backspace() + From bfeba3cee6b51868a5f8dfc8a97f5fb169df345f Mon Sep 17 00:00:00 2001 From: Edgar Hipp Date: Wed, 22 Jun 2016 17:15:03 +0200 Subject: [PATCH 2/3] Update readline.py --- qutebrowser/misc/readline.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/qutebrowser/misc/readline.py b/qutebrowser/misc/readline.py index 5dd9d19c6..e527a9abe 100644 --- a/qutebrowser/misc/readline.py +++ b/qutebrowser/misc/readline.py @@ -166,12 +166,12 @@ class ReadlineBridge: is_word_boundary = True while is_word_boundary and target_position > 0: is_word_boundary = text[target_position - 1] == " " - target_position-=1 + target_position -= 1 is_word_boundary = False while not is_word_boundary and target_position > 0: is_word_boundary = text[target_position - 1] == " " - target_position-=1 + target_position -= 1 moveby = cursor_position - target_position - 1 widget.cursorBackward(True, moveby) @@ -227,4 +227,3 @@ class ReadlineBridge: if widget is None: return widget.backspace() - From 81c69421c5e7bd1ddfafe3d07ca8f69ea01167f5 Mon Sep 17 00:00:00 2001 From: Edgar Hipp Date: Fri, 24 Jun 2016 12:00:53 +0200 Subject: [PATCH 3/3] Update test_readline.py --- tests/unit/misc/test_readline.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/unit/misc/test_readline.py b/tests/unit/misc/test_readline.py index 5bd414f16..f59828779 100644 --- a/tests/unit/misc/test_readline.py +++ b/tests/unit/misc/test_readline.py @@ -234,6 +234,8 @@ def test_rl_kill_line(lineedit, bridge, text, deleted, rest): @pytest.mark.parametrize('text, deleted, rest', [ ('test delete|foobar', 'delete', 'test |foobar'), ('test delete |foobar', 'delete ', 'test |foobar'), + ('open -t github.com/foo/bar |', 'github.com/foo/bar ', 'open -t |'), + ('open -t |github.com/foo/bar', '-t ', 'open |github.com/foo/bar'), fixme(('test delfoobar', 'delete', 'test |foobar')), ('test delfoobar', 'del', 'test |ete foobar'), # wrong ])