Lines Matching full:scp
34 static __inline void sc_term_ins_line(scr_stat *scp, int y, int n, int ch,
36 static __inline void sc_term_del_line(scr_stat *scp, int y, int n, int ch,
38 static __inline void sc_term_ins_char(scr_stat *scp, int n, int ch,
40 static __inline void sc_term_del_char(scr_stat *scp, int n, int ch,
42 static __inline void sc_term_col(scr_stat *scp, int n);
43 static __inline void sc_term_row(scr_stat *scp, int n);
44 static __inline void sc_term_up(scr_stat *scp, int n, int head);
45 static __inline void sc_term_down(scr_stat *scp, int n, int tail);
46 static __inline void sc_term_left(scr_stat *scp, int n);
47 static __inline void sc_term_right(scr_stat *scp, int n);
48 static __inline void sc_term_up_scroll(scr_stat *scp, int n, int ch,
50 static __inline void sc_term_down_scroll(scr_stat *scp, int n, int ch,
52 static __inline void sc_term_clr_eos(scr_stat *scp, int n, int ch, int attr);
53 static __inline void sc_term_clr_eol(scr_stat *scp, int n, int ch, int attr);
54 static __inline void sc_term_tab(scr_stat *scp, int n);
55 static __inline void sc_term_backtab(scr_stat *scp, int n);
56 static __inline void sc_term_respond(scr_stat *scp, u_char *s);
57 static __inline void sc_term_gen_print(scr_stat *scp, u_char **buf, int *len,
59 static __inline void sc_term_gen_scroll(scr_stat *scp, int ch, int attr);
62 sc_term_ins_line(scr_stat *scp, int y, int n, int ch, int attr, int tail) in sc_term_ins_line() argument
65 tail = scp->ysize; in sc_term_ins_line()
70 sc_vtb_ins(&scp->vtb, y*scp->xsize, n*scp->xsize, ch, attr); in sc_term_ins_line()
71 mark_for_update(scp, y*scp->xsize); in sc_term_ins_line()
72 mark_for_update(scp, scp->xsize*tail - 1); in sc_term_ins_line()
76 sc_term_del_line(scr_stat *scp, int y, int n, int ch, int attr, int tail) in sc_term_del_line() argument
79 tail = scp->ysize; in sc_term_del_line()
84 sc_vtb_delete(&scp->vtb, y*scp->xsize, n*scp->xsize, ch, attr); in sc_term_del_line()
85 mark_for_update(scp, y*scp->xsize); in sc_term_del_line()
86 mark_for_update(scp, scp->xsize*tail - 1); in sc_term_del_line()
90 sc_term_ins_char(scr_stat *scp, int n, int ch, int attr) in sc_term_ins_char() argument
96 if (n > scp->xsize - scp->xpos) in sc_term_ins_char()
97 n = scp->xsize - scp->xpos; in sc_term_ins_char()
98 count = scp->xsize - (scp->xpos + n); in sc_term_ins_char()
99 sc_vtb_move(&scp->vtb, scp->cursor_pos, scp->cursor_pos + n, count); in sc_term_ins_char()
100 sc_vtb_erase(&scp->vtb, scp->cursor_pos, n, ch, attr); in sc_term_ins_char()
101 mark_for_update(scp, scp->cursor_pos); in sc_term_ins_char()
102 mark_for_update(scp, scp->cursor_pos + n + count - 1); in sc_term_ins_char()
106 sc_term_del_char(scr_stat *scp, int n, int ch, int attr) in sc_term_del_char() argument
112 if (n > scp->xsize - scp->xpos) in sc_term_del_char()
113 n = scp->xsize - scp->xpos; in sc_term_del_char()
114 count = scp->xsize - (scp->xpos + n); in sc_term_del_char()
115 sc_vtb_move(&scp->vtb, scp->cursor_pos + n, scp->cursor_pos, count); in sc_term_del_char()
116 sc_vtb_erase(&scp->vtb, scp->cursor_pos + count, n, ch, attr); in sc_term_del_char()
117 mark_for_update(scp, scp->cursor_pos); in sc_term_del_char()
118 mark_for_update(scp, scp->cursor_pos + n + count - 1); in sc_term_del_char()
122 sc_term_col(scr_stat *scp, int n) in sc_term_col() argument
126 sc_move_cursor(scp, n - 1, scp->ypos); in sc_term_col()
130 sc_term_row(scr_stat *scp, int n) in sc_term_row() argument
134 sc_move_cursor(scp, scp->xpos, n - 1); in sc_term_row()
138 sc_term_up(scr_stat *scp, int n, int head) in sc_term_up() argument
142 n = imin(n, scp->ypos - head); in sc_term_up()
145 sc_move_cursor(scp, scp->xpos, scp->ypos - n); in sc_term_up()
149 sc_term_down(scr_stat *scp, int n, int tail) in sc_term_down() argument
152 tail = scp->ysize; in sc_term_down()
155 n = imin(n, tail - scp->ypos - 1); in sc_term_down()
158 sc_move_cursor(scp, scp->xpos, scp->ypos + n); in sc_term_down()
162 sc_term_left(scr_stat *scp, int n) in sc_term_left() argument
166 sc_move_cursor(scp, scp->xpos - n, scp->ypos); in sc_term_left()
170 sc_term_right(scr_stat *scp, int n) in sc_term_right() argument
174 sc_move_cursor(scp, scp->xpos + n, scp->ypos); in sc_term_right()
178 sc_term_up_scroll(scr_stat *scp, int n, int ch, int attr, int head, int tail) in sc_term_up_scroll() argument
181 tail = scp->ysize; in sc_term_up_scroll()
184 if (n <= scp->ypos - head) { in sc_term_up_scroll()
185 sc_move_cursor(scp, scp->xpos, scp->ypos - n); in sc_term_up_scroll()
187 sc_term_ins_line(scp, head, n - (scp->ypos - head), in sc_term_up_scroll()
189 sc_move_cursor(scp, scp->xpos, head); in sc_term_up_scroll()
194 sc_term_down_scroll(scr_stat *scp, int n, int ch, int attr, int head, int tail) in sc_term_down_scroll() argument
197 tail = scp->ysize; in sc_term_down_scroll()
200 if (n < tail - scp->ypos) { in sc_term_down_scroll()
201 sc_move_cursor(scp, scp->xpos, scp->ypos + n); in sc_term_down_scroll()
203 sc_term_del_line(scp, head, n - (tail - scp->ypos) + 1, in sc_term_down_scroll()
205 sc_move_cursor(scp, scp->xpos, tail - 1); in sc_term_down_scroll()
210 sc_term_clr_eos(scr_stat *scp, int n, int ch, int attr) in sc_term_clr_eos() argument
214 sc_vtb_erase(&scp->vtb, scp->cursor_pos, in sc_term_clr_eos()
215 scp->xsize*scp->ysize - scp->cursor_pos, in sc_term_clr_eos()
217 mark_for_update(scp, scp->cursor_pos); in sc_term_clr_eos()
218 mark_for_update(scp, scp->xsize*scp->ysize - 1); in sc_term_clr_eos()
219 sc_remove_cutmarking(scp); in sc_term_clr_eos()
222 sc_vtb_erase(&scp->vtb, 0, scp->cursor_pos + 1, ch, attr); in sc_term_clr_eos()
223 mark_for_update(scp, 0); in sc_term_clr_eos()
224 mark_for_update(scp, scp->cursor_pos); in sc_term_clr_eos()
225 sc_remove_cutmarking(scp); in sc_term_clr_eos()
228 sc_vtb_erase(&scp->vtb, 0, scp->xsize*scp->ysize, ch, attr); in sc_term_clr_eos()
229 mark_for_update(scp, 0); in sc_term_clr_eos()
230 mark_for_update(scp, scp->xsize*scp->ysize - 1); in sc_term_clr_eos()
231 sc_remove_cutmarking(scp); in sc_term_clr_eos()
237 sc_term_clr_eol(scr_stat *scp, int n, int ch, int attr) in sc_term_clr_eol() argument
241 sc_vtb_erase(&scp->vtb, scp->cursor_pos, in sc_term_clr_eol()
242 scp->xsize - scp->xpos, ch, attr); in sc_term_clr_eol()
243 mark_for_update(scp, scp->cursor_pos); in sc_term_clr_eol()
244 mark_for_update(scp, scp->cursor_pos + in sc_term_clr_eol()
245 scp->xsize - 1 - scp->xpos); in sc_term_clr_eol()
248 sc_vtb_erase(&scp->vtb, scp->cursor_pos - scp->xpos, in sc_term_clr_eol()
249 scp->xpos + 1, ch, attr); in sc_term_clr_eol()
250 mark_for_update(scp, scp->ypos*scp->xsize); in sc_term_clr_eol()
251 mark_for_update(scp, scp->cursor_pos); in sc_term_clr_eol()
254 sc_vtb_erase(&scp->vtb, scp->cursor_pos - scp->xpos, in sc_term_clr_eol()
255 scp->xsize, ch, attr); in sc_term_clr_eol()
256 mark_for_update(scp, scp->ypos*scp->xsize); in sc_term_clr_eol()
257 mark_for_update(scp, (scp->ypos + 1)*scp->xsize - 1); in sc_term_clr_eol()
263 sc_term_tab(scr_stat *scp, int n) in sc_term_tab() argument
269 i = (scp->xpos & ~7) + 8*n; in sc_term_tab()
270 if (i >= scp->xsize) { in sc_term_tab()
271 if (scp->ypos >= scp->ysize - 1) { in sc_term_tab()
272 scp->xpos = 0; in sc_term_tab()
273 scp->ypos++; in sc_term_tab()
274 scp->cursor_pos = scp->ypos*scp->xsize; in sc_term_tab()
276 sc_move_cursor(scp, 0, scp->ypos + 1); in sc_term_tab()
278 sc_move_cursor(scp, i, scp->ypos); in sc_term_tab()
282 sc_term_backtab(scr_stat *scp, int n) in sc_term_backtab() argument
288 if ((i = scp->xpos & ~7) == scp->xpos) in sc_term_backtab()
294 sc_move_cursor(scp, i, scp->ypos); in sc_term_backtab()
298 sc_term_respond(scr_stat *scp, u_char *s) in sc_term_respond() argument
300 sc_paste(scp, s, strlen(s)); /* XXX: not correct, don't use rmap */ in sc_term_respond()
304 sc_term_gen_print(scr_stat *scp, u_char **buf, int *len, int attr) in sc_term_gen_print() argument
317 p = sc_vtb_pointer(&scp->vtb, scp->cursor_pos); in sc_term_gen_print()
318 map = scp->sc->scr_map; in sc_term_gen_print()
320 cnt = imin(l, scp->xsize - scp->xpos); in sc_term_gen_print()
323 p = sc_vtb_putchar(&scp->vtb, p, map[*ptr], attr); in sc_term_gen_print()
329 mark_for_update(scp, scp->cursor_pos); in sc_term_gen_print()
330 scp->cursor_pos += cnt - i; in sc_term_gen_print()
331 mark_for_update(scp, scp->cursor_pos - 1); in sc_term_gen_print()
332 scp->xpos += cnt - i; in sc_term_gen_print()
334 if (scp->xpos >= scp->xsize) { in sc_term_gen_print()
335 scp->xpos = 0; in sc_term_gen_print()
336 scp->ypos++; in sc_term_gen_print()
342 sc_bell(scp, scp->bell_pitch, scp->bell_duration); in sc_term_gen_print()
347 if (scp->cursor_pos > 0) { in sc_term_gen_print()
349 mark_for_update(scp, scp->cursor_pos); in sc_term_gen_print()
350 scp->cursor_pos--; in sc_term_gen_print()
351 mark_for_update(scp, scp->cursor_pos); in sc_term_gen_print()
353 scp->cursor_pos--; in sc_term_gen_print()
355 if (scp->xpos > 0) { in sc_term_gen_print()
356 scp->xpos--; in sc_term_gen_print()
358 scp->xpos += scp->xsize - 1; in sc_term_gen_print()
359 scp->ypos--; in sc_term_gen_print()
365 sc_term_tab(scp, 1); in sc_term_gen_print()
368 mark_for_update(scp, scp->cursor_pos); in sc_term_gen_print()
369 scp->cursor_pos += (8 - scp->xpos % 8u); in sc_term_gen_print()
370 mark_for_update(scp, scp->cursor_pos); in sc_term_gen_print()
371 scp->xpos += (8 - scp->xpos % 8u); in sc_term_gen_print()
372 if (scp->xpos >= scp->xsize) { in sc_term_gen_print()
373 scp->xpos = 0; in sc_term_gen_print()
374 scp->ypos++; in sc_term_gen_print()
381 mark_for_update(scp, scp->cursor_pos); in sc_term_gen_print()
382 scp->cursor_pos += scp->xsize; in sc_term_gen_print()
383 mark_for_update(scp, scp->cursor_pos); in sc_term_gen_print()
385 scp->cursor_pos += scp->xsize; in sc_term_gen_print()
388 scp->ypos++; in sc_term_gen_print()
392 sc_clear_screen(scp); in sc_term_gen_print()
397 mark_for_update(scp, scp->cursor_pos); in sc_term_gen_print()
398 scp->cursor_pos -= scp->xpos; in sc_term_gen_print()
399 mark_for_update(scp, scp->cursor_pos); in sc_term_gen_print()
401 scp->cursor_pos -= scp->xpos; in sc_term_gen_print()
403 scp->xpos = 0; in sc_term_gen_print()
414 sc_term_gen_scroll(scr_stat *scp, int ch, int attr) in sc_term_gen_scroll() argument
417 if (scp->cursor_pos >= scp->ysize*scp->xsize) { in sc_term_gen_scroll()
418 sc_remove_cutmarking(scp); /* XXX */ in sc_term_gen_scroll()
420 if (scp->history != NULL) in sc_term_gen_scroll()
421 sc_hist_save_one_line(scp, 0); /* XXX */ in sc_term_gen_scroll()
423 sc_vtb_delete(&scp->vtb, 0, scp->xsize, ch, attr); in sc_term_gen_scroll()
424 scp->cursor_pos -= scp->xsize; in sc_term_gen_scroll()
425 scp->ypos--; in sc_term_gen_scroll()
426 mark_all(scp); in sc_term_gen_scroll()