|
|
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_clreol.c
27: **
28: ** The routine wclrtoeol().
29: **
30: ** $Log: lib_clreol.c,v $
31: * Revision 1.8 93/04/12 14:13:26 bin
32: * Udo: third color update
33: *
34: * Revision 1.2 92/04/13 14:37:16 bin
35: * update by vlad
36: *
37: * Revision 2.2 91/04/20 18:11:10 munk
38: * Usage of register variables
39: *
40: * Revision 2.1 82/10/25 14:46:42 pavel
41: * Added Copyright Notice
42: *
43: * Revision 2.0 82/10/24 15:20:38 pavel
44: * Beta-one Test Release
45: *
46: **
47: */
48:
49: #ifdef RCSHDR
50: static char RCSid[] =
51: "$Header: /src386/usr/lib/ncurses/RCS/lib_clreol.c,v 1.8 93/04/12 14:13:26 bin Exp Locker: bin $";
52: #endif
53:
54: #include "curses.h"
55: #include "curses.priv.h"
56:
57:
58: wclrtoeol(win)
59: register WINDOW *win;
60: {
61: register chtype *ptr;
62: chtype *maxx, *end;
63: int y, x, minx;
64: chtype blank = ' ' | win->_attrs;
65:
66: #ifdef TRACE
67: if (_tracing)
68: _tracef("wclrtoeol(%o) called", win);
69: #endif
70:
71: y = win->_cury;
72: x = win->_curx;
73:
74: end = &win->_line[y][win->_maxx];
75: minx = _NOCHANGE;
76: maxx = &win->_line[y][x];
77:
78: for (ptr = maxx; ptr < end; ptr++)
79: {
80: if (*ptr != blank)
81: {
82: maxx = ptr;
83: if (minx == _NOCHANGE)
84: minx = ptr - win->_line[y];
85: *ptr = blank;
86: win->_numchngd[y] += 1;
87: }
88: }
89:
90: if (minx != _NOCHANGE)
91: {
92: if (win->_firstchar[y] > minx || win->_firstchar[y] == _NOCHANGE)
93: win->_firstchar[y] = minx;
94:
95: if (win->_lastchar[y] < maxx - win->_line[y])
96: win->_lastchar[y] = maxx - win->_line[y];
97: }
98: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.