Replace italics with reversed when the curses module is too old to support it.
This commit is contained in:
parent
9a89ba18e6
commit
a278ee2a8c
3 changed files with 9 additions and 9 deletions
|
@ -466,8 +466,8 @@ def to_curses_attr(color_tuple):
|
|||
curses_pair = curses_pair | curses.A_BOLD
|
||||
if 'u' in additional_val:
|
||||
curses_pair = curses_pair | curses.A_UNDERLINE
|
||||
if 'i' in additional_val and hasattr(curses, 'A_ITALIC'):
|
||||
curses_pair = curses_pair | curses.A_ITALIC
|
||||
if 'i' in additional_val:
|
||||
curses_pair = curses_pair | (curses.A_ITALIC if hasattr(curses, 'A_ITALIC') else curses.A_REVERSE)
|
||||
if 'a' in additional_val:
|
||||
curses_pair = curses_pair | curses.A_BLINK
|
||||
return curses_pair
|
||||
|
|
|
@ -101,7 +101,7 @@ class Win(object):
|
|||
if y is not None and x is not None:
|
||||
self.move(y, x)
|
||||
next_attr_char = text.find(FORMAT_CHAR)
|
||||
has_italic = hasattr(curses, 'A_ITALIC')
|
||||
attr_italic = curses.A_ITALIC if hasattr(curses, 'A_ITALIC') else curses.A_REVERSE
|
||||
while next_attr_char != -1 and text:
|
||||
if next_attr_char + 1 < len(text):
|
||||
attr_char = text[next_attr_char + 1].lower()
|
||||
|
@ -115,8 +115,8 @@ class Win(object):
|
|||
self._win.attron(curses.A_UNDERLINE)
|
||||
elif attr_char == 'b':
|
||||
self._win.attron(curses.A_BOLD)
|
||||
elif attr_char == 'i' and has_italic:
|
||||
self._win.attron(curses.A_ITALIC)
|
||||
elif attr_char == 'i':
|
||||
self._win.attron(attr_italic)
|
||||
if (attr_char in string.digits
|
||||
or attr_char == '-') and attr_char != '':
|
||||
color_str = text[next_attr_char + 1:text.find(
|
||||
|
@ -132,7 +132,7 @@ class Win(object):
|
|||
elif char == 'b':
|
||||
self._win.attron(curses.A_BOLD)
|
||||
elif char == 'i' and has_italic:
|
||||
self._win.attron(curses.A_ITALIC)
|
||||
self._win.attron(attr_italic)
|
||||
else:
|
||||
# this will reset previous bold/uderline sequences if any was used
|
||||
self._win.attroff(curses.A_UNDERLINE)
|
||||
|
|
|
@ -485,7 +485,7 @@ class Input(Win):
|
|||
if y is not None and x is not None:
|
||||
self.move(y, x)
|
||||
format_char = find_first_format_char(text, chars)
|
||||
has_italic = hasattr(curses, 'A_ITALIC')
|
||||
attr_italic = curses.A_ITALIC if hasattr(curses, 'A_ITALIC') else curses.A_REVERSE
|
||||
while format_char != -1:
|
||||
if text[format_char] == '\n':
|
||||
attr_char = '|'
|
||||
|
@ -501,8 +501,8 @@ class Input(Win):
|
|||
self._win.attron(curses.A_UNDERLINE)
|
||||
elif attr_char == 'b':
|
||||
self._win.attron(curses.A_BOLD)
|
||||
elif attr_char == 'i' and has_italic:
|
||||
self._win.attron(curses.A_ITALIC)
|
||||
elif attr_char == 'i':
|
||||
self._win.attron(attr_italic)
|
||||
elif attr_char in string.digits and attr_char != '':
|
||||
self._win.attron(to_curses_attr((int(attr_char), -1)))
|
||||
format_char = find_first_format_char(text, chars)
|
||||
|
|
Loading…
Reference in a new issue