degesch: add support for crossed-out text
Assuming that sgr0 includes rmxx behaviour, which should be true.
This commit is contained in:
parent
f9ef123171
commit
529a46ad41
31
degesch.c
31
degesch.c
@ -2761,11 +2761,12 @@ init_colors (struct app_context *ctx)
|
||||
|
||||
enum
|
||||
{
|
||||
TEXT_BOLD = 1 << 0,
|
||||
TEXT_ITALIC = 1 << 1,
|
||||
TEXT_UNDERLINE = 1 << 2,
|
||||
TEXT_INVERSE = 1 << 3,
|
||||
TEXT_BLINK = 1 << 4
|
||||
TEXT_BOLD = 1 << 0,
|
||||
TEXT_ITALIC = 1 << 1,
|
||||
TEXT_UNDERLINE = 1 << 2,
|
||||
TEXT_INVERSE = 1 << 3,
|
||||
TEXT_BLINK = 1 << 4,
|
||||
TEXT_CROSSED_OUT = 1 << 5
|
||||
};
|
||||
|
||||
struct attr_printer
|
||||
@ -2939,9 +2940,14 @@ attr_printer_apply (struct attr_printer *self,
|
||||
0, // blank
|
||||
0, // protect
|
||||
0)); // acs
|
||||
if (enter_italics_mode && (text_attrs & TEXT_ITALIC))
|
||||
if ((text_attrs & TEXT_ITALIC) && enter_italics_mode)
|
||||
attr_printer_tputs (self, enter_italics_mode);
|
||||
|
||||
char *smxx = NULL;
|
||||
if ((text_attrs & TEXT_CROSSED_OUT)
|
||||
&& (smxx = tigetstr ("smxx")) && smxx != (char *) -1)
|
||||
attr_printer_tputs (self, smxx);
|
||||
|
||||
if (fg >= 0)
|
||||
attr_printer_tputs (self, g_terminal.color_set_fg[fg]);
|
||||
if (bg >= 0)
|
||||
@ -3199,10 +3205,12 @@ formatter_parse_mirc (struct formatter *self, const char *s)
|
||||
|
||||
switch (c)
|
||||
{
|
||||
case '\x02': FORMATTER_ADD_SIMPLE (self, BOLD); break;
|
||||
case '\x1d': FORMATTER_ADD_SIMPLE (self, ITALIC); break;
|
||||
case '\x1f': FORMATTER_ADD_SIMPLE (self, UNDERLINE); break;
|
||||
case '\x16': FORMATTER_ADD_SIMPLE (self, INVERSE); break;
|
||||
case '\x02': FORMATTER_ADD_SIMPLE (self, BOLD); break;
|
||||
case '\x11': /* monospace, N/A */ break;
|
||||
case '\x1d': FORMATTER_ADD_SIMPLE (self, ITALIC); break;
|
||||
case '\x1e': FORMATTER_ADD_SIMPLE (self, CROSSED_OUT); break;
|
||||
case '\x1f': FORMATTER_ADD_SIMPLE (self, UNDERLINE); break;
|
||||
case '\x16': FORMATTER_ADD_SIMPLE (self, INVERSE); break;
|
||||
|
||||
case '\x03':
|
||||
s = formatter_parse_mirc_color (self, s);
|
||||
@ -13523,6 +13531,9 @@ process_mirc_escape (const struct pollfd *fd, struct app_context *ctx)
|
||||
case 'i' ^ 96:
|
||||
case 'i':
|
||||
case ']': CALL_ (ctx->input, insert, "\x1d"); break;
|
||||
case 'x' ^ 96:
|
||||
case 'x':
|
||||
case '^': CALL_ (ctx->input, insert, "\x1e"); break;
|
||||
case 'u' ^ 96:
|
||||
case 'u':
|
||||
case '_': CALL_ (ctx->input, insert, "\x1f"); break;
|
||||
|
Loading…
Reference in New Issue
Block a user