Lines Matching +full:no +full:- +full:ref +full:- +full:current +full:- +full:limit
3 /*-
25 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
66 *el->el_line.lastchar = '\0'; in ed_end_of_file()
78 int count = el->el_state.argument; in ed_insert()
83 if (el->el_line.lastchar + el->el_state.argument >= in ed_insert()
84 el->el_line.limit) { in ed_insert()
91 if (el->el_state.inputmode == MODE_INSERT in ed_insert()
92 || el->el_line.cursor >= el->el_line.lastchar) in ed_insert()
95 *el->el_line.cursor++ = c; in ed_insert()
98 if (el->el_state.inputmode != MODE_REPLACE_1) in ed_insert()
99 c_insert(el, el->el_state.argument); in ed_insert()
101 while (count-- && el->el_line.cursor < el->el_line.lastchar) in ed_insert()
102 *el->el_line.cursor++ = c; in ed_insert()
106 if (el->el_state.inputmode == MODE_REPLACE_1) in ed_insert()
114 * Delete from beginning of current word to cursor
115 * [M-^?] [^W]
123 if (el->el_line.cursor == el->el_line.buffer) in ed_delete_prev_word()
126 cp = c__prev_word(el->el_line.cursor, el->el_line.buffer, in ed_delete_prev_word()
127 el->el_state.argument, ce__isword); in ed_delete_prev_word()
129 for (p = cp, kp = el->el_chared.c_kill.buf; p < el->el_line.cursor; p++) in ed_delete_prev_word()
131 el->el_chared.c_kill.last = kp; in ed_delete_prev_word()
133 c_delbefore(el, (int)(el->el_line.cursor - cp));/* delete before dot */ in ed_delete_prev_word()
134 el->el_line.cursor = cp; in ed_delete_prev_word()
135 if (el->el_line.cursor < el->el_line.buffer) in ed_delete_prev_word()
136 el->el_line.cursor = el->el_line.buffer; /* bounds check */ in ed_delete_prev_word()
150 #define EL el->el_line in ed_delete_next_char()
151 (void) fprintf(el->el_errfile, in ed_delete_next_char()
152 "\nD(b: %p(%ls) c: %p(%ls) last: %p(%ls) limit: %p(%ls)\n", in ed_delete_next_char()
154 EL.lastchar, EL.limit, EL.limit); in ed_delete_next_char()
156 if (el->el_line.cursor == el->el_line.lastchar) { in ed_delete_next_char()
158 if (el->el_map.type == MAP_VI) { in ed_delete_next_char()
159 if (el->el_line.cursor == el->el_line.buffer) { in ed_delete_next_char()
170 el->el_line.cursor--; in ed_delete_next_char()
178 c_delafter(el, el->el_state.argument); /* delete after dot */ in ed_delete_next_char()
179 if (el->el_map.type == MAP_VI && in ed_delete_next_char()
180 el->el_line.cursor >= el->el_line.lastchar && in ed_delete_next_char()
181 el->el_line.cursor > el->el_line.buffer) in ed_delete_next_char()
183 el->el_line.cursor = el->el_line.lastchar - 1; in ed_delete_next_char()
198 cp = el->el_line.cursor; in ed_kill_line()
199 kp = el->el_chared.c_kill.buf; in ed_kill_line()
200 while (cp < el->el_line.lastchar) in ed_kill_line()
202 el->el_chared.c_kill.last = kp; in ed_kill_line()
203 /* zap! -- delete to end */ in ed_kill_line()
204 el->el_line.lastchar = el->el_line.cursor; in ed_kill_line()
218 el->el_line.cursor = el->el_line.lastchar; in ed_move_to_end()
219 if (el->el_map.type == MAP_VI) { in ed_move_to_end()
220 if (el->el_chared.c_vcmd.action != NOP) { in ed_move_to_end()
225 el->el_line.cursor--; in ed_move_to_end()
241 el->el_line.cursor = el->el_line.buffer; in ed_move_to_beg()
243 if (el->el_map.type == MAP_VI) { in ed_move_to_beg()
245 while (iswspace(*el->el_line.cursor)) in ed_move_to_beg()
246 el->el_line.cursor++; in ed_move_to_beg()
247 if (el->el_chared.c_vcmd.action != NOP) { in ed_move_to_beg()
264 if (el->el_line.cursor < el->el_line.lastchar) { in ed_transpose_chars()
265 if (el->el_line.lastchar <= &el->el_line.buffer[1]) in ed_transpose_chars()
268 el->el_line.cursor++; in ed_transpose_chars()
270 if (el->el_line.cursor > &el->el_line.buffer[1]) { in ed_transpose_chars()
272 c = el->el_line.cursor[-2]; in ed_transpose_chars()
273 el->el_line.cursor[-2] = el->el_line.cursor[-1]; in ed_transpose_chars()
274 el->el_line.cursor[-1] = c; in ed_transpose_chars()
289 wchar_t *lim = el->el_line.lastchar; in ed_next_char()
291 if (el->el_line.cursor >= lim || in ed_next_char()
292 (el->el_line.cursor == lim - 1 && in ed_next_char()
293 el->el_map.type == MAP_VI && in ed_next_char()
294 el->el_chared.c_vcmd.action == NOP)) in ed_next_char()
297 el->el_line.cursor += el->el_state.argument; in ed_next_char()
298 if (el->el_line.cursor > lim) in ed_next_char()
299 el->el_line.cursor = lim; in ed_next_char()
301 if (el->el_map.type == MAP_VI) in ed_next_char()
302 if (el->el_chared.c_vcmd.action != NOP) { in ed_next_char()
311 * Move to the beginning of the current word
312 * [M-b] [b]
319 if (el->el_line.cursor == el->el_line.buffer) in ed_prev_word()
322 el->el_line.cursor = c__prev_word(el->el_line.cursor, in ed_prev_word()
323 el->el_line.buffer, in ed_prev_word()
324 el->el_state.argument, in ed_prev_word()
327 if (el->el_map.type == MAP_VI) in ed_prev_word()
328 if (el->el_chared.c_vcmd.action != NOP) { in ed_prev_word()
345 if (el->el_line.cursor > el->el_line.buffer) { in ed_prev_char()
346 el->el_line.cursor -= el->el_state.argument; in ed_prev_char()
347 if (el->el_line.cursor < el->el_line.buffer) in ed_prev_char()
348 el->el_line.cursor = el->el_line.buffer; in ed_prev_char()
350 if (el->el_map.type == MAP_VI) in ed_prev_char()
351 if (el->el_chared.c_vcmd.action != NOP) { in ed_prev_char()
392 if (el->el_state.doingarg) { in ed_digit()
394 if (el->el_state.lastcmd == EM_UNIVERSAL_ARGUMENT) in ed_digit()
395 el->el_state.argument = c - '0'; in ed_digit()
397 if (el->el_state.argument > 1000000) in ed_digit()
399 el->el_state.argument = in ed_digit()
400 (el->el_state.argument * 10) + (c - '0'); in ed_digit()
411 * For ESC-n
420 if (el->el_state.doingarg) { in ed_argument_digit()
421 if (el->el_state.argument > 1000000) in ed_argument_digit()
423 el->el_state.argument = (el->el_state.argument * 10) + in ed_argument_digit()
424 (c - '0'); in ed_argument_digit()
426 el->el_state.argument = c - '0'; in ed_argument_digit()
427 el->el_state.doingarg = 1; in ed_argument_digit()
448 * Input characters that have no effect
471 *el->el_line.lastchar++ = '\n'; in ed_newline()
472 *el->el_line.lastchar = '\0'; in ed_newline()
486 if (el->el_line.cursor <= el->el_line.buffer) in ed_delete_prev_char()
489 c_delbefore(el, el->el_state.argument); in ed_delete_prev_char()
490 el->el_line.cursor -= el->el_state.argument; in ed_delete_prev_char()
491 if (el->el_line.cursor < el->el_line.buffer) in ed_delete_prev_char()
492 el->el_line.cursor = el->el_line.buffer; in ed_delete_prev_char()
498 * Clear screen leaving current line at the top
527 * Erase current line and start from scratch
563 int sv_event = el->el_history.eventno; in ed_prev_history()
565 el->el_chared.c_undo.len = -1; in ed_prev_history()
566 *el->el_line.lastchar = '\0'; /* just in case */ in ed_prev_history()
568 if (el->el_history.eventno == 0) { /* save the current buffer in ed_prev_history()
570 (void) wcsncpy(el->el_history.buf, el->el_line.buffer, in ed_prev_history()
572 el->el_history.last = el->el_history.buf + in ed_prev_history()
573 (el->el_line.lastchar - el->el_line.buffer); in ed_prev_history()
575 el->el_history.eventno += el->el_state.argument; in ed_prev_history()
578 if (el->el_map.type == MAP_VI) { in ed_prev_history()
579 el->el_history.eventno = sv_event; in ed_prev_history()
582 /* el->el_history.eventno was fixed by first call */ in ed_prev_history()
601 el->el_chared.c_undo.len = -1; in ed_next_history()
602 *el->el_line.lastchar = '\0'; /* just in case */ in ed_next_history()
604 el->el_history.eventno -= el->el_state.argument; in ed_next_history()
606 if (el->el_history.eventno < 0) { in ed_next_history()
607 el->el_history.eventno = 0; in ed_next_history()
619 * Search previous in history for a line matching the current
620 * next search history [M-P] [K]
630 el->el_chared.c_vcmd.action = NOP; in ed_search_prev_history()
631 el->el_chared.c_undo.len = -1; in ed_search_prev_history()
632 *el->el_line.lastchar = '\0'; /* just in case */ in ed_search_prev_history()
633 if (el->el_history.eventno < 0) { in ed_search_prev_history()
635 (void) fprintf(el->el_errfile, in ed_search_prev_history()
638 el->el_history.eventno = 0; in ed_search_prev_history()
641 if (el->el_history.eventno == 0) { in ed_search_prev_history()
642 (void) wcsncpy(el->el_history.buf, el->el_line.buffer, in ed_search_prev_history()
644 el->el_history.last = el->el_history.buf + in ed_search_prev_history()
645 (el->el_line.lastchar - el->el_line.buffer); in ed_search_prev_history()
647 if (el->el_history.ref == NULL) in ed_search_prev_history()
656 for (h = 1; h <= el->el_history.eventno; h++) in ed_search_prev_history()
661 (void) fprintf(el->el_errfile, "Comparing with \"%ls\"\n", hp); in ed_search_prev_history()
663 if ((wcsncmp(hp, el->el_line.buffer, (size_t) in ed_search_prev_history()
664 (el->el_line.lastchar - el->el_line.buffer)) || in ed_search_prev_history()
665 hp[el->el_line.lastchar - el->el_line.buffer]) && in ed_search_prev_history()
676 (void) fprintf(el->el_errfile, "not found\n"); in ed_search_prev_history()
680 el->el_history.eventno = h; in ed_search_prev_history()
687 * Search next in history for a line matching the current
688 * [M-N] [J]
698 el->el_chared.c_vcmd.action = NOP; in ed_search_next_history()
699 el->el_chared.c_undo.len = -1; in ed_search_next_history()
700 *el->el_line.lastchar = '\0'; /* just in case */ in ed_search_next_history()
702 if (el->el_history.eventno == 0) in ed_search_next_history()
705 if (el->el_history.ref == NULL) in ed_search_next_history()
714 for (h = 1; h < el->el_history.eventno && hp; h++) { in ed_search_next_history()
716 (void) fprintf(el->el_errfile, "Comparing with \"%ls\"\n", hp); in ed_search_next_history()
718 if ((wcsncmp(hp, el->el_line.buffer, (size_t) in ed_search_next_history()
719 (el->el_line.lastchar - el->el_line.buffer)) || in ed_search_next_history()
720 hp[el->el_line.lastchar - el->el_line.buffer]) && in ed_search_next_history()
726 if (!found) { /* is it the current history number? */ in ed_search_next_history()
727 if (!c_hmatch(el, el->el_history.buf)) { in ed_search_next_history()
729 (void) fprintf(el->el_errfile, "not found\n"); in ed_search_next_history()
734 el->el_history.eventno = found; in ed_search_next_history()
754 if (*(ptr = el->el_line.cursor) == '\n') in ed_prev_line()
755 ptr--; in ed_prev_line()
757 for (; ptr >= el->el_line.buffer; ptr--) in ed_prev_line()
758 if (*ptr == '\n' && --el->el_state.argument <= 0) in ed_prev_line()
761 if (el->el_state.argument > 0) in ed_prev_line()
767 for (ptr--; ptr >= el->el_line.buffer && *ptr != '\n'; ptr--) in ed_prev_line()
774 nchars-- > 0 && ptr < el->el_line.lastchar && *ptr != '\n'; in ed_prev_line()
778 el->el_line.cursor = ptr; in ed_prev_line()
797 for (ptr = el->el_line.cursor; ptr < el->el_line.lastchar; ptr++) in ed_next_line()
798 if (*ptr == '\n' && --el->el_state.argument <= 0) in ed_next_line()
801 if (el->el_state.argument > 0) in ed_next_line()
808 nchars-- > 0 && ptr < el->el_line.lastchar && *ptr != '\n'; in ed_next_line()
812 el->el_line.cursor = ptr; in ed_next_line()
819 * [M-X] [:]
831 if (tmplen < 0 || (tmpbuf[tmplen] = 0, parse_line(el, tmpbuf)) == -1) in ed_command()
834 el->el_map.current = el->el_map.key; in ed_command()