• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/nvi/ex/

Lines Matching refs:ecp

193 	EXCMD *ecp;
216 loop: ecp = SLIST_FIRST(gp->ecq);
219 if (ecp->if_name != NULL) {
220 gp->if_lno = ecp->if_lno;
221 gp->if_name = ecp->if_name;
228 if (F_ISSET(ecp, E_MOVETOEND)) {
232 F_CLR(ecp, E_MOVETOEND);
236 if (F_ISSET(ecp, E_NEWLINE)) {
238 ++ecp->if_lno;
239 F_CLR(ecp, E_NEWLINE);
243 CLEAR_EX_CMD(ecp);
246 if (argv_init(sp, ecp))
251 ecp->save_cmdlen = 0;
254 for (notempty = 0; ecp->clen > 0; ++ecp->cp, --ecp->clen)
255 if ((ch = *ecp->cp) == '\n') {
257 ++ecp->if_lno;
270 if (ecp->clen != 0 && ch == ':') {
272 while (--ecp->clen > 0 && (ch = *++ecp->cp) == ':');
284 if (ecp->clen != 0 && ch == '"') {
285 while (--ecp->clen > 0 && *++ecp->cp != '\n');
286 if (*ecp->cp == '\n') {
287 F_SET(ecp, E_NEWLINE);
288 ++ecp->cp;
289 --ecp->clen;
295 for (; ecp->clen > 0; ++ecp->cp, --ecp->clen) {
296 ch = *ecp->cp;
316 if (ecp->clen == 0 &&
317 (!notempty || F_ISSET(sp, SC_VI) || F_ISSET(ecp, E_BLIGNORE))) {
320 ecp = SLIST_FIRST(gp->ecq);
321 if (ecp->clen == 0)
336 if (F_ISSET(ecp, E_NRSEP) &&
337 ecp->clen != 0 && (ecp->clen != 1 || ecp->cp[0] != '\004'))
338 F_CLR(ecp, E_NRSEP);
341 if (ex_range(sp, ecp, &tmp))
350 for (; ecp->clen > 0; ++ecp->cp, --ecp->clen) {
351 ch = *ecp->cp;
378 if (ecp->clen != 0 && ecp->cp[0] != '|' && ecp->cp[0] != '\n') {
379 if (STRCHR(SINGLE_CHAR_COMMANDS, *ecp->cp)) {
380 p = ecp->cp;
381 ++ecp->cp;
382 --ecp->clen;
385 for (p = ecp->cp;
386 ecp->clen > 0; --ecp->clen, ++ecp->cp)
387 if (!isazAZ(*ecp->cp))
389 if ((namelen = ecp->cp - p) == 0) {
417 len = (ecp->cp - p) - (s - p);
418 ecp->cp -= len;
419 ecp->clen += len;
420 ecp->rcmd = cmds[C_DELETE];
421 ecp->rcmd.syntax = "1bca1";
422 ecp->cmd = &ecp->rcmd;
450 if ((ecp->cmd = ex_comm_search(p, namelen)) == NULL)
454 ecp->cp -= namelen - 1;
455 ecp->clen += namelen - 1;
456 ecp->cmd = &cmds[C_K];
466 ecp->cp -= namelen - 1;
467 ecp->clen += namelen - 1;
468 ecp->rcmd = cmds[C_SUBSTITUTE];
469 ecp->rcmd.fn = ex_subagain;
470 ecp->cmd = &ecp->rcmd;
487 skip_srch: if (ecp->cmd == &cmds[C_VISUAL_EX] && F_ISSET(sp, SC_VI))
488 ecp->cmd = &cmds[C_VISUAL_VI];
498 if (newscreen && !F_ISSET(ecp->cmd, E_NEWSCREEN) &&
499 (ecp->cmd == &cmds[C_PRINT] ||
500 ecp->cmd == &cmds[C_PRESERVE]))
504 if (newscreen && !F_ISSET(ecp->cmd, E_NEWSCREEN))
508 if (F_ISSET(ecp->cmd, E_SECURE) && O_ISSET(sp, O_SECURE)) {
509 ex_wemsg(sp, ecp->cmd->name, EXM_SECURE);
518 if ((ecp->cmd == &cmds[C_SHIFTL] && *p == '<') ||
519 (ecp->cmd == &cmds[C_SHIFTR] && *p == '>')) {
521 ecp->clen > 0; --ecp->clen, ++ecp->cp)
522 if (*ecp->cp != ch)
524 if (argv_exp0(sp, ecp, p, ecp->cp - p))
529 if (ecp->cmd == &cmds[C_HASH])
531 else if (ecp->cmd == &cmds[C_LIST])
533 else if (ecp->cmd == &cmds[C_PRINT])
535 F_CLR(ecp, E_USELASTCMD);
538 ecp->cmd = &cmds[C_PRINT];
541 F_SET(ecp, exp->fdef);
549 if (ecp->addrcnt == 0 && !F_ISSET(sp, SC_EX_GLOBAL)) {
550 ecp->addrcnt = 1;
551 ecp->addr1.lno = sp->lno + 1;
552 ecp->addr1.cno = sp->cno;
555 F_SET(ecp, E_USELASTCMD);
566 F_SET(ecp, E_OPTNUM);
567 FL_SET(ecp->iflags, E_C_HASH);
569 F_CLR(ecp, E_OPTNUM);
572 if (F_ISSET(sp, SC_EX) && (F_ISSET(ecp->cmd, E_VIONLY) || newscreen)) {
573 msgq_wstr(sp, M_ERR, ecp->cmd->name,
579 F_SET(ecp, ecp->cmd->flags);
581 F_CLR(ecp, E_NEWSCREEN);
585 * are the end of the string (ecp->clen), or unescaped (by <literal
626 ecp->save_cmd = ecp->cp;
627 if (ecp->cmd == &cmds[C_EDIT] || ecp->cmd == &cmds[C_EX] ||
628 ecp->cmd == &cmds[C_NEXT] || ecp->cmd == &cmds[C_VISUAL_VI] ||
629 ecp->cmd == &cmds[C_VSPLIT]) {
635 if (ecp->clen > 0 && *ecp->cp == '!') {
636 ++ecp->cp;
637 --ecp->clen;
638 FL_SET(ecp->iflags, E_C_FORCE);
641 ecp->save_cmd = ecp->cp;
643 for (; ecp->clen > 0; --ecp->clen, ++ecp->cp)
644 if (!cmdskip(*ecp->cp))
655 if (ecp->clen > 0 && *ecp->cp == '+') {
656 ++ecp->cp;
657 --ecp->clen;
658 for (arg1 = p = ecp->cp;
659 ecp->clen > 0; --ecp->clen, ++ecp->cp) {
660 ch = *ecp->cp;
661 if (IS_ESCAPE(sp, ecp, ch) &&
662 ecp->clen > 1) {
664 --ecp->clen;
665 ch = *++ecp->cp;
670 arg1_len = ecp->cp - arg1;
673 ecp->save_cmd = ecp->cp;
675 } else if (ecp->cmd == &cmds[C_BANG] ||
676 ecp->cmd == &cmds[C_GLOBAL] || ecp->cmd == &cmds[C_V]) {
686 for (p = ecp->cp; ecp->clen > 0; --ecp->clen, ++ecp->cp) {
687 ch = *ecp->cp;
688 if (ch == '\\' && ecp->clen > 1 && ecp->cp[1] == '\n') {
690 --ecp->clen;
691 ch = *++ecp->cp;
694 ++ecp->if_lno;
699 } else if (ecp->cmd == &cmds[C_READ] || ecp->cmd == &cmds[C_WRITE]) {
708 for (tmp = 0; ecp->clen > 0; --ecp->clen, ++ecp->cp) {
709 ch = *ecp->cp;
715 if (ecp->clen > 0 && ch == '!' &&
716 (ecp->cmd == &cmds[C_READ] || tmp))
717 for (; ecp->clen > 0; --ecp->clen, ++ecp->cp)
718 if (ecp->cp[0] == '\n')
720 } else if (ecp->cmd == &cmds[C_SUBSTITUTE]) {
727 for (; ecp->clen > 0; --ecp->clen, ++ecp->cp)
728 if (!cmdskip(ecp->cp[0]))
731 if (is09azAZ(ecp->cp[0]) || ecp->cp[0] == '|') {
732 ecp->rcmd = cmds[C_SUBSTITUTE];
733 ecp->rcmd.fn = ex_subagain;
734 ecp->cmd = &ecp->rcmd;
735 } else if (ecp->clen > 0) {
744 delim = *ecp->cp;
745 ++ecp->cp;
746 --ecp->clen;
747 for (cnt = 2; ecp->clen > 0 &&
748 cnt != 0; --ecp->clen, ++ecp->cp)
749 if (ecp->cp[0] == '\\' &&
750 ecp->clen > 1) {
751 ++ecp->cp;
752 --ecp->clen;
753 } else if (ecp->cp[0] == delim)
771 vi_address = ecp->clen != 0 && ecp->cp[0] != '\n';
772 for (p = ecp->cp; ecp->clen > 0; --ecp->clen, ++ecp->cp) {
773 ch = ecp->cp[0];
774 if (IS_ESCAPE(sp, ecp, ch) && ecp->clen > 1) {
775 CHAR_T tmp = ecp->cp[1];
779 ++ecp->if_lno;
782 --ecp->clen;
783 ++ecp->cp;
788 F_SET(ecp, E_NEWLINE);
789 --ecp->clen;
799 p = ecp->cp + 1;
800 ecp->cp = ecp->save_cmd;
801 ecp->save_cmd = p;
802 ecp->save_cmdlen = ecp->clen;
803 ecp->clen = ((ecp->save_cmd - ecp->cp) - 1) - discard;
814 if (ecp->cmd == &cmds[C_SET]) {
815 for (p = ecp->cp, len = ecp->clen; len > 0; --len, ++p)
816 if (IS_ESCAPE(sp, ecp, *p) && len > 1) {
841 switch (F_ISSET(ecp, E_ADDR1 | E_ADDR2 | E_ADDR2_ALL | E_ADDR2_NONE)) {
843 switch (ecp->addrcnt) {
845 ecp->addrcnt = 1;
846 F_SET(ecp, E_ADDR_DEF);
847 if (F_ISSET(ecp, E_ADDR_ZERODEF)) {
851 ecp->addr1.lno = 0;
852 F_SET(ecp, E_ADDR_ZERO);
854 ecp->addr1.lno = sp->lno;
856 ecp->addr1.lno = sp->lno;
857 ecp->addr1.cno = sp->cno;
862 ecp->addrcnt = 1;
863 ecp->addr1 = ecp->addr2;
867 if (ecp->addrcnt == 0) /* Default to nothing. */
871 if (ecp->addrcnt == 0) { /* Default entire/empty file. */
872 F_SET(ecp, E_ADDR_DEF);
873 ecp->addrcnt = 2;
875 ecp->addr2.lno = 0;
876 else if (db_last(sp, &ecp->addr2.lno))
878 if (F_ISSET(ecp, E_ADDR_ZERODEF) &&
879 ecp->addr2.lno == 0) {
880 ecp->addr1.lno = 0;
881 F_SET(ecp, E_ADDR_ZERO);
883 ecp->addr1.lno = 1;
884 ecp->addr1.cno = ecp->addr2.cno = 0;
885 F_SET(ecp, E_ADDR2_ALL);
890 two_addr: switch (ecp->addrcnt) {
892 ecp->addrcnt = 2;
893 F_SET(ecp, E_ADDR_DEF);
895 F_ISSET(ecp, E_ADDR_ZERODEF)) {
899 ecp->addr1.lno = ecp->addr2.lno = 0;
900 F_SET(ecp, E_ADDR_ZERO);
902 ecp->addr1.lno =
903 ecp->addr2.lno = sp->lno;
905 ecp->addr1.lno = ecp->addr2.lno = sp->lno;
906 ecp->addr1.cno = ecp->addr2.cno = sp->cno;
909 ecp->addrcnt = 2;
910 ecp->addr2 = ecp->addr1;
917 if (ecp->addrcnt) /* Error. */
927 if (ecp->cmd == &cmds[C_SCROLL]) {
928 ecp->addrcnt = 2;
929 ecp->addr1.lno = sp->lno + 1;
930 ecp->addr2.lno = sp->lno + O_VAL(sp, O_SCROLL);
931 ecp->addr1.cno = ecp->addr2.cno = sp->cno;
934 if (lno != 0 && lno > sp->lno && ecp->addr2.lno > lno)
935 ecp->addr2.lno = lno;
938 ecp->flagoff = 0;
939 for (np = ecp->cmd->syntax; *np != '\0'; ++np) {
946 if (ecp->clen > 0 && *ecp->cp == '!') {
947 ++ecp->cp;
948 --ecp->clen;
949 FL_SET(ecp->iflags, E_C_FORCE);
955 for (; ecp->clen > 0; --ecp->clen, ++ecp->cp)
956 if (!cmdskip(*ecp->cp))
958 if (ecp->clen == 0)
973 for (; ecp->clen; --ecp->clen, ++ecp->cp)
974 switch (*ecp->cp) {
976 ++ecp->flagoff;
980 --ecp->flagoff;
983 F_CLR(ecp, E_OPTNUM);
984 FL_SET(ecp->iflags, E_C_HASH);
988 FL_SET(ecp->iflags, E_C_LIST);
992 FL_SET(ecp->iflags, E_C_PRINT);
1001 for (; ecp->clen; --ecp->clen, ++ecp->cp)
1002 switch (*ecp->cp) {
1004 FL_SET(ecp->iflags, E_C_DASH);
1007 FL_SET(ecp->iflags, E_C_DOT);
1010 FL_SET(ecp->iflags, E_C_PLUS);
1013 FL_SET(ecp->iflags, E_C_CARAT);
1017 FL_SET(ecp->iflags, E_C_EQUAL);
1034 if ((ecp->cp[0] == '+' || ecp->cp[0] == '-' ||
1035 ecp->cp[0] == '^' || ecp->cp[0] == '#') &&
1044 if (!ISDIGIT(ecp->cp[0])) {
1045 ecp->buffer = *ecp->cp;
1046 ++ecp->cp;
1047 --ecp->clen;
1048 FL_SET(ecp->iflags, E_C_BUFFER);
1054 if (!ISDIGIT(*ecp->cp) && (*np != '+' ||
1055 (*ecp->cp != '+' && *ecp->cp != '-')))
1058 if (*ecp->cp == '-')
1059 FL_SET(ecp->iflags, E_C_COUNT_NEG);
1060 else if (*ecp->cp == '+')
1061 FL_SET(ecp->iflags, E_C_COUNT_POS);
1063 nget_slong(&ltmp, ecp->cp, &t, 10)) != NUM_OK) {
1071 ecp->clen -= (t - ecp->cp);
1072 ecp->cp = t;
1084 ecp->addr1 = ecp->addr2;
1085 ecp->addr2.lno = ecp->addr1.lno + ltmp - 1;
1087 ecp->count = ltmp;
1088 FL_SET(ecp->iflags, E_C_COUNT);
1091 if (argv_exp2(sp, ecp, ecp->cp, ecp->clen))
1103 if (ex_line(sp, ecp, &cur, &isaddr, &tmp))
1110 msgq_wstr(sp, M_ERR, ecp->cp,
1122 ecp->lineno = cur.lno;
1125 if (ecp->clen != 0) {
1126 if (argv_exp1(sp, ecp, ecp->cp,
1127 ecp->clen, ecp->cmd == &cmds[C_BANG]))
1133 if (argv_exp0(sp, ecp, ecp->cp, ecp->clen))
1146 for (p = t = ecp->cp;
1147 ecp->clen > 0; --ecp->clen, ++ecp->cp) {
1148 ch = *ecp->cp;
1150 ecp, ch) && ecp->clen > 1) {
1151 --ecp->clen;
1152 *p++ = *++ecp->cp;
1154 ++ecp->cp;
1155 --ecp->clen;
1160 if (argv_exp0(sp, ecp, t, p - t))
1164 for (; ecp->clen > 0;
1165 --ecp->clen, ++ecp->cp) {
1166 ch = *ecp->cp;
1170 if (ecp->clen == 0)
1174 for (p = t = ecp->cp; ecp->clen > 0;
1175 --ecp->clen, ++ecp->cp, ++p) {
1176 ch = *ecp->cp;
1178 ecp, ch) && ecp->clen > 1) {
1179 --ecp->clen;
1180 *p = *++ecp->cp;
1184 if (argv_exp0(sp, ecp, t, p - t))
1188 if (argv_exp3(sp, ecp, ecp->cp, ecp->clen))
1206 INT2CHAR(sp, ecp->cmd->name, STRLEN(ecp->cmd->name) + 1,
1216 for (; ecp->clen > 0; --ecp->clen) {
1217 ch = *ecp->cp++;
1226 if (ecp->clen != 0 || strpbrk(np, "lr")) {
1227 usage: msgq(sp, M_ERR, "086|Usage: %s", ecp->cmd->usage);
1241 switch (ecp->addrcnt) {
1251 if (ecp->addr2.lno == 0) {
1252 if (!F_ISSET(ecp, E_ADDR_ZERO) &&
1254 !F_ISSET(ecp, E_USELASTCMD))) {
1255 ex_badaddr(sp, ecp->cmd, A_ZERO, NUM_OK);
1258 } else if (!db_exist(sp, ecp->addr2.lno)) {
1259 if (FL_ISSET(ecp->iflags, E_C_COUNT)) {
1262 ecp->addr2.lno = lno;
1270 if (ecp->addr1.lno == 0) {
1271 if (!F_ISSET(ecp, E_ADDR_ZERO) &&
1273 !F_ISSET(ecp, E_USELASTCMD))) {
1274 ex_badaddr(sp, ecp->cmd, A_ZERO, NUM_OK);
1277 } else if (!db_exist(sp, ecp->addr1.lno)) {
1297 if ((F_ISSET(sp, SC_VI) || F_ISSET(ecp, E_NOPRDEF)) &&
1298 F_ISSET(ecp, E_USELASTCMD) && vi_address == 0) {
1299 switch (ecp->addrcnt) {
1302 (ecp->addr2.lno ? ecp->addr2.lno : 1)) {
1304 ecp->addr2.lno ? ecp->addr2.lno : 1;
1311 (ecp->addr1.lno ? ecp->addr1.lno : 1)) {
1313 ecp->addr1.lno ? ecp->addr1.lno : 1;
1319 ecp->cp = ecp->save_cmd;
1320 ecp->clen = ecp->save_cmdlen;
1329 if (F_ISSET(ecp, E_ABSMARK)) {
1332 F_CLR(ecp, E_ABSMARK);
1338 ex_comlog(sp, ecp);
1366 if (F_ISSET(ecp, E_NRSEP)) {
1369 (F_ISSET(ecp, E_USELASTCMD) || ecp->cmd == &cmds[C_SCROLL]))
1371 F_CLR(ecp, E_NRSEP);
1380 if (ecp->cmd->fn(sp, ecp) || INTERRUPTED(sp)) {
1390 msgq_wstr(sp, M_ERR, ecp->cmd->name,
1419 if (sp->ep != NULL && ecp->flagoff) {
1420 if (ecp->flagoff < 0) {
1421 if (sp->lno <= -ecp->flagoff) {
1427 if (!NPFITS(MAX_REC_NUMBER, sp->lno, ecp->flagoff)) {
1431 if (!db_exist(sp, sp->lno + ecp->flagoff)) {
1437 sp->lno += ecp->flagoff;
1451 if (FL_ISSET(ecp->iflags, E_CLRFLAG))
1452 FL_CLR(ecp->iflags, E_C_HASH | E_C_LIST | E_C_PRINT);
1455 if (F_ISSET(ecp, E_OPTNUM))
1456 FL_CLR(ecp->iflags, E_C_HASH);
1463 LF_INIT(FL_ISSET(ecp->iflags, E_C_HASH | E_C_LIST | E_C_PRINT));
1466 O_ISSET(sp, O_AUTOPRINT) && F_ISSET(ecp, E_AUTOPRINT))
1472 (void)ex_print(sp, ecp, &cur, &cur, flags);
1497 if (IS_ESCAPE(sp, ecp, arg1[arg1_len - 1])) {
1498 *--ecp->save_cmd = CH_LITERAL;
1499 ++ecp->save_cmdlen;
1502 ecp->save_cmd -= arg1_len;
1503 ecp->save_cmdlen += arg1_len;
1504 MEMMOVE(ecp->save_cmd, arg1, arg1_len);
1514 F_SET(ecp, E_MOVETOEND);
1518 ecp->cp = ecp->save_cmd;
1519 ecp->clen = ecp->save_cmdlen;
1538 SLIST_FOREACH(ecp, sp->gp->ecq, q)
1539 switch (ecp->agv_flags) {
1578 if (ecp->save_cmdlen == 0)
1579 for (; ecp->clen; --ecp->clen) {
1580 ch = *ecp->cp++;
1581 if (IS_ESCAPE(sp, ecp, ch) && ecp->clen > 1) {
1582 --ecp->clen;
1583 ++ecp->cp;
1585 if (ecp->clen > 1)
1586 ecp->save_cmdlen = 1;
1590 if (ecp->save_cmdlen != 0 || SLIST_FIRST(gp->ecq) != &gp->excmd) {
1619 ex_range(SCR *sp, EXCMD *ecp, int *errp)
1635 * :3;/pattern/ecp->cp
1637 * will search for pattern from line 3. In addition, if ecp->cp
1652 for (addr = ADDR_NONE, ecp->addrcnt = 0; ecp->clen > 0;)
1653 switch (*ecp->cp) {
1656 if (F_ISSET(ecp, E_VISEARCH))
1680 if (db_last(sp, &ecp->addr2.lno))
1682 ecp->addr1.lno = ecp->addr2.lno == 0 ? 0 : 1;
1683 ecp->addr1.cno = ecp->addr2.cno = 0;
1684 ecp->addrcnt = 2;
1686 ++ecp->cp;
1687 --ecp->clen;
1691 if (F_ISSET(ecp, E_VISEARCH))
1701 switch (ecp->addrcnt) {
1703 ecp->addr1.lno = sp->lno;
1704 ecp->addr1.cno = sp->cno;
1705 ecp->addrcnt = 1;
1708 ecp->addr1 = ecp->addr2;
1711 ecp->addr2.lno = sp->lno;
1712 ecp->addr2.cno = sp->cno;
1713 ecp->addrcnt = 2;
1716 if (*ecp->cp == ';')
1717 switch (ecp->addrcnt) {
1722 sp->lno = ecp->addr1.lno;
1723 sp->cno = ecp->addr1.cno;
1726 sp->lno = ecp->addr2.lno;
1727 sp->cno = ecp->addr2.cno;
1734 ++ecp->cp;
1735 --ecp->clen;
1739 if (ex_line(sp, ecp, &m, &isaddr, errp))
1750 switch (ecp->addrcnt) {
1752 ecp->addr1 = m;
1753 ecp->addrcnt = 1;
1756 ecp->addr2 = m;
1757 ecp->addrcnt = 2;
1760 ecp->addr1 = ecp->addr2;
1761 ecp->addr2 = m;
1773 ret: if (F_ISSET(ecp, E_VISEARCH))
1777 switch (ecp->addrcnt) {
1779 ecp->addr1.lno = sp->lno;
1780 ecp->addr1.cno = sp->cno;
1781 ecp->addrcnt = 1;
1784 ecp->addr1 = ecp->addr2;
1787 ecp->addr2.lno = sp->lno;
1788 ecp->addr2.cno = sp->cno;
1789 ecp->addrcnt = 2;
1793 if (ecp->addrcnt == 2 && ecp->addr2.lno < ecp->addr1.lno) {
1818 ex_line(SCR *sp, EXCMD *ecp, MARK *mp, int *isaddrp, int *errp)
1832 F_CLR(ecp, E_DELTA);
1835 if (sp->ep == NULL && STRCHR(L("$0123456789'\\/?.+-^"), *ecp->cp)) {
1841 switch (*ecp->cp) {
1844 F_SET(ecp, E_ABSMARK);
1849 ++ecp->cp;
1850 --ecp->clen;
1855 F_SET(ecp, E_ABSMARK);
1857 if ((nret = nget_slong(&val, ecp->cp, &endp, 10)) != NUM_OK) {
1869 ecp->clen -= (endp - ecp->cp);
1870 ecp->cp = endp;
1874 F_SET(ecp, E_ABSMARK);
1876 if (ecp->clen == 1) {
1881 if (mark_get(sp, ecp->cp[1], mp, M_ERR)) {
1885 ecp->cp += 2;
1886 ecp->clen -= 2;
1895 if (ecp->clen < 2 ||
1896 (ecp->cp[1] != '/' && ecp->cp[1] != '?')) {
1901 ++ecp->cp;
1902 --ecp->clen;
1903 sf = ecp->cp[0] == '/' ? f_search : b_search;
1913 if (sf(sp, mp, mp, ecp->cp, ecp->clen, &endp,
1915 (F_ISSET(ecp, E_SEARCH_WMSG) ? SEARCH_WMSG : 0))) {
1921 ecp->clen -= (endp - ecp->cp);
1922 ecp->cp = endp;
1925 F_SET(ecp, E_ABSMARK);
1946 if (ecp->clen > 1 && ISDIGIT(ecp->cp[1]))
1947 *ecp->cp = '+';
1949 ++ecp->cp;
1950 --ecp->clen;
1956 for (; ecp->clen > 0 &&
1957 cmdskip(ecp->cp[0]); ++ecp->cp, --ecp->clen);
1964 if (ecp->clen != 0 && (ISDIGIT(ecp->cp[0]) ||
1965 ecp->cp[0] == '+' || ecp->cp[0] == '-' ||
1966 ecp->cp[0] == '^')) {
1998 F_SET(ecp, E_DELTA);
2000 for (; ecp->clen > 0 && cmdskip(ecp->cp[0]);
2001 ++ecp->cp, --ecp->clen);
2002 if (ecp->clen == 0 || (!ISDIGIT(ecp->cp[0]) &&
2003 ecp->cp[0] != '+' && ecp->cp[0] != '-' &&
2004 ecp->cp[0] != '^'))
2006 if (!ISDIGIT(ecp->cp[0]) &&
2007 !ISDIGIT(ecp->cp[1])) {
2008 total += ecp->cp[0] == '+' ? 1 : -1;
2009 --ecp->clen;
2010 ++ecp->cp;
2012 if (ecp->cp[0] == '-' ||
2013 ecp->cp[0] == '^') {
2014 ++ecp->cp;
2015 --ecp->clen;
2022 ecp->cp, &endp, 10)) != NUM_OK ||
2030 ecp->clen -= (endp - ecp->cp);
2031 ecp->cp = endp;
2068 EXCMD *ecp;
2078 ecp = SLIST_FIRST(gp->ecq);
2081 if (F_ISSET(ecp, E_NAMEDISCARD))
2082 free(ecp->if_name);
2088 if (ecp == &gp->excmd) {
2089 ecp->if_name = NULL;
2094 * ecp->clen will be 0 for the first discarded command, but
2100 if (ecp->clen != 0)
2107 if (FL_ISSET(ecp->agv_flags, AGV_ALL)) {
2109 while ((rp = TAILQ_FIRST(ecp->rq)) != NULL)
2111 TAILQ_REMOVE(ecp->rq, rp, q);
2121 if (FL_ISSET(ecp->agv_flags,
2122 AGV_GLOBAL | AGV_V) && ecp->range_lno != OOBLNO) {
2123 if (db_exist(sp, ecp->range_lno))
2124 sp->lno = ecp->range_lno;
2132 free(ecp->o_cp);
2137 free(ecp);
2146 ecp->cp = ecp->o_cp;
2147 MEMCPY(ecp->cp, ecp->cp + ecp->o_clen, ecp->o_clen);
2148 ecp->clen = ecp->o_clen;
2149 ecp->range_lno = sp->lno = rp->start++;
2151 if (FL_ISSET(ecp->agv_flags, AGV_GLOBAL | AGV_V))
2164 EXCMD *ecp;
2172 ecp = SLIST_FIRST(gp->ecq);
2173 if (F_ISSET(ecp, E_NAMEDISCARD))
2174 free(ecp->if_name);
2176 if (ecp == &gp->excmd)
2178 if (FL_ISSET(ecp->agv_flags, AGV_ALL)) {
2179 while ((rp = TAILQ_FIRST(ecp->rq)) != NULL) {
2180 TAILQ_REMOVE(ecp->rq, rp, q);
2183 free(ecp->o_cp);
2186 free(ecp);
2189 ecp->if_name = NULL;
2190 ecp->clen = 0;
2344 ex_comlog(sp, ecp)
2346 EXCMD *ecp;
2348 TRACE(sp, "ecmd: "WS, ecp->cmd->name);
2349 if (ecp->addrcnt > 0) {
2350 TRACE(sp, " a1 %d", ecp->addr1.lno);
2351 if (ecp->addrcnt > 1)
2352 TRACE(sp, " a2: %d", ecp->addr2.lno);
2354 if (ecp->lineno)
2355 TRACE(sp, " line %d", ecp->lineno);
2356 if (ecp->flags)
2357 TRACE(sp, " flags 0x%x", ecp->flags);
2358 if (FL_ISSET(ecp->iflags, E_C_BUFFER))
2359 TRACE(sp, " buffer "WC, ecp->buffer);
2360 if (ecp->argc) {
2362 for (cnt = 0; cnt < ecp->argc; ++cnt)
2363 TRACE(sp, " arg %d: {"WS"}", cnt, ecp->argv[cnt]->bp);