Lines Matching refs:xp
43 struct xx *xp, *xq; in xxflush() local
45 for (xp = xx_head; xp != NULL && !(intr && wwinterrupt()); xp = xq) { in xxflush()
46 switch (xp->cmd) { in xxflush()
48 if (xp->link == 0) in xxflush()
49 (*tt.tt_move)(xp->arg0, xp->arg1); in xxflush()
52 xxflush_scroll(xp); in xxflush()
55 (*tt.tt_move)(xp->arg0, xp->arg1); in xxflush()
56 tt.tt_nmodes = xp->arg3; in xxflush()
57 (*tt.tt_inschar)(xp->arg2); in xxflush()
60 (*tt.tt_move)(xp->arg0, xp->arg1); in xxflush()
61 (*tt.tt_insspace)(xp->arg2); in xxflush()
64 (*tt.tt_move)(xp->arg0, xp->arg1); in xxflush()
65 (*tt.tt_delchar)(xp->arg2); in xxflush()
71 (*tt.tt_move)(xp->arg0, xp->arg1); in xxflush()
75 (*tt.tt_move)(xp->arg0, xp->arg1); in xxflush()
79 (*tt.tt_move)(xp->arg0, xp->arg1); in xxflush()
80 tt.tt_nmodes = xp->arg3; in xxflush()
81 (*tt.tt_write)(xp->buf, xp->arg2); in xxflush()
84 xq = xp->link; in xxflush()
85 xxfree(xp); in xxflush()
87 if ((xx_head = xp) == NULL) { in xxflush()
95 xxflush_scroll(struct xx *xp) in xxflush_scroll() argument
100 if (xp->arg0 == 0) in xxflush_scroll()
123 if (xp->arg0 > 0) { in xxflush_scroll()
124 if ((xq = xp->link) != NULL && xq->cmd == xc_scroll && in xxflush_scroll()
125 xp->arg2 == xq->arg2 && xq->arg0 < 0) { in xxflush_scroll()
126 if (xp->arg1 < xq->arg1) { in xxflush_scroll()
127 if (xp->arg2 - xp->arg0 <= xq->arg1) { in xxflush_scroll()
128 xq->arg0 = xp->arg0; in xxflush_scroll()
129 xq->arg1 = xp->arg1; in xxflush_scroll()
130 xq->arg2 = xp->arg2; in xxflush_scroll()
133 xp->arg2 = xq->arg1 + xp->arg0; in xxflush_scroll()
134 xq->arg0 += xp->arg0; in xxflush_scroll()
135 xq->arg1 = xp->arg2; in xxflush_scroll()
140 if (xp->arg1 - xq->arg0 >= xp->arg2) in xxflush_scroll()
142 xq->arg2 = xp->arg1 - xq->arg0; in xxflush_scroll()
143 xp->arg0 += xq->arg0; in xxflush_scroll()
144 xp->arg1 = xq->arg2; in xxflush_scroll()
145 if (xp->arg0 < 0) in xxflush_scroll()
146 xp->arg1 += xp->arg0; in xxflush_scroll()
150 if (xp->arg0 > xp->arg2 - xp->arg1) in xxflush_scroll()
151 xp->arg0 = xp->arg2 - xp->arg1; in xxflush_scroll()
153 if (tt.tt_scroll_top != xp->arg1 || in xxflush_scroll()
154 tt.tt_scroll_bot != xp->arg2 - 1) { in xxflush_scroll()
157 (*tt.tt_setscroll)(xp->arg1, xp->arg2 - 1); in xxflush_scroll()
159 tt.tt_scroll_down(xp->arg0); in xxflush_scroll()
162 (*tt.tt_move)(xp->arg1, 0); in xxflush_scroll()
163 (*tt.tt_delline)(xp->arg0); in xxflush_scroll()
164 if (xp->arg2 < tt.tt_nrow) { in xxflush_scroll()
165 (*tt.tt_move)(xp->arg2 - xp->arg0, 0); in xxflush_scroll()
166 (*tt.tt_insline)(xp->arg0); in xxflush_scroll()
170 xp->arg0 = - xp->arg0; in xxflush_scroll()
171 if (xp->arg0 > xp->arg2 - xp->arg1) in xxflush_scroll()
172 xp->arg0 = xp->arg2 - xp->arg1; in xxflush_scroll()
174 if (tt.tt_scroll_top != xp->arg1 || in xxflush_scroll()
175 tt.tt_scroll_bot != xp->arg2 - 1) { in xxflush_scroll()
178 (*tt.tt_setscroll)(xp->arg1, xp->arg2 - 1); in xxflush_scroll()
180 tt.tt_scroll_up(xp->arg0); in xxflush_scroll()
183 if (tt.tt_retain || xp->arg2 != tt.tt_nrow) { in xxflush_scroll()
184 (*tt.tt_move)(xp->arg2 - xp->arg0, 0); in xxflush_scroll()
185 (*tt.tt_delline)(xp->arg0); in xxflush_scroll()
187 (*tt.tt_move)(xp->arg1, 0); in xxflush_scroll()
188 (*tt.tt_insline)(xp->arg0); in xxflush_scroll()