SCCS-vsn: usr.bin/window/main.c 3.4
SCCS-vsn: usr.bin/window/wwinit.c 3.7
SCCS-vsn: usr.bin/window/ww.h 3.9
SCCS-vsn: usr.bin/window/cmd.c 3.4
SCCS-vsn: usr.bin/window/cmd1.c 3.6
SCCS-vsn: usr.bin/window/wwwrite.c 3.6
-static char *sccsid = "@(#)cmd.c 3.3 83/08/18";
+static char *sccsid = "@(#)cmd.c 3.4 83/08/19";
if (!terse)
wwadd(cmdwin, &wwhead);
if (!terse)
wwadd(cmdwin, &wwhead);
- Woncursor(selwin->ww_win, 1);
- */
top:
while ((c = bgetc()) >= 0) {
if (!terse)
top:
while ((c = bgetc()) >= 0) {
if (!terse)
- Woncursor(selwin->ww_win, 0);
- */
* or behind everbody else.
*/
wwadd(w, (oldselwin ? oldselwin : &wwhead)->ww_back);
* or behind everbody else.
*/
wwadd(w, (oldselwin ? oldselwin : &wwhead)->ww_back);
- /*
- Woncursor(w->ww_win, 1);
- */
- }
- /*
- if (oldselwin) {
- Woncursor(oldselwin->ww_win, 0);
-static char *sccsid = "@(#)cmd1.c 3.5 83/08/18";
+static char *sccsid = "@(#)cmd1.c 3.6 83/08/19";
w->ww_id = id;
window[id] = w;
w->ww_hasframe = 1;
w->ww_id = id;
window[id] = w;
w->ww_hasframe = 1;
wwadd(w, (selwin ? selwin : wwhead.ww_back));
setselwin(w);
wwupdate();
wwadd(w, (selwin ? selwin : wwhead.ww_back));
setselwin(w);
wwupdate();
-static char *sccsid = "@(#)main.c 3.3 83/08/18";
+static char *sccsid = "@(#)main.c 3.4 83/08/19";
dodefault();
if (selwin != 0) {
curwin = selwin;
dodefault();
if (selwin != 0) {
curwin = selwin;
- /*
- Woncursor(selwin->ww_win, 0);
- */
}
if (!terse) {
wwdelete(cmdwin);
}
if (!terse) {
wwdelete(cmdwin);
- * @(#)ww.h 3.8 83/08/18
+ * @(#)ww.h 3.9 83/08/19
char ww_insert :1; /* insert mode, for printing */
char ww_mapnl :1; /* map \n to \r\n */
char ww_haspty :1; /* has pty */
char ww_insert :1; /* insert mode, for printing */
char ww_mapnl :1; /* map \n to \r\n */
char ww_haspty :1; /* has pty */
+ char ww_hascursor :1; /* has fake cursor */
char ww_index; /* the index, for wwindex[] */
char ww_order; /* the overlapping order */
struct ww_dim ww_w; /* window dimemsions */
char ww_index; /* the index, for wwindex[] */
char ww_order; /* the overlapping order */
struct ww_dim ww_w; /* window dimemsions */
int wwnrow, wwncol; /* the screen size */
char wwavailmodes; /* actually supported modes */
int wwnrow, wwncol; /* the screen size */
char wwavailmodes; /* actually supported modes */
+char wwcursormodes; /* the modes for the fake cursor */
char wwwrap; /* terminal has auto wrap around */
int wwdtablesize; /* result of getdtablesize() call */
char **wwsmap; /* the screen map */
char wwwrap; /* terminal has auto wrap around */
int wwdtablesize; /* result of getdtablesize() call */
char **wwsmap; /* the screen map */
-static char *sccsid = "@(#)wwinit.c 3.6 83/08/17";
+static char *sccsid = "@(#)wwinit.c 3.7 83/08/19";
wwwrap = tt.tt_wrap;
(*tt.tt_init)();
wwwrap = tt.tt_wrap;
(*tt.tt_init)();
+ if (wwavailmodes & WWM_REV)
+ wwcursormodes = WWM_REV | wwavailmodes & WWM_BLK;
+ else if (wwavailmodes & WWM_UL)
+ wwcursormodes = WWM_UL;
+
if ((wwsmap = wwalloc(wwnrow, wwncol, sizeof (char))) == 0)
goto bad;
for (i = 0; i < wwnrow; i++)
if ((wwsmap = wwalloc(wwnrow, wwncol, sizeof (char))) == 0)
goto bad;
for (i = 0; i < wwnrow; i++)
-static char *sccsid = "@(#)wwwrite.c 3.5 83/08/18";
+static char *sccsid = "@(#)wwwrite.c 3.6 83/08/19";
if (w == 0)
return -1;
wwnwrite++;
wwnwritec += n;
if (w == 0)
return -1;
wwnwrite++;
wwnwritec += n;
+ if (hascursor = w->ww_hascursor)
+ wwcursor(w, 0);
while (--n >= 0) {
c = *p++ & 0x7f;
switch (w->ww_wstate) {
while (--n >= 0) {
c = *p++ & 0x7f;
switch (w->ww_wstate) {
+ if (hascursor)
+ wwcursor(w, 1);