Lines Matching defs:sp

55 	SCR *sp;
59 sp = *spp;
60 gp = sp->gp;
61 exp = EXP(sp);
64 if (ex_init(sp))
69 gp->scr_msg(sp, mp->mtype, mp->buf, mp->len);
91 if (F_ISSET(sp, SC_STATUS)) {
92 if (!F_ISSET(sp, SC_EX_SILENT))
93 msgq_status(sp, sp->lno, 0);
94 F_CLR(sp, SC_STATUS);
96 (void)ex_fflush(sp);
99 if (O_ISSET(sp, O_BEAUTIFY))
101 if (O_ISSET(sp, O_PROMPT))
105 CLR_INTERRUPT(sp);
106 if (ex_txt(sp, sp->tiq, ':', flags))
108 if (INTERRUPTED(sp)) {
109 (void)ex_puts(sp, "\n");
110 (void)ex_fflush(sp);
121 tp = TAILQ_FIRST(sp->tiq);
131 if (ex_cmd(sp) && F_ISSET(gp, G_SCRIPTED))
134 if (INTERRUPTED(sp)) {
135 CLR_INTERRUPT(sp);
136 msgq(sp, M_ERR, "170|Interrupted");
143 if (F_ISSET(gp, G_SRESTART) || F_ISSET(sp, SC_SSWITCH | SC_VI)) {
144 *spp = sp;
149 F_CLR(sp, SC_FSWITCH);
155 * the contents of sp until the end.
157 if (F_ISSET(sp, SC_EXIT | SC_EXIT_FORCE)) {
158 if (file_end(sp, NULL, F_ISSET(sp, SC_EXIT_FORCE)))
160 *spp = screen_next(sp);
161 return (screen_end(sp));
193 ex_cmd(SCR *sp)
212 gp = sp->gp;
213 exp = EXP(sp);
233 if (db_last(sp, &sp->lno))
235 sp->cno = 0;
250 if (argv_init(sp, ecp))
321 (!notempty || F_ISSET(sp, SC_VI) || F_ISSET(ecp, E_BLIGNORE))) {
322 if (ex_load(sp))
345 if (ex_range(sp, ecp, &tmp))
394 msgq(sp, M_ERR, "080|Unknown command name");
481 ex_unknown(sp, p, namelen);
491 skip_srch: if (ecp->cmd == &cmds[C_VISUAL_EX] && F_ISSET(sp, SC_VI))
512 if (F_ISSET(ecp->cmd, E_SECURE) && O_ISSET(sp, O_SECURE)) {
513 ex_wemsg(sp, ecp->cmd->name, EXM_SECURE);
528 if (argv_exp0(sp, ecp, p, ecp->cp - p))
553 if (ecp->addrcnt == 0 && !F_ISSET(sp, SC_EX_GLOBAL)) {
555 ecp->addr1.lno = sp->lno + 1;
556 ecp->addr1.cno = sp->cno;
569 if (O_ISSET(sp, O_NUMBER)) {
576 if (F_ISSET(sp, SC_EX) && (F_ISSET(ecp->cmd, E_VIONLY) || newscreen)) {
577 msgq_wstr(sp, M_ERR, ecp->cmd->name,
665 if (IS_ESCAPE(sp, ecp, ch) &&
779 if (IS_ESCAPE(sp, ecp, ch) && ecp->clen > 1) {
821 if (IS_ESCAPE(sp, ecp, *p) && len > 1) {
852 if (db_last(sp, &lno))
858 ecp->addr1.lno = sp->lno;
860 ecp->addr1.lno = sp->lno;
861 ecp->addr1.cno = sp->cno;
878 if (sp->ep == NULL)
880 else if (db_last(sp, &ecp->addr2.lno))
898 if (sp->lno == 1 &&
900 if (db_last(sp, &lno))
907 ecp->addr2.lno = sp->lno;
909 ecp->addr1.lno = ecp->addr2.lno = sp->lno;
910 ecp->addr1.cno = ecp->addr2.cno = sp->cno;
933 ecp->addr1.lno = sp->lno + 1;
934 ecp->addr2.lno = sp->lno + O_VAL(sp, O_SCROLL);
935 ecp->addr1.cno = ecp->addr2.cno = sp->cno;
936 if (db_last(sp, &lno))
938 if (lno != 0 && lno > sp->lno && ecp->addr2.lno > lno)
1068 ex_badaddr(sp, NULL, A_NOTSET, nret);
1072 msgq(sp, M_ERR, "083|Count may not be zero");
1095 if (argv_exp2(sp, ecp, ecp->cp, ecp->clen))
1107 if (ex_line(sp, ecp, &cur, &isaddr, &tmp))
1114 msgq_wstr(sp, M_ERR, ecp->cp,
1122 if (cur.lno != 0 && !db_exist(sp, cur.lno)) {
1123 ex_badaddr(sp, NULL, A_EOF, NUM_OK);
1130 if (argv_exp1(sp, ecp, ecp->cp,
1137 if (argv_exp0(sp, ecp, ecp->cp, ecp->clen))
1153 if (IS_ESCAPE(sp,
1164 if (argv_exp0(sp, ecp, t, p - t))
1181 if (IS_ESCAPE(sp,
1188 if (argv_exp0(sp, ecp, t, p - t))
1192 if (argv_exp3(sp, ecp, ecp->cp, ecp->clen))
1210 INT2CHAR(sp, ecp->cmd->name, STRLEN(ecp->cmd->name) + 1,
1212 msgq(sp, M_ERR,
1214 nstr, KEY_NAME(sp, *np));
1231 usage: msgq(sp, M_ERR, "086|Usage: %s", ecp->cmd->usage);
1257 (F_ISSET(sp, SC_EX) ||
1259 ex_badaddr(sp, ecp->cmd, A_ZERO, NUM_OK);
1262 } else if (!db_exist(sp, ecp->addr2.lno))
1264 if (db_last(sp, &lno))
1268 ex_badaddr(sp, NULL, A_EOF, NUM_OK);
1275 (F_ISSET(sp, SC_EX) ||
1277 ex_badaddr(sp, ecp->cmd, A_ZERO, NUM_OK);
1280 } else if (!db_exist(sp, ecp->addr1.lno)) {
1281 ex_badaddr(sp, NULL, A_EOF, NUM_OK);
1300 if ((F_ISSET(sp, SC_VI) || F_ISSET(ecp, E_NOPRDEF)) &&
1304 if (sp->lno !=
1306 sp->lno =
1308 sp->cno = 0;
1309 (void)nonblank(sp, sp->lno, &sp->cno);
1313 if (sp->lno !=
1315 sp->lno =
1317 sp->cno = 0;
1318 (void)nonblank(sp, sp->lno, &sp->cno);
1333 cur.lno = sp->lno;
1334 cur.cno = sp->cno;
1336 if (mark_set(sp, ABSMARK1, &cur, 1))
1341 ex_comlog(sp, ecp);
1344 if (F_ISSET(sp, SC_EX))
1345 ++sp->ccnt;
1351 if (sp->ep != NULL && !F_ISSET(sp, SC_EX_GLOBAL))
1352 (void)log_cursor(sp);
1370 if (sp->ep != NULL &&
1371 F_ISSET(sp, SC_EX) && !F_ISSET(gp, G_SCRIPTED) &&
1373 gp->scr_ex_adjust(sp, EX_TERM_SCROLL);
1383 if (ecp->cmd->fn(sp, ecp) || INTERRUPTED(sp)) {
1385 F_SET(sp, SC_EXIT_FORCE);
1393 msgq_wstr(sp, M_ERR, ecp->cmd->name,
1408 if (F_ISSET(sp, SC_EX))
1409 mod_rpt(sp);
1422 if (sp->ep != NULL && ecp->flagoff) {
1424 if (sp->lno <= -ecp->flagoff) {
1425 msgq(sp, M_ERR,
1430 if (!NPFITS(MAX_REC_NUMBER, sp->lno, ecp->flagoff)) {
1431 ex_badaddr(sp, NULL, A_NOTSET, NUM_OVER);
1434 if (!db_exist(sp, sp->lno + ecp->flagoff)) {
1435 msgq(sp, M_ERR,
1440 sp->lno += ecp->flagoff;
1449 if (F_ISSET(sp, SC_EX) && sp->ep != NULL && sp->lno != 0) {
1468 !F_ISSET(sp, SC_EX_GLOBAL) &&
1469 O_ISSET(sp, O_AUTOPRINT) && F_ISSET(ecp, E_AUTOPRINT))
1473 cur.lno = sp->lno;
1475 (void)ex_print(sp, ecp, &cur, &cur, flags);
1500 if (IS_ESCAPE(sp, ecp, arg1[arg1_len - 1])) {
1539 if (F_ISSET(sp, SC_EXIT | SC_EXIT_FORCE | SC_FSWITCH | SC_SSWITCH)) {
1541 SLIST_FOREACH(ecp, sp->gp->ecq, q)
1549 msgq(sp, M_ERR,
1557 msgq(sp, M_ERR,
1566 if (F_ISSET(sp, SC_EXIT | SC_EXIT_FORCE | SC_SSWITCH))
1584 if (IS_ESCAPE(sp, ecp, ch) && ecp->clen > 1) {
1594 discard: msgq(sp, M_BERR,
1596 ex_discard(sp);
1598 if (v_event_flush(sp, CH_MAPPED))
1599 msgq(sp, M_BERR,
1610 F_CLR(sp, SC_EX_GLOBAL);
1622 ex_range(SCR *sp, EXCMD *ecp, int *errp)
1653 gp = sp->gp;
1654 exp = EXP(sp);
1663 if (sp->ep == NULL) {
1664 ex_badaddr(sp, NULL, A_EMPTY, NUM_OK);
1679 ex_badaddr(sp, NULL, A_COMBO, NUM_OK);
1683 if (db_last(sp, &ecp->addr2.lno))
1698 if (sp->ep == NULL) {
1699 ex_badaddr(sp, NULL, A_EMPTY, NUM_OK);
1706 ecp->addr1.lno = sp->lno;
1707 ecp->addr1.cno = sp->cno;
1714 ecp->addr2.lno = sp->lno;
1715 ecp->addr2.cno = sp->cno;
1725 sp->lno = ecp->addr1.lno;
1726 sp->cno = ecp->addr1.cno;
1729 sp->lno = ecp->addr2.lno;
1730 sp->cno = ecp->addr2.cno;
1742 if (ex_line(sp, ecp, &m, &isaddr, errp))
1749 ex_badaddr(sp, NULL, A_COMBO, NUM_OK);
1782 ecp->addr1.lno = sp->lno;
1783 ecp->addr1.cno = sp->cno;
1790 ecp->addr2.lno = sp->lno;
1791 ecp->addr2.cno = sp->cno;
1797 msgq(sp, M_ERR,
1821 ex_line(SCR *sp, EXCMD *ecp, MARK *mp, int *isaddrp, int *errp)
1831 gp = sp->gp;
1832 exp = EXP(sp);
1838 if (sp->ep == NULL && STRCHR(L("$0123456789'\\/?.+-^"), *ecp->cp)) {
1839 ex_badaddr(sp, NULL, A_EMPTY, NUM_OK);
1850 if (db_last(sp, &mp->lno))
1861 ex_badaddr(sp, NULL, A_NOTSET, nret);
1866 ex_badaddr(sp, NULL, A_NOTSET, NUM_OVER);
1880 msgq(sp, M_ERR, "095|No mark name supplied");
1884 if (mark_get(sp, ecp->cp[1], mp, M_ERR)) {
1900 msgq(sp, M_ERR, "096|\\ not followed by / or ?");
1914 search: mp->lno = sp->lno;
1915 mp->cno = sp->cno;
1916 if (sf(sp, mp, mp, ecp->cp, ecp->clen, &endp,
1932 mp->cno = sp->cno;
1935 if (sp->lno == 1) {
1936 if (db_last(sp, &mp->lno))
1941 mp->lno = sp->lno;
1972 mp->lno = sp->lno;
1973 mp->cno = sp->cno;
2026 (nret = NADD_SLONG(sp,
2028 ex_badaddr(sp, NULL, A_NOTSET, nret);
2046 msgq(sp, M_ERR,
2053 ex_badaddr(sp, NULL, A_NOTSET, NUM_OVER);
2068 ex_load(SCR *sp)
2074 F_CLR(sp, SC_EX_GLOBAL);
2080 for (gp = sp->gp;;) {
2126 if (db_exist(sp, ecp->range_lno))
2127 sp->lno = ecp->range_lno;
2129 if (db_last(sp, &sp->lno))
2131 if (sp->lno == 0)
2132 sp->lno = 1;
2151 ecp->range_lno = sp->lno = rp->start++;
2154 F_SET(sp, SC_EX_GLOBAL);
2163 ex_discard(SCR *sp)
2173 for (gp = sp->gp;;) {
2201 ex_unknown(SCR *sp, CHAR_T *cmd, size_t len)
2206 GET_SPACE_GOTOW(sp, bp, blen, len + 1);
2209 msgq_wstr(sp, M_ERR, bp, "098|The %s command is unknown");
2210 FREE_SPACEW(sp, bp, blen);
2285 ex_badaddr(SCR *sp, const EXCMDLIST *cp, enum badaddr ba, enum nresult nret)
2293 msgq(sp, M_SYSERR, NULL);
2296 msgq(sp, M_ERR, "099|Address value overflow");
2299 msgq(sp, M_ERR, "100|Address value underflow");
2307 if (sp->ep == NULL) {
2308 ex_wemsg(sp, cp ? cp->name : NULL, EXM_NOFILEYET);
2314 msgq(sp, M_ERR, "101|Illegal address combination");
2317 if (db_last(sp, &lno))
2320 msgq(sp, M_ERR,
2327 msgq(sp, M_ERR, "103|Illegal address: the file is empty");
2333 msgq_wstr(sp, M_ERR, cp->name,
2346 ex_comlog(sp, ecp)
2347 SCR *sp;
2350 TRACE(sp, "ecmd: "WS, ecp->cmd->name);
2352 TRACE(sp, " a1 %d", ecp->addr1.lno);
2354 TRACE(sp, " a2: %d", ecp->addr2.lno);
2357 TRACE(sp, " line %d", ecp->lineno);
2359 TRACE(sp, " flags 0x%x", ecp->flags);
2361 TRACE(sp, " buffer "WC, ecp->buffer);
2365 TRACE(sp, " arg %d: {"WS"}", cnt, ecp->argv[cnt]->bp);
2367 TRACE(sp, "\n");