|
|
1.1 root 1: /*********************************************************************
2: * COPYRIGHT NOTICE *
3: **********************************************************************
4: * This software is copyright (C) 1982 by Pavel Curtis *
5: * *
6: * Permission is granted to reproduce and distribute *
7: * this file by any means so long as no fee is charged *
8: * above a nominal handling fee and so long as this *
9: * notice is always included in the copies. *
10: * *
11: * Other rights are reserved except as explicitly granted *
12: * by written permission of the author. *
13: * Pavel Curtis *
14: * Computer Science Dept. *
15: * 405 Upson Hall *
16: * Cornell University *
17: * Ithaca, NY 14853 *
18: * *
19: * Ph- (607) 256-4934 *
20: * *
21: * Pavel.Cornell@Udel-Relay (ARPAnet) *
22: * decvax!cornell!pavel (UUCPnet) *
23: *********************************************************************/
24:
25: /*
26: * lib_refresh.c
27: *
28: * The routines wrefresh() and wnoutrefresh().
29: *
30: * $Log: lib_refresh.c,v $
31: * Revision 3.2 91/04/20 21:37:40 munk
32: * Usage of register variables
33: *
34: * Revision 3.1 84/12/13 11:20:51 john
35: * Revisions by Mark Horton
36: *
37: * Revision 2.1 82/10/25 14:48:45 pavel
38: * Added Copyright Notice
39: *
40: * Revision 2.0 82/10/25 13:48:47 pavel
41: * Beta-one Test Release
42: *
43: *
44: */
45:
46: #ifdef RCSHDR
47: static char RCSid[] =
48: "$Header: lib_refresh.c,v 3.2 91/04/20 21:37:40 munk Exp $";
49: #endif
50:
51: #include "curses.h"
52: #include "curses.priv.h"
53:
54:
55: wrefresh(win)
56: WINDOW *win;
57: {
58: #ifdef TRACE
59: if (_tracing)
60: _tracef("wrefresh(%o) called", win);
61: #endif
62:
63: if (win == curscr)
64: {
65: curscr->_clear = TRUE;
66: doupdate();
67: }
68: else
69: {
70: wnoutrefresh(win);
71: doupdate();
72: }
73: }
74:
75:
76: wnoutrefresh(win)
77: register WINDOW *win;
78: {
79: register int i, j;
80: int begx = win->_begx;
81: int begy = win->_begy;
82: int m, n;
83:
84: #ifdef TRACE
85: if (_tracing)
86: _tracef("wnoutrefresh(%o) called", win);
87: #endif
88:
89: for (i=0, m=begy; i <= win->_maxy; i++, m++)
90: {
91: #ifdef TRACE
92: if (_tracing)
93: {
94: _tracef("win->_firstchar[%d]= %d\t_lastchar= %d\t_numchngd= %d",
95: i, win->_firstchar[i],
96: win->_lastchar[i],
97: win->_numchngd[i]);
98: }
99: #endif
100:
101: if (win->_numchngd[i])
102: {
103: j = win->_firstchar[i];
104: n = j + begx;
105: for (; j <= win->_lastchar[i]; j++, n++)
106: {
107: if (win->_line[i][j] != newscr->_line[m][n])
108: {
109: newscr->_line[m][n] = win->_line[i][j];
110: newscr->_numchngd[m] += 1;
111:
112: if (newscr->_firstchar[m] == _NOCHANGE)
113: newscr->_firstchar[m] = newscr->_lastchar[m] = n;
114: else if (n < newscr->_firstchar[m])
115: newscr->_firstchar[m] = n;
116: else if (n > newscr->_lastchar[m])
117: newscr->_lastchar[m] = n;
118: }
119: }
120: }
121:
122: win->_numchngd[i] = 0;
123: win->_firstchar[i] = win->_lastchar[i] = _NOCHANGE;
124: }
125:
126: if (win->_clear)
127: {
128: win->_clear = FALSE;
129: newscr->_clear = TRUE;
130: }
131:
132: if (! win->_leave)
133: {
134: newscr->_cury = win->_cury + win->_begy;
135: newscr->_curx = win->_curx + win->_begx;
136: }
137: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.