Lines Matching +full:vp +full:- +full:p
1 /*-
37 * The historic vi documentation (USD:15-10) claimed:
49 * v_sectionf -- [count]]]
61 v_sectionf(SCR *sp, VICMD *vp) in v_sectionf() argument
65 CHAR_T *p; in v_sectionf() local
74 * If the starting cursor position is at or before any non-blank in v_sectionf()
80 if (ISMOTION(vp)) { in v_sectionf()
81 if (vp->m_start.cno == 0) in v_sectionf()
82 F_SET(vp, VM_LMODE); in v_sectionf()
84 vp->m_stop = vp->m_start; in v_sectionf()
85 vp->m_stop.cno = 0; in v_sectionf()
86 if (nonblank(sp, vp->m_stop.lno, &vp->m_stop.cno)) in v_sectionf()
88 if (vp->m_start.cno <= vp->m_stop.cno) in v_sectionf()
89 F_SET(vp, VM_LMODE); in v_sectionf()
93 cnt = F_ISSET(vp, VC_C1SET) ? vp->count : 1; in v_sectionf()
94 for (lno = vp->m_start.lno; !db_get(sp, ++lno, 0, &p, &len);) { in v_sectionf()
97 if (p[0] == '{' || (ISMOTION(vp) && p[0] == '}')) { in v_sectionf()
98 if (!--cnt) { in v_sectionf()
99 if (p[0] == '{') in v_sectionf()
107 * Historic documentation (USD:15-11, 4.2) said that formfeed in v_sectionf()
112 if (p[0] == '\014') { in v_sectionf()
113 if (!--cnt) in v_sectionf()
117 if (p[0] != '.' || len < 2) in v_sectionf()
120 if (lp[0] == p[1] && in v_sectionf()
121 ((lp[1] == ' ' && len == 2) || lp[1] == p[2]) && in v_sectionf()
122 !--cnt) { in v_sectionf()
129 adjust1: if (ISMOTION(vp)) in v_sectionf()
132 adjust2: vp->m_stop.lno = lno; in v_sectionf()
133 vp->m_stop.cno = 0; in v_sectionf()
139 if (vp->m_start.lno == lno - 1) { in v_sectionf()
144 ret1: if (db_get(sp, --lno, DBG_FATAL, NULL, &len)) in v_sectionf()
146 vp->m_stop.lno = lno; in v_sectionf()
147 vp->m_stop.cno = len ? len - 1 : 0; in v_sectionf()
150 * Non-motion commands go to the end of the range. Delete and in v_sectionf()
153 ret2: if (ISMOTION(vp)) { in v_sectionf()
154 vp->m_final = vp->m_start; in v_sectionf()
155 if (F_ISSET(vp, VM_LMODE)) in v_sectionf()
156 vp->m_final.cno = 0; in v_sectionf()
158 vp->m_final = vp->m_stop; in v_sectionf()
163 * v_sectionb -- [count][[
169 v_sectionb(SCR *sp, VICMD *vp) in v_sectionb() argument
173 CHAR_T *p; in v_sectionb() local
177 if (vp->m_start.lno <= 1) { in v_sectionb()
186 cnt = F_ISSET(vp, VC_C1SET) ? vp->count : 1; in v_sectionb()
187 for (lno = vp->m_start.lno; !db_get(sp, --lno, 0, &p, &len);) { in v_sectionb()
190 if (p[0] == '{') { in v_sectionb()
191 if (!--cnt) in v_sectionb()
197 * Historic documentation (USD:15-11, 4.2) said that formfeed in v_sectionb()
202 if (p[0] == '\014') { in v_sectionb()
203 if (!--cnt) in v_sectionb()
207 if (p[0] != '.' || len < 2) in v_sectionb()
210 if (lp[0] == p[1] && in v_sectionb()
211 ((lp[1] == ' ' && len == 2) || lp[1] == p[2]) && in v_sectionb()
212 !--cnt) { in v_sectionb()
213 adjust1: vp->m_stop.lno = lno; in v_sectionb()
214 vp->m_stop.cno = 0; in v_sectionb()
223 vp->m_stop.lno = 1; in v_sectionb()
224 vp->m_stop.cno = 0; in v_sectionb()
234 * mode it also went to the first non-<blank>. in v_sectionb()
236 ret1: if (vp->m_start.cno == 0) { in v_sectionb()
237 F_CLR(vp, VM_RCM_MASK); in v_sectionb()
238 F_SET(vp, VM_RCM_SETFNB); in v_sectionb()
240 --vp->m_start.lno; in v_sectionb()
241 F_SET(vp, VM_LMODE); in v_sectionb()
243 --vp->m_start.cno; in v_sectionb()
245 vp->m_final = vp->m_stop; in v_sectionb()