Lines Matching defs:sp

45 vs_change(SCR *sp, recno_t lno, lnop_t op)
51 vip = VIP(sp);
66 !db_exist(sp, 2)) {
92 for (p = HMAP, cnt = sp->t_rows; cnt--; ++p)
94 if (sp->lno >= lno)
95 --sp->lno;
99 for (p = HMAP, cnt = sp->t_rows; cnt--; ++p)
101 if (sp->lno >= lno)
102 ++sp->lno;
118 if (sp->lno == lno)
126 if (!F_ISSET(sp, SC_TINPUT_INFO) &&
127 (F_ISSET(sp, SC_SCR_EXWROTE) || VIP(sp)->totalcount > 1)) {
133 (void)sp->gp->scr_cursor(sp, &oldy, &oldx);
137 if (vs_sm_delete(sp, lno))
139 if (sp->lno > lno)
140 --sp->lno;
144 if (vs_sm_insert(sp, lno))
146 if (sp->lno > lno)
147 ++sp->lno;
151 if (vs_sm_reset(sp, lno))
158 (void)sp->gp->scr_move(sp, oldy, oldx);
177 vs_sm_fill(SCR *sp, recno_t lno, pos_t pos)
183 for (p = HMAP, cnt = sp->t_rows; cnt--; ++p)
194 F_SET(sp, SC_SCR_REDRAW);
203 if (vs_sm_nlines(sp,
204 &tmp, lno, HALFTEXT(sp)) <= HALFTEXT(sp)) {
210 if (db_last(sp, &tmp.lno))
213 tmp.soff = vs_screens(sp, tmp.lno, NULL);
214 if (vs_sm_nlines(sp,
215 &tmp, lno, HALFTEXT(sp)) <= HALFTEXT(sp)) {
234 cnt = vs_screens(sp, HMAP->lno, NULL);
239 for (p = HMAP, cnt = sp->t_rows; --cnt; ++p)
240 if (vs_sm_next(sp, p, p + 1))
245 middle: p = HMAP + sp->t_rows / 2;
250 if (vs_sm_prev(sp, p, p - 1)) {
256 p = HMAP + sp->t_rows / 2;
258 if (vs_sm_next(sp, p, p + 1))
265 TMAP->soff = vs_screens(sp, lno, NULL);
269 if (vs_sm_prev(sp, p, p - 1)) {
287 if (vs_sm_next(sp, p, p + 1))
300 if (cnt >= sp->t_rows) { \
301 F_SET(sp, SC_SCR_REFORMAT); \
311 vs_sm_delete(SCR *sp, recno_t lno)
321 if (O_ISSET(sp, O_LEFTRIGHT))
330 (void)sp->gp->scr_move(sp, p - HMAP, 0);
331 if (vs_deleteln(sp, cnt_orig))
343 if (p < TMAP && vs_sm_next(sp, p, p + 1))
346 if (vs_line(sp, ++p, NULL, NULL))
359 vs_sm_insert(SCR *sp, recno_t lno)
373 cnt_orig = vs_screens(sp, lno, NULL);
385 (void)sp->gp->scr_move(sp, p - HMAP, 0);
386 if (vs_insertln(sp, cnt_orig))
402 if (vs_line(sp, t, NULL, NULL))
413 vs_sm_reset(SCR *sp, recno_t lno)
424 if (O_ISSET(sp, O_LEFTRIGHT)) {
430 cnt_new = vs_screens(sp, lno, NULL);
438 if (vs_line(sp, p, NULL, NULL))
458 (void)sp->gp->scr_move(sp, p - HMAP, 0);
459 if (vs_insertln(sp, diff))
472 if (vs_line(sp, t, NULL, NULL))
480 (void)sp->gp->scr_move(sp, p - HMAP, 0);
481 if (vs_deleteln(sp, diff))
492 if (vs_line(sp, t, NULL, NULL))
498 if (t < TMAP && vs_sm_next(sp, t, t + 1))
501 if (vs_line(sp, ++t, NULL, NULL))
518 vs_sm_scroll(SCR *sp, MARK *rp, recno_t count, scroll_t scmd)
527 F_SET(VIP(sp), VIP_CUR_INVALID);
530 if (vs_sm_cursor(sp, &smp))
538 if (vs_sm_down(sp, rp, count, scmd, smp))
545 if (vs_sm_up(sp, rp, count, scmd, smp))
564 rp->cno == 0 && nonblank(sp, rp->lno, &rp->cno))
575 vs_sm_up(SCR *sp, MARK *rp, recno_t count, scroll_t scmd, SMAP *smp)
591 if (vs_sm_next(sp, TMAP, &s1))
593 if (s1.lno > TMAP->lno && !db_exist(sp, s1.lno)) {
595 v_eof(sp, NULL);
598 if (vs_sm_next(sp, smp, &s1))
600 if (s1.lno > smp->lno && !db_exist(sp, s1.lno)) {
601 v_eof(sp, NULL);
618 if (IS_SMALL(sp)) {
619 if (count >= sp->t_maxrows || scmd == CNTRL_F) {
621 if (vs_sm_erase(sp))
624 if (vs_sm_next(sp, &s1, &s2))
626 if (s2.lno != s1.lno && !db_exist(sp, s2.lno))
630 if (vs_sm_fill(sp, OOBLNO, P_BOTTOM))
632 return (vs_sm_position(sp, rp, 0, P_TOP));
634 cursor_set = scmd == CNTRL_E || vs_sm_cursor(sp, &ssmp);
636 sp->t_rows != sp->t_maxrows; --count, ++sp->t_rows) {
637 if (vs_sm_next(sp, TMAP, &s1))
639 if (TMAP->lno != s1.lno && !db_exist(sp, s1.lno))
643 if (vs_line(sp, TMAP, NULL, NULL))
659 if (vs_sm_next(sp, TMAP, &s1))
663 if (TMAP->lno != s1.lno && !db_exist(sp, s1.lno))
667 if (vs_sm_1up(sp))
703 rp->cno = vs_colpos(sp, smp->lno,
704 (O_ISSET(sp, O_LEFTRIGHT) ?
705 smp->coff : (smp->soff - 1) * sp->cols) +
706 sp->rcm % sp->cols);
727 if (smp == TMAP || !db_exist(sp, smp[1].lno))
737 if (!SMAP_CACHE(smp) && vs_line(sp, smp, NULL, NULL))
751 vs_sm_1up(SCR *sp)
757 (void)sp->gp->scr_move(sp, 0, 0);
758 if (vs_deleteln(sp, 1))
762 if (IS_ONELINE(sp)) {
763 if (vs_sm_next(sp, TMAP, TMAP))
766 memmove(HMAP, HMAP + 1, (sp->rows - 1) * sizeof(SMAP));
767 if (vs_sm_next(sp, TMAP - 1, TMAP))
771 return (vs_line(sp, TMAP, NULL, NULL));
780 vs_deleteln(SCR *sp, int cnt)
785 gp = sp->gp;
788 if (IS_VSPLIT(sp)) {
789 F_SET(sp, SC_SCR_REDRAW);
793 if (IS_ONELINE(sp))
794 (void)gp->scr_clrtoeol(sp);
796 (void)gp->scr_cursor(sp, &oldy, &oldx);
798 (void)gp->scr_deleteln(sp);
799 (void)gp->scr_move(sp, LASTLINE(sp), 0);
800 (void)gp->scr_insertln(sp);
801 (void)gp->scr_move(sp, oldy, oldx);
812 vs_sm_down(SCR *sp, MARK *rp, recno_t count, scroll_t scmd, SMAP *smp)
819 (O_ISSET(sp, O_LEFTRIGHT) || HMAP->soff == 1) &&
821 v_sof(sp, NULL);
837 if (IS_SMALL(sp)) {
838 if (count >= sp->t_maxrows || scmd == CNTRL_B) {
840 if (vs_sm_erase(sp))
843 if (vs_sm_prev(sp, &s1, &s2))
846 (O_ISSET(sp, O_LEFTRIGHT) || s2.soff == 1))
850 if (vs_sm_fill(sp, OOBLNO, P_TOP))
852 return (vs_sm_position(sp, rp, 0, P_BOTTOM));
854 cursor_set = scmd == CNTRL_Y || vs_sm_cursor(sp, &ssmp);
856 sp->t_rows != sp->t_maxrows; --count, ++sp->t_rows) {
858 (O_ISSET(sp, O_LEFTRIGHT) || HMAP->soff == 1))
861 if (vs_sm_1down(sp))
875 (O_ISSET(sp, O_LEFTRIGHT) || HMAP->soff == 1))
879 if (vs_sm_1down(sp))
914 if (db_exist(sp, smp->lno))
938 rp->cno = vs_colpos(sp, smp->lno,
939 (O_ISSET(sp, O_LEFTRIGHT) ?
940 smp->coff : (smp->soff - 1) * sp->cols) +
941 sp->rcm % sp->cols);
951 if (!SMAP_CACHE(smp) && vs_line(sp, smp, NULL, NULL))
963 vs_sm_erase(SCR *sp)
967 gp = sp->gp;
968 (void)gp->scr_move(sp, LASTLINE(sp), 0);
969 (void)gp->scr_clrtoeol(sp);
970 for (; sp->t_rows > sp->t_minrows; --sp->t_rows, --TMAP) {
971 (void)gp->scr_move(sp, TMAP - HMAP, 0);
972 (void)gp->scr_clrtoeol(sp);
984 vs_sm_1down(SCR *sp)
990 (void)sp->gp->scr_move(sp, 0, 0);
991 if (vs_insertln(sp, 1))
995 if (IS_ONELINE(sp)) {
996 if (vs_sm_prev(sp, HMAP, HMAP))
999 memmove(HMAP + 1, HMAP, (sp->rows - 1) * sizeof(SMAP));
1000 if (vs_sm_prev(sp, HMAP + 1, HMAP))
1004 return (vs_line(sp, HMAP, NULL, NULL));
1013 vs_insertln(SCR *sp, int cnt)
1018 gp = sp->gp;
1021 if (IS_VSPLIT(sp)) {
1022 F_SET(sp, SC_SCR_REDRAW);
1026 if (IS_ONELINE(sp)) {
1027 (void)gp->scr_move(sp, LASTLINE(sp), 0);
1028 (void)gp->scr_clrtoeol(sp);
1030 (void)gp->scr_cursor(sp, &oldy, &oldx);
1032 (void)gp->scr_move(sp, LASTLINE(sp) - 1, 0);
1033 (void)gp->scr_deleteln(sp);
1034 (void)gp->scr_move(sp, oldy, oldx);
1035 (void)gp->scr_insertln(sp);
1048 vs_sm_next(SCR *sp, SMAP *p, SMAP *t)
1053 if (O_ISSET(sp, O_LEFTRIGHT)) {
1057 lcnt = vs_screens(sp, p->lno, NULL);
1076 vs_sm_prev(SCR *sp, SMAP *p, SMAP *t)
1079 if (O_ISSET(sp, O_LEFTRIGHT)) {
1088 t->soff = vs_screens(sp, t->lno, NULL);
1101 vs_sm_cursor(SCR *sp, SMAP **smpp)
1106 if (sp->lno < HMAP->lno || sp->lno > TMAP->lno)
1110 for (p = HMAP; p->lno != sp->lno; ++p);
1119 if (!SMAP_CACHE(p) && vs_line(sp, p, NULL, NULL))
1121 if (p->c_eboff >= sp->cno) {
1140 vs_sm_position(SCR *sp, MARK *rp, u_long cnt, pos_t pos)
1156 if (cnt && !db_exist(sp, smp->lno)) {
1157 sof: msgq(sp, M_BERR, "220|Movement past the end-of-screen");
1168 if (!db_exist(sp, TMAP->lno)) {
1169 if (db_last(sp, &last))
1187 if (!db_exist(sp, smp->lno)) {
1188 if (db_last(sp, &last))
1192 eof: msgq(sp, M_BERR,
1204 if (!SMAP_CACHE(smp) && vs_line(sp, smp, NULL, NULL))
1220 vs_sm_nlines(SCR *sp, SMAP *from_sp, recno_t to_lno, size_t max)
1224 if (O_ISSET(sp, O_LEFTRIGHT))
1234 lcnt += vs_screens(sp, lno, NULL);
1237 lcnt = (vs_screens(sp, lno, NULL) - from_sp->soff) + 1;
1239 lcnt += vs_screens(sp, lno, NULL);