Annotation of 43BSD/ucb/window/wwinsline.c, revision 1.1.1.1

1.1       root        1: #ifndef lint
                      2: static char sccsid[] = "@(#)wwinsline.c        3.7 4/24/85";
                      3: #endif
                      4: 
                      5: /*
                      6:  * Copyright (c) 1983 Regents of the University of California,
                      7:  * All rights reserved.  Redistribution permitted subject to
                      8:  * the terms of the Berkeley Software License Agreement.
                      9:  */
                     10: 
                     11: #include "ww.h"
                     12: 
                     13: wwinsline(w, row)
                     14: register struct ww *w;
                     15: int row;
                     16: {
                     17:        register i;
                     18:        register union ww_char **cpp, **cqq;
                     19:        register union ww_char *cp;
                     20:        int row1, row2;
                     21:        char deleted;
                     22:        int visible;
                     23: 
                     24:        /*
                     25:         * Scroll first.
                     26:         */
                     27:        if ((row1 = row) < w->ww_i.t) {
                     28:                row1 = w->ww_i.t;
                     29:                visible = 0;
                     30:        } else
                     31:                visible = 1;
                     32:        if ((row2 = w->ww_b.b) > w->ww_i.b) {
                     33:                row2 = w->ww_i.b;
                     34:        }
                     35:        deleted = wwscroll1(w, row1, row2, -1, visible);
                     36: 
                     37:        /*
                     38:         * Fix the buffer.
                     39:         * But leave clearing the last line for wwclreol().
                     40:         */
                     41:        cpp = &w->ww_buf[w->ww_b.b];
                     42:        cqq = cpp - 1;
                     43:        cp = *cqq;
                     44:        for (i = w->ww_b.b - row; --i > 0;)
                     45:                *--cpp = *--cqq;
                     46:        *cqq = cp;
                     47: 
                     48:        /*
                     49:         * Now clear the last line.
                     50:         */
                     51:        if (visible)
                     52:                wwclreol1(w, row, w->ww_b.l, deleted);
                     53:        else
                     54:                for (i = w->ww_b.nc; --i >= 0;)
                     55:                        cp++->c_w = ' ';
                     56: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.