|
|
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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.