From 156d170d13dd3268728767adf9147e8c4d53d01f Mon Sep 17 00:00:00 2001 From: mathieui Date: Tue, 14 Nov 2017 19:23:35 +0100 Subject: Make italics work --- poezio/windows/base_wins.py | 4 ++-- poezio/windows/inputs.py | 2 +- poezio/xhtml.py | 3 ++- test/test_xhtml.py | 6 ++++++ 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/poezio/windows/base_wins.py b/poezio/windows/base_wins.py index 70271765..b54a7b37 100644 --- a/poezio/windows/base_wins.py +++ b/poezio/windows/base_wins.py @@ -20,7 +20,7 @@ from poezio.theming import to_curses_attr, read_tuple FORMAT_CHAR = '\x19' # These are non-printable chars, so they should never appear in the input, # I guess. But maybe we can find better chars that are even less risky. -format_chars = '\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18' +format_chars = '\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x1A' class DummyWin(object): @@ -132,7 +132,7 @@ class Win(object): self._win.attron(curses.A_UNDERLINE) elif char == 'b': self._win.attron(curses.A_BOLD) - elif char == 'i' and has_italic: + elif char == 'i': self._win.attron(attr_italic) else: # this will reset previous bold/uderline sequences if any was used diff --git a/poezio/windows/inputs.py b/poezio/windows/inputs.py index 512395f0..48f60493 100644 --- a/poezio/windows/inputs.py +++ b/poezio/windows/inputs.py @@ -31,7 +31,7 @@ class Input(Win): passing the list of items that can be used to complete. The completion can be used in a very flexible way. """ - text_attributes = 'bou1234567t' + text_attributes = 'bou1234567ti' clipboard = '' # A common clipboard for all the inputs, this makes # it easy cut and paste text between various input diff --git a/poezio/xhtml.py b/poezio/xhtml.py index 170ea8d3..df11d005 100644 --- a/poezio/xhtml.py +++ b/poezio/xhtml.py @@ -491,7 +491,8 @@ def convert_simple_to_full_colors(text): '\x16': '\x196', '\x17': '\x197', '\x18': '\x198', - '\x19': '\x199' + '\x19': '\x199', + '\x1A': '\x19i' }) text = text.translate(mapping) diff --git a/test/test_xhtml.py b/test/test_xhtml.py index 4f0f2b4f..472991c6 100644 --- a/test/test_xhtml.py +++ b/test/test_xhtml.py @@ -33,6 +33,9 @@ def test_poezio_colors_to_html(): text = '\x19bcoucou\x19o toto \x194}titi' assert poezio_colors_to_html(text) == base + 'coucou toto titi' + end + text = '\x19icoucou' + assert poezio_colors_to_html(text) == base + 'coucou' + end + def test_xhtml_to_poezio_colors(): start = b'

' end = b'

' @@ -45,6 +48,9 @@ def test_xhtml_to_poezio_colors(): xhtml = start + b'http://perdu.com' + end assert xhtml_to_poezio_colors(xhtml) == '\x19uhttp://perdu.com\x19o' + xhtml = start + b'Test' + end + assert xhtml_to_poezio_colors(xhtml) == '\x19iTest\x19o' + xhtml = b'
Allo
test
test2
' assert xhtml_to_poezio_colors(xhtml, force=True) == '\x19bAllo \x19196}test \x1921}test2\x19o' -- cgit v1.2.3