Annotation of qemu/roms/ipxe/src/hci/mucurses/clear.c, revision 1.1

1.1     ! root        1: #include <curses.h>
        !             2: #include "mucurses.h"
        !             3: #include "cursor.h"
        !             4: 
        !             5: /** @file
        !             6:  *
        !             7:  * MuCurses clearing functions
        !             8:  *
        !             9:  */
        !            10: 
        !            11: FILE_LICENCE ( GPL2_OR_LATER );
        !            12: 
        !            13: /**
        !            14:  * Clear a window to the bottom from current cursor position
        !            15:  *
        !            16:  * @v *win     subject window
        !            17:  * @ret rc     return status code
        !            18:  */
        !            19: int wclrtobot ( WINDOW *win ) {
        !            20:        struct cursor_pos pos;
        !            21: 
        !            22:        _store_curs_pos( win, &pos );
        !            23:        do {
        !            24:                _wputc( win, ' ', WRAP );
        !            25:        } while ( win->curs_y + win->curs_x );
        !            26:        _restore_curs_pos( win, &pos );
        !            27: 
        !            28:        return OK;
        !            29: }
        !            30: 
        !            31: /**
        !            32:  * Clear a window to the end of the current line
        !            33:  *
        !            34:  * @v *win     subject window
        !            35:  * @ret rc     return status code
        !            36:  */
        !            37: int wclrtoeol ( WINDOW *win ) {
        !            38:        struct cursor_pos pos;
        !            39: 
        !            40:        _store_curs_pos( win, &pos );
        !            41:        while ( ( win->curs_y - pos.y ) == 0 ) {
        !            42:                _wputc( win, ' ', WRAP );
        !            43:        }
        !            44:        _restore_curs_pos( win, &pos );
        !            45: 
        !            46:        return OK;
        !            47: }
        !            48: 
        !            49: /**
        !            50:  * Delete character under the cursor in a window
        !            51:  *
        !            52:  * @v *win     subject window
        !            53:  * @ret rc     return status code
        !            54:  */
        !            55: int wdelch ( WINDOW *win ) {
        !            56:        _wputc( win, ' ', NOWRAP );
        !            57:        _wcursback( win );
        !            58: 
        !            59:        return OK;
        !            60: }
        !            61: 
        !            62: /**
        !            63:  * Delete line under a window's cursor
        !            64:  *
        !            65:  * @v *win     subject window
        !            66:  * @ret rc     return status code
        !            67:  */
        !            68: int wdeleteln ( WINDOW *win ) {
        !            69:        struct cursor_pos pos;
        !            70: 
        !            71:        _store_curs_pos( win, &pos );
        !            72:        /* let's just set the cursor to the beginning of the line and
        !            73:           let wclrtoeol do the work :) */
        !            74:        wmove( win, win->curs_y, 0 );
        !            75:        wclrtoeol( win );
        !            76:        _restore_curs_pos( win, &pos );
        !            77:        return OK;
        !            78: }
        !            79: 
        !            80: /**
        !            81:  * Completely clear a window
        !            82:  *
        !            83:  * @v *win     subject window
        !            84:  * @ret rc     return status code
        !            85:  */
        !            86: int werase ( WINDOW *win ) {
        !            87:        wmove( win, 0, 0 );
        !            88:        wclrtobot( win );
        !            89:        return OK;
        !            90: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.