summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormathieui <mathieui@mathieui.net>2017-11-14 19:23:35 +0100
committermathieui <mathieui@mathieui.net>2017-11-14 19:23:35 +0100
commit156d170d13dd3268728767adf9147e8c4d53d01f (patch)
tree366020f073c1f2dc7e73f7513a939f4c6b5fcc6b
parentbd7b52988c99ef34fd49f52c8a9d335941144450 (diff)
downloadpoezio-156d170d13dd3268728767adf9147e8c4d53d01f.tar.gz
poezio-156d170d13dd3268728767adf9147e8c4d53d01f.tar.bz2
poezio-156d170d13dd3268728767adf9147e8c4d53d01f.tar.xz
poezio-156d170d13dd3268728767adf9147e8c4d53d01f.zip
Make italics work
-rw-r--r--poezio/windows/base_wins.py4
-rw-r--r--poezio/windows/inputs.py2
-rw-r--r--poezio/xhtml.py3
-rw-r--r--test/test_xhtml.py6
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'