static char sccsid
[] = "@(#)display.c 1.2 (Berkeley) %G%";
* The window 'manager', initializes curses and handles the actual
int curses_initialized
= 0;
* max HAS to be a function, it is called with
* a argument of the form --foo at least once.
* Display some text on somebody's window, processing some control
* characters while we are at it.
for (i
= 0; i
< size
; i
++) {
if (*text
== win
->cerase
) {
wmove(win
->x_win
, win
->x_line
, max(--win
->x_col
, 0));
getyx(win
->x_win
, win
->x_line
, win
->x_col
);
wmove(win
->x_win
, win
->x_line
, win
->x_col
);
getyx(win
->x_win
, win
->x_line
, win
->x_col
);
* On word erase search backwards until we find
* the beginning of a word or the beginning of
if (*text
== win
->werase
) {
c
= readwin(win
->x_win
, win
->x_line
, xcol
);
c
= readwin(win
->x_win
, win
->x_line
, xcol
);
wmove(win
->x_win
, win
->x_line
, xcol
+ 1);
for (i
= xcol
+ 1; i
< endcol
; i
++)
wmove(win
->x_win
, win
->x_line
, xcol
+ 1);
getyx(win
->x_win
, win
->x_line
, win
->x_col
);
if (*text
== win
->kill
) {
wmove(win
->x_win
, win
->x_line
, 0);
getyx(win
->x_win
, win
->x_line
, win
->x_col
);
if (win
->x_col
== COLS
-1) {
/* check for wraparound */
if (*text
< ' ' && *text
!= '\t') {
getyx(win
->x_win
, win
->x_line
, win
->x_col
);
if (win
->x_col
== COLS
-1) /* check for wraparound */
waddch(win
->x_win
, *text
);
getyx(win
->x_win
, win
->x_line
, win
->x_col
);
* Read the character at the indicated position in win
getyx(win
, oldline
, oldcol
);
wmove(win
, oldline
, oldcol
);
* Scroll a window, blanking out the line following the current line
* so that the current position is obvious
win
->x_line
= (win
->x_line
+ 1) % win
->x_nlines
;
wmove(win
->x_win
, win
->x_line
, win
->x_col
);
wmove(win
->x_win
, (win
->x_line
+ 1) % win
->x_nlines
, win
->x_col
);
wmove(win
->x_win
, win
->x_line
, win
->x_col
);