From 43e87b8a95aa36ab5a7f78de3034e081bac2e8ad Mon Sep 17 00:00:00 2001 From: Marcus Brinkmann Date: Mon, 16 Sep 2002 02:48:56 +0000 Subject: hurd/ 2002-09-16 Marcus Brinkmann * console.h (conchar_attr_t): Add bits for italic and bold text attributes. console/ 2002-09-16 Marcus Brinkmann * hurd.ti: Add capabilities , , , . * display.c (handle_esc_bracket_m): Add support for italic. (display_output_one): Add new capabilities PU1 and PU2 to toggle bold mode. Reset PARSE->state on most escape sequences. * console.c (parse_attributes): Rename old bold attribute to bright. Add support for italic and bold. --- console/display.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'console/display.c') diff --git a/console/display.c b/console/display.c index d11091b4..352e41c4 100644 --- a/console/display.c +++ b/console/display.c @@ -1000,6 +1000,10 @@ handle_esc_bracket_m (attr_t attr, int code) /* Dim on: . */ attr->current.intensity = CONS_ATTR_INTENSITY_DIM; break; + case 3: + /* Italic on: . */ + attr->current.italic = 1; + break; case 4: /* Underline on: . */ attr->current.underlined = 1; @@ -1028,6 +1032,10 @@ handle_esc_bracket_m (attr_t attr, int code) /* Normal intensity. */ attr->current.intensity = CONS_ATTR_INTENSITY_NORMAL; break; + case 23: + /* Italic off: . */ + attr->current.italic = 1; + break; case 24: /* Underline off: . */ attr->current.underlined = 0; @@ -1521,6 +1529,7 @@ display_output_one (display_t display, wchar_t chr) break; case STATE_ESC: + parse->state = STATE_NORMAL; switch (chr) { case L'[': @@ -1539,7 +1548,6 @@ display_output_one (display_t display, wchar_t chr) L' ', display->attr.current); user->cursor.col = user->cursor.row = 0; /* XXX Flag cursor change. */ - parse->state = STATE_NORMAL; break; case L'E': /* ECMA-48 . */ /* Newline. */ @@ -1562,9 +1570,16 @@ display_output_one (display_t display, wchar_t chr) /* Visible bell. */ user->bell.visible++; break; + case L'Q': /* ECMA-48 . */ + /* Bold on: . This is a GNU extension. */ + display->attr.current.bold = 1; + break; + case L'R': /* ECMA-48 . */ + /* Bold off: . This is a GNU extension. */ + display->attr.current.bold = 0; + break; default: /* Unsupported escape sequence. */ - parse->state = STATE_NORMAL; break; } break; -- cgit v1.2.3