Lines Matching defs:sp

43 v_again(SCR *sp, VICMD *vp)
47 ex_cinit(sp, &cmd, C_SUBAGAIN, 2, vp->m_start.lno, vp->m_start.lno, 1);
48 argv_exp0(sp, &cmd, L(""), 1);
49 return (v_exec_ex(sp, vp, &cmd));
59 v_exmode(SCR *sp, VICMD *vp)
63 gp = sp->gp;
66 if (gp->scr_screen(sp, SC_EX)) {
67 msgq(sp, M_ERR,
71 (void)gp->scr_attr(sp, SA_ALTERNATE, 0);
74 sp->frp->lno = sp->lno;
75 sp->frp->cno = sp->cno;
76 F_SET(sp->frp, FR_CURSORSET);
79 F_CLR(sp, SC_VI | SC_SCR_VI);
80 F_SET(sp, SC_EX);
83 (void)ex_puts(sp, "\n");
95 v_join(SCR *sp, VICMD *vp)
113 ex_cinit(sp, &cmd, C_JOIN, 2, vp->m_start.lno, lno, 0);
114 return (v_exec_ex(sp, vp, &cmd));
124 v_shiftl(SCR *sp, VICMD *vp)
128 ex_cinit(sp, &cmd, C_SHIFTL, 2, vp->m_start.lno, vp->m_stop.lno, 0);
129 argv_exp0(sp, &cmd, L("<"), 2);
130 return (v_exec_ex(sp, vp, &cmd));
140 v_shiftr(SCR *sp, VICMD *vp)
144 ex_cinit(sp, &cmd, C_SHIFTR, 2, vp->m_start.lno, vp->m_stop.lno, 0);
145 argv_exp0(sp, &cmd, L(">"), 2);
146 return (v_exec_ex(sp, vp, &cmd));
156 v_suspend(SCR *sp, VICMD *vp)
160 ex_cinit(sp, &cmd, C_STOP, 0, OOBLNO, OOBLNO, 0);
161 argv_exp0(sp, &cmd, L("suspend"), SIZE(L("suspend")));
162 return (v_exec_ex(sp, vp, &cmd));
172 v_switch(SCR *sp, VICMD *vp)
183 if ((name = sp->alt_name) == NULL) {
184 msgq(sp, M_ERR, "180|No previous file to edit");
189 if (file_m1(sp, 0, FS_ALL))
192 ex_cinit(sp, &cmd, C_EDIT, 0, OOBLNO, OOBLNO, 0);
193 CHAR2INT(sp, name, strlen(name) + 1, wp, wlen);
194 argv_exp0(sp, &cmd, wp, wlen);
195 return (v_exec_ex(sp, vp, &cmd));
205 v_tagpush(SCR *sp, VICMD *vp)
209 ex_cinit(sp, &cmd, C_TAG, 0, OOBLNO, 0, 0);
210 argv_exp0(sp, &cmd, VIP(sp)->keyw, STRLEN(VIP(sp)->keyw) + 1);
211 return (v_exec_ex(sp, vp, &cmd));
221 v_tagpop(SCR *sp, VICMD *vp)
225 ex_cinit(sp, &cmd, C_TAGPOP, 0, OOBLNO, 0, 0);
226 return (v_exec_ex(sp, vp, &cmd));
236 v_filter(SCR *sp, VICMD *vp)
262 ex_cinit(sp,
264 EXP(sp)->argsoff = 0; /* XXX */
266 if (argv_exp1(sp, &cmd, L("!"), 1, 1))
268 cmd.argc = EXP(sp)->argsoff; /* XXX */
269 cmd.argv = EXP(sp)->args; /* XXX */
270 return (v_exec_ex(sp, vp, &cmd));
274 if (v_tcmd(sp, vp,
285 tp = TAILQ_FIRST(sp->tiq);
287 vp->m_final.lno = sp->lno;
288 vp->m_final.cno = sp->cno;
293 vs_home(sp);
295 ex_cinit(sp, &cmd, C_BANG, 2, vp->m_start.lno, vp->m_stop.lno, 0);
296 EXP(sp)->argsoff = 0; /* XXX */
298 if (argv_exp1(sp, &cmd, tp->lb + 1, tp->len - 1, 1))
300 cmd.argc = EXP(sp)->argsoff; /* XXX */
301 cmd.argv = EXP(sp)->args; /* XXX */
302 return (v_exec_ex(sp, vp, &cmd));
310 v_exec_ex(SCR *sp, VICMD *vp, EXCMD *exp)
314 rval = exp->cmd->fn(sp, exp);
315 return (v_ex_done(sp, vp) || rval);
325 v_ex(SCR *sp, VICMD *vp)
331 gp = sp->gp;
350 if (v_tcmd(sp, vp, ':',
353 tp = TAILQ_FIRST(sp->tiq);
361 if (tp->len > 1 && v_ecl_log(sp, tp))
376 if (O_STR(sp, O_CEDIT) != NULL && v_ecl_log(sp, tp))
380 if (ex_run_str(sp, NULL, tp->lb, tp->len, 0, 1))
385 vs_home(sp);
401 if (F_ISSET(sp, SC_SCR_EXWROTE))
405 (void)ex_cmd(sp);
408 (void)ex_fflush(sp);
411 if (vs_ex_resolve(sp, &ifcontinue))
423 ++sp->ccnt;
432 F_SET(sp, SC_EX_WAIT_NO);
433 if (vs_ex_resolve(sp, &ifcontinue))
438 if (v_ex_done(sp, vp))
443 return (v_ecl(sp));
453 v_ex_done(SCR *sp, VICMD *vp)
471 if (db_eget(sp, sp->lno, NULL, &len, NULL)) {
472 sp->lno = 1;
473 sp->cno = 0;
474 } else if (sp->cno >= len)
475 sp->cno = len ? len - 1 : 0;
477 vp->m_final.lno = sp->lno;
478 vp->m_final.cno = sp->cno;
495 v_ecl(SCR *sp)
501 gp = sp->gp;
502 if (gp->ccl_sp == NULL && v_ecl_init(sp))
506 if (screen_init(gp, sp, &new))
508 if (vs_split(sp, new, 1)) {
518 new->frp->flags = sp->frp->flags;
526 sp->ccl_parent = sp;
537 sp->nextdisp = new;
538 F_SET(sp, SC_SSWITCH);
549 v_ecl_exec(SCR *sp)
554 if (db_get(sp, sp->lno, 0, &p, &len) && sp->lno == 1) {
555 v_emsg(sp, NULL, VIM_EMPTY);
559 msgq(sp, M_BERR, "307|No ex command to execute");
564 if (ex_run_str(sp, NULL, p, len, 0, 0))
568 sp->nextdisp = sp->ccl_parent;
569 F_SET(sp, SC_EXIT);
578 v_ecl_log(SCR *sp, TEXT *tp)
587 if (sp->gp->ccl_sp == NULL && v_ecl_init(sp))
590 ccl_sp = sp->gp->ccl_sp;
596 if (sp->ep == ccl_sp->ep)
611 /* Is this still necessary now that we no longer hijack sp ? */
623 v_ecl_init(SCR *sp)
628 gp = sp->gp;
631 if ((frp = file_add(sp, NULL)) == NULL)
638 if (screen_init(gp, sp, &gp->ccl_sp))