diff options
author | mathieui <mathieui@mathieui.net> | 2017-11-14 19:23:35 +0100 |
---|---|---|
committer | mathieui <mathieui@mathieui.net> | 2017-11-14 19:23:35 +0100 |
commit | 156d170d13dd3268728767adf9147e8c4d53d01f (patch) | |
tree | 366020f073c1f2dc7e73f7513a939f4c6b5fcc6b | |
parent | bd7b52988c99ef34fd49f52c8a9d335941144450 (diff) | |
download | poezio-156d170d13dd3268728767adf9147e8c4d53d01f.tar.gz poezio-156d170d13dd3268728767adf9147e8c4d53d01f.tar.bz2 poezio-156d170d13dd3268728767adf9147e8c4d53d01f.tar.xz poezio-156d170d13dd3268728767adf9147e8c4d53d01f.zip |
Make italics work
-rw-r--r-- | poezio/windows/base_wins.py | 4 | ||||
-rw-r--r-- | poezio/windows/inputs.py | 2 | ||||
-rw-r--r-- | poezio/xhtml.py | 3 | ||||
-rw-r--r-- | 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 + '<span style="font-weight: bold;">coucou</span> toto <span style="color: blue;">titi</span>' + end + text = '\x19icoucou' + assert poezio_colors_to_html(text) == base + '<span style="font-style: italic;">coucou</span>' + end + def test_xhtml_to_poezio_colors(): start = b'<body xmlns="http://www.w3.org/1999/xhtml"><p>' end = b'</p></body>' @@ -45,6 +48,9 @@ def test_xhtml_to_poezio_colors(): xhtml = start + b'<a href="http://perdu.com">http://perdu.com</a>' + end assert xhtml_to_poezio_colors(xhtml) == '\x19uhttp://perdu.com\x19o' + xhtml = start + b'<span style="font-style: italic">Test</span>' + end + assert xhtml_to_poezio_colors(xhtml) == '\x19iTest\x19o' + xhtml = b'<div style="font-weight:bold">Allo <div style="color:red">test <div style="color: blue">test2</div></div></div>' assert xhtml_to_poezio_colors(xhtml, force=True) == '\x19bAllo \x19196}test \x1921}test2\x19o' |