Use current attributes when erasing.
authorMichael Brown <mcb30@etherboot.org>
Tue, 19 Dec 2006 01:17:10 +0000 (01:17 +0000)
committerMichael Brown <mcb30@etherboot.org>
Tue, 19 Dec 2006 01:17:10 +0000 (01:17 +0000)
src/hci/mucurses/clear.c
src/hci/mucurses/mucurses.c
src/hci/mucurses/mucurses.h

index b4382c5..1813939 100644 (file)
@@ -19,7 +19,7 @@ int wclrtobot ( WINDOW *win ) {
 
        _store_curs_pos( win, &pos );
        do {
-               _wputch( win, (unsigned)' ', WRAP );
+               _wputc( win, ' ', WRAP );
        } while ( win->curs_y + win->curs_x );
        _restore_curs_pos( win, &pos );
 
@@ -37,7 +37,7 @@ int wclrtoeol ( WINDOW *win ) {
 
        _store_curs_pos( win, &pos );
        while ( ( win->curs_y - pos.y ) == 0 ) {
-               _wputch( win, (unsigned)' ', WRAP );
+               _wputc( win, ' ', WRAP );
        }
        _restore_curs_pos( win, &pos );
 
@@ -51,7 +51,7 @@ int wclrtoeol ( WINDOW *win ) {
  * @ret rc     return status code
  */
 int wdelch ( WINDOW *win ) {
-       _wputch( win, (unsigned)' ', NOWRAP );
+       _wputc( win, ' ', NOWRAP );
        _wcursback( win );
 
        return OK;
index 083f6b3..775422e 100644 (file)
@@ -58,6 +58,17 @@ void _wputch ( WINDOW *win, chtype ch, int wrap ) {
        }
 }
 
+/**
+ * Write a single character to a window
+ *
+ * @v *win     window in which to write
+ * @v c                character rendition to write
+ * @v wrap     wrap "switch"
+ */
+void _wputc ( WINDOW *win, char c, int wrap ) {
+       _wputch ( win, ( c | win->attrs ), wrap );
+}
+
 /**
  * Retreat the cursor back one position (useful for a whole host of
  * ops)
@@ -100,7 +111,7 @@ void _wputchstr ( WINDOW *win, const chtype *chstr, int wrap, int n ) {
  */
 void _wputstr ( WINDOW *win, const char *str, int wrap, int n ) {
        for ( ; *str && n-- ; str++ ) {
-               _wputch( win, *str | win->attrs, wrap );
+               _wputc ( win, *str, wrap );
        }
 }
 
index c18e2ff..aca9b5c 100644 (file)
@@ -13,6 +13,7 @@
 extern SCREEN _ansi_screen;
 
 extern void _wputch ( WINDOW *win, chtype ch, int wrap );
+extern void _wputc ( WINDOW *win, char c, int wrap );
 extern void _wputchstr ( WINDOW *win, const chtype *chstr, int wrap, int n );
 extern void _wputstr ( WINDOW *win, const char *str, int wrap, int n );
 extern void _wcursback ( WINDOW *win );