summaryrefslogtreecommitdiff
path: root/console/display.c
diff options
context:
space:
mode:
authorMarcus Brinkmann <marcus@gnu.org>2002-09-16 02:48:56 +0000
committerMarcus Brinkmann <marcus@gnu.org>2002-09-16 02:48:56 +0000
commit43e87b8a95aa36ab5a7f78de3034e081bac2e8ad (patch)
tree8620e769fd58379a8dfa34529aa8688cd9356c60 /console/display.c
parenta618f28ce12e97bfffea729bdf421c38a236f9ca (diff)
hurd/
2002-09-16 Marcus Brinkmann <marcus@gnu.org> * console.h (conchar_attr_t): Add bits for italic and bold text attributes. console/ 2002-09-16 Marcus Brinkmann <marcus@gnu.org> * hurd.ti: Add capabilities <sitm>, <ritm>, <gsbom>, <grbom>. * 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.
Diffstat (limited to 'console/display.c')
-rw-r--r--console/display.c19
1 files changed, 17 insertions, 2 deletions
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: <dim>. */
attr->current.intensity = CONS_ATTR_INTENSITY_DIM;
break;
+ case 3:
+ /* Italic on: <sitm>. */
+ attr->current.italic = 1;
+ break;
case 4:
/* Underline on: <smul>. */
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: <ritm>. */
+ attr->current.italic = 1;
+ break;
case 24:
/* Underline off: <rmul>. */
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 <NEL>. */
/* 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 <PU1>. */
+ /* Bold on: <gsbom>. This is a GNU extension. */
+ display->attr.current.bold = 1;
+ break;
+ case L'R': /* ECMA-48 <PU2>. */
+ /* Bold off: <grbom>. This is a GNU extension. */
+ display->attr.current.bold = 0;
+ break;
default:
/* Unsupported escape sequence. */
- parse->state = STATE_NORMAL;
break;
}
break;