date and time created 81/01/26 17:02:40 by arnold
authorKen Arnold <arnold@ucbvax.Berkeley.EDU>
Tue, 27 Jan 1981 09:02:40 +0000 (01:02 -0800)
committerKen Arnold <arnold@ucbvax.Berkeley.EDU>
Tue, 27 Jan 1981 09:02:40 +0000 (01:02 -0800)
SCCS-vsn: lib/libcurses/clrtoeol.c 1.1

usr/src/lib/libcurses/clrtoeol.c [new file with mode: 0644]

diff --git a/usr/src/lib/libcurses/clrtoeol.c b/usr/src/lib/libcurses/clrtoeol.c
new file mode 100644 (file)
index 0000000..9110460
--- /dev/null
@@ -0,0 +1,42 @@
+# include      "curses.ext"
+
+/*
+ *     This routine clears up to the end of line
+ *
+ * %G% (Berkeley) @(#)clrtoeol.c       1.1
+ */
+wclrtoeol(win)
+reg WINDOW     *win; {
+
+       reg char        *sp, *end;
+       reg int         y, x;
+       reg char        *maxx;
+       reg int         minx;
+
+       y = win->_cury;
+       x = win->_curx;
+       end = &win->_y[y][win->_maxx];
+       minx = _NOCHANGE;
+       maxx = &win->_y[y][x];
+       for (sp = maxx; sp < end; sp++)
+               if (*sp != ' ') {
+                       maxx = sp;
+                       if (minx == _NOCHANGE)
+                               minx = sp - win->_y[y];
+                       *sp = ' ';
+               }
+       /*
+        * update firstch and lastch for the line
+        */
+# ifdef DEBUG
+       fprintf(outf, "CLRTOEOL: minx = %d, maxx = %d, firstch = %d, lastch = %d\n", minx, maxx - win->_y[y], win->_firstch[y], win->_lastch[y]);
+# endif
+       if (minx != _NOCHANGE) {
+               if (win->_firstch[y] > minx || win->_firstch[y] == _NOCHANGE)
+                       win->_firstch[y] = minx;
+               if (win->_lastch[y] < maxx - win->_y[y])
+                       win->_lastch[y] = maxx - win->_y[y];
+       }
+
+       return OK;
+}