6 /* Wrefresh() updates window win's area of the physical screen. */
11 curscr
->_clear
= TRUE
;
17 /****************************************************************/
18 /* Wnoutrefresh() updates the image of the desired screen, */
19 /* Without doing physical update (copies window win's image to */
20 /* The _cursvar.tmpwin window, which is hidden from the user). */
21 /****************************************************************/
23 void wnoutrefresh(win
)
26 register int *dst
; /* start destination in temp window */
27 register int *end
; /* end destination in temp window */
28 register int *src
; /* source in user window */
29 register int first
; /* first changed char on line */
30 register int last
; /* last changed char on line */
32 int begy
; /* window's place on screen */
37 nscr
= _cursvar
.tmpwin
;
41 for (i
= 0, j
= begy
; i
<= win
->_maxy
; i
++, j
++) {
42 if (win
->_minchng
[i
] != _NO_CHANGE
) {
43 first
= win
->_minchng
[i
];
44 last
= win
->_maxchng
[i
];
45 dst
= &(nscr
->_line
[j
][begx
+ first
]);
46 end
= &(nscr
->_line
[j
][begx
+ last
]);
47 src
= &(win
->_line
[i
][first
]);
49 while (dst
<= end
) /* copy user line to temp window */
52 first
+= begx
; /* nscr's min/max change positions */
55 if ((nscr
->_minchng
[j
] == _NO_CHANGE
) || (nscr
->_minchng
[j
] > first
))
56 nscr
->_minchng
[j
] = first
;
57 if (last
> nscr
->_maxchng
[j
]) nscr
->_maxchng
[j
] = last
;
59 win
->_minchng
[i
] = _NO_CHANGE
; /* updated now */
61 win
->_maxchng
[i
] = _NO_CHANGE
; /* updated now */
69 nscr
->_cury
= win
->_cury
+ begy
;
70 nscr
->_curx
= win
->_curx
+ begx
;