Lines Matching refs:el
66 #define __F el->el_errfile
79 re_printstr(EditLine *el, const char *str, wchar_t *f, wchar_t *t) in re_printstr() argument
96 re_nextline(EditLine *el) in re_nextline() argument
98 el->el_refresh.r_cursor.h = 0; /* reset it. */ in re_nextline()
106 if (el->el_refresh.r_cursor.v + 1 >= el->el_terminal.t_size.v) { in re_nextline()
107 int i, lins = el->el_terminal.t_size.v; in re_nextline()
108 wint_t *firstline = el->el_vdisplay[0]; in re_nextline()
111 el->el_vdisplay[i - 1] = el->el_vdisplay[i]; in re_nextline()
114 el->el_vdisplay[i - 1] = firstline; in re_nextline()
116 el->el_refresh.r_cursor.v++; in re_nextline()
118 ELRE_ASSERT(el->el_refresh.r_cursor.v >= el->el_terminal.t_size.v, in re_nextline()
120 el->el_refresh.r_cursor.v, el->el_terminal.t_size.v), in re_nextline()
128 re_addc(EditLine *el, wint_t c) in re_addc() argument
133 re_putc(el, ' ', 1); in re_addc()
134 if ((el->el_refresh.r_cursor.h & 07) == 0) in re_addc()
139 int oldv = el->el_refresh.r_cursor.v; in re_addc()
140 re_putc(el, '\0', 0); /* assure end of line */ in re_addc()
141 if (oldv == el->el_refresh.r_cursor.v) /* XXX */ in re_addc()
142 re_nextline(el); in re_addc()
146 re_putc(el, c, 1); in re_addc()
153 re_putc(el, visbuf[i], 1); in re_addc()
163 re_putliteral(EditLine *el, const wchar_t *begin, const wchar_t *end) in re_putliteral() argument
165 coord_t *cur = &el->el_refresh.r_cursor; in re_putliteral()
167 int sizeh = el->el_terminal.t_size.h; in re_putliteral()
170 c = literal_add(el, begin, end, &w); in re_putliteral()
173 el->el_vdisplay[cur->v][cur->h] = c; in re_putliteral()
179 el->el_vdisplay[cur->v][cur->h + i] = MB_FILL_CHAR; in re_putliteral()
184 el->el_vdisplay[cur->v][sizeh] = '\0'; in re_putliteral()
185 re_nextline(el); in re_putliteral()
193 re_putc(EditLine *el, wint_t c, int shift) in re_putc() argument
195 coord_t *cur = &el->el_refresh.r_cursor; in re_putc()
197 int sizeh = el->el_terminal.t_size.h; in re_putc()
204 re_putc(el, ' ', 1); in re_putc()
206 el->el_vdisplay[cur->v][cur->h] = c; in re_putc()
210 el->el_vdisplay[cur->v][cur->h + i] = MB_FILL_CHAR; in re_putc()
218 el->el_vdisplay[cur->v][sizeh] = '\0'; in re_putc()
219 re_nextline(el); in re_putc()
231 re_refresh(EditLine *el) in re_refresh() argument
241 el->el_line.buffer)); in re_refresh()
243 literal_clear(el); in re_refresh()
245 el->el_refresh.r_cursor.h = 0; in re_refresh()
246 el->el_refresh.r_cursor.v = 0; in re_refresh()
248 terminal_move_to_char(el, 0); in re_refresh()
251 prompt_print(el, EL_RPROMPT); in re_refresh()
254 el->el_refresh.r_cursor.h = 0; in re_refresh()
255 el->el_refresh.r_cursor.v = 0; in re_refresh()
257 if (el->el_line.cursor >= el->el_line.lastchar) { in re_refresh()
258 if (el->el_map.current == el->el_map.alt in re_refresh()
259 && el->el_line.lastchar != el->el_line.buffer) in re_refresh()
260 el->el_line.cursor = el->el_line.lastchar - 1; in re_refresh()
262 el->el_line.cursor = el->el_line.lastchar; in re_refresh()
268 prompt_print(el, EL_PROMPT); in re_refresh()
272 termsz = el->el_terminal.t_size.h * el->el_terminal.t_size.v; in re_refresh()
273 if (el->el_line.lastchar - el->el_line.buffer > termsz) { in re_refresh()
278 size_t rem = (el->el_line.lastchar-el->el_line.buffer)%termsz; in re_refresh()
280 st = el->el_line.lastchar - rem in re_refresh()
281 - (termsz - (((rem / el->el_terminal.t_size.v) - 1) in re_refresh()
282 * el->el_terminal.t_size.v)); in re_refresh()
285 st = el->el_line.buffer; in re_refresh()
287 for (cp = st; cp < el->el_line.lastchar; cp++) { in re_refresh()
288 if (cp == el->el_line.cursor) { in re_refresh()
291 cur.h = el->el_refresh.r_cursor.h; in re_refresh()
292 cur.v = el->el_refresh.r_cursor.v; in re_refresh()
294 if (w > 1 && el->el_refresh.r_cursor.h + w > in re_refresh()
295 el->el_terminal.t_size.h) { in re_refresh()
300 re_addc(el, *cp); in re_refresh()
304 cur.h = el->el_refresh.r_cursor.h; in re_refresh()
305 cur.v = el->el_refresh.r_cursor.v; in re_refresh()
307 rhdiff = el->el_terminal.t_size.h - el->el_refresh.r_cursor.h - in re_refresh()
308 el->el_rprompt.p_pos.h; in re_refresh()
309 if (el->el_rprompt.p_pos.h && !el->el_rprompt.p_pos.v && in re_refresh()
310 !el->el_refresh.r_cursor.v && rhdiff > 1) { in re_refresh()
317 re_putc(el, ' ', 1); in re_refresh()
318 prompt_print(el, EL_RPROMPT); in re_refresh()
320 el->el_rprompt.p_pos.h = 0; /* flag "not using rprompt" */ in re_refresh()
321 el->el_rprompt.p_pos.v = 0; in re_refresh()
324 re_putc(el, '\0', 0); /* make line ended with NUL, no cursor shift */ in re_refresh()
326 el->el_refresh.r_newcv = el->el_refresh.r_cursor.v; in re_refresh()
330 el->el_terminal.t_size.h, el->el_refresh.r_cursor.h, in re_refresh()
331 el->el_refresh.r_cursor.v, ct_encode_string(el->el_vdisplay[0], in re_refresh()
332 &el->el_scratch))); in re_refresh()
334 ELRE_DEBUG(1, (__F, "updating %d lines.\r\n", el->el_refresh.r_newcv)); in re_refresh()
335 for (i = 0; i <= el->el_refresh.r_newcv; i++) { in re_refresh()
337 re_update_line(el, (wchar_t *)el->el_display[i], in re_refresh()
338 (wchar_t *)el->el_vdisplay[i], i); in re_refresh()
347 re__copy_and_pad((wchar_t *)el->el_display[i], in re_refresh()
348 (wchar_t *)el->el_vdisplay[i], in re_refresh()
349 (size_t) el->el_terminal.t_size.h); in re_refresh()
353 el->el_refresh.r_cursor.v, el->el_refresh.r_oldcv, i)); in re_refresh()
355 if (el->el_refresh.r_oldcv > el->el_refresh.r_newcv) in re_refresh()
356 for (; i <= el->el_refresh.r_oldcv; i++) { in re_refresh()
357 terminal_move_to_line(el, i); in re_refresh()
358 terminal_move_to_char(el, 0); in re_refresh()
360 terminal_clear_EOL(el, in re_refresh()
361 (int) wcslen((const wchar_t *)el->el_display[i])); in re_refresh()
363 terminal_overwrite(el, L"C\b", 2); in re_refresh()
365 el->el_display[i][0] = '\0'; in re_refresh()
368 el->el_refresh.r_oldcv = el->el_refresh.r_newcv; /* set for next time */ in re_refresh()
371 el->el_refresh.r_cursor.h, el->el_refresh.r_cursor.v, in re_refresh()
373 terminal_move_to_line(el, cur.v); /* go to where the cursor is */ in re_refresh()
374 terminal_move_to_char(el, cur.h); in re_refresh()
382 re_goto_bottom(EditLine *el) in re_goto_bottom() argument
385 terminal_move_to_line(el, el->el_refresh.r_oldcv); in re_goto_bottom()
386 terminal__putc(el, '\n'); in re_goto_bottom()
387 re_clear_display(el); in re_goto_bottom()
388 terminal__flush(el); in re_goto_bottom()
398 re_insert(EditLine *el __attribute__((__unused__)), in re_insert() argument
410 num, dat, dlen, ct_encode_string(d, &el->el_scratch))); in re_insert()
412 &el->el_scratch))); in re_insert()
425 num, dat, dlen, ct_encode_string(d, &el->el_scratch))); in re_insert()
427 &el->el_scratch))); in re_insert()
449 re_delete(EditLine *el __attribute__((__unused__)), in re_delete() argument
462 num, dat, dlen, ct_encode_string(d, &el->el_scratch))); in re_delete()
474 num, dat, dlen, ct_encode_string(d, &el->el_scratch))); in re_delete()
497 re_clear_eol(EditLine *el, int fx, int sx, int diff) in re_clear_eol() argument
513 terminal_clear_EOL(el, diff); in re_clear_eol()
541 re_update_line(EditLine *el, wchar_t *old, wchar_t *new, int i) in re_update_line() argument
741 re_printstr(el, "old- oe", old, oe); in re_update_line()
742 re_printstr(el, "new- ne", new, ne); in re_update_line()
743 re_printstr(el, "old-ofd", old, ofd); in re_update_line()
744 re_printstr(el, "new-nfd", new, nfd); in re_update_line()
745 re_printstr(el, "ofd-osb", ofd, osb); in re_update_line()
746 re_printstr(el, "nfd-nsb", nfd, nsb); in re_update_line()
747 re_printstr(el, "osb-ose", osb, ose); in re_update_line()
748 re_printstr(el, "nsb-nse", nsb, nse); in re_update_line()
749 re_printstr(el, "ose-ols", ose, ols); in re_update_line()
750 re_printstr(el, "nse-nls", nse, nls); in re_update_line()
751 re_printstr(el, "ols- oe", ols, oe); in re_update_line()
752 re_printstr(el, "nls- ne", nls, ne); in re_update_line()
760 terminal_move_to_line(el, i); in re_update_line()
806 ((p - old) + fx <= el->el_terminal.t_size.h)) { in re_update_line()
812 terminal_move_to_char(el, (int)(nfd - new)); in re_update_line()
824 terminal_insertwrite(el, nfd, fx); in re_update_line()
825 re_insert(el, old, (int)(ofd - old), in re_update_line()
826 el->el_terminal.t_size.h, nfd, fx); in re_update_line()
833 terminal_overwrite(el, (nfd + fx), len); in re_update_line()
838 terminal_overwrite(el, nfd, len); in re_update_line()
851 terminal_move_to_char(el, (int)(ofd - old)); in re_update_line()
864 terminal_deletechars(el, -fx); in re_update_line()
865 re_delete(el, old, (int)(ofd - old), in re_update_line()
866 el->el_terminal.t_size.h, -fx); in re_update_line()
872 terminal_overwrite(el, nfd, len); in re_update_line()
881 terminal_overwrite(el, nfd, (size_t)(nsb - nfd)); in re_update_line()
882 re_clear_eol(el, fx, sx, in re_update_line()
892 if (sx < 0 && (ose - old) + fx < el->el_terminal.t_size.h) { in re_update_line()
902 terminal_move_to_char(el, (int)((ose - old) + fx)); in re_update_line()
914 terminal_deletechars(el, -sx); in re_update_line()
919 terminal_overwrite(el, nse, (size_t)(nls - nse)); in re_update_line()
923 terminal_overwrite(el, nse, (size_t)(nls - nse)); in re_update_line()
924 re_clear_eol(el, fx, sx, in re_update_line()
935 terminal_move_to_char(el, (int)(nfd - new)); in re_update_line()
953 terminal_insertwrite(el, nfd, fx); in re_update_line()
954 re_insert(el, old, (int)(ofd - old), in re_update_line()
955 el->el_terminal.t_size.h, nfd, fx); in re_update_line()
962 terminal_overwrite(el, (nfd + fx), len); in re_update_line()
967 terminal_overwrite(el, nfd, len); in re_update_line()
977 terminal_move_to_char(el, (int)(nse - new)); in re_update_line()
984 terminal_insertwrite(el, nse, sx); in re_update_line()
990 terminal_overwrite(el, (nse + sx), in re_update_line()
994 terminal_overwrite(el, nse, (size_t)(nls - nse)); in re_update_line()
1032 re_refresh_cursor(EditLine *el) in re_refresh_cursor() argument
1037 if (el->el_line.cursor >= el->el_line.lastchar) { in re_refresh_cursor()
1038 if (el->el_map.current == el->el_map.alt in re_refresh_cursor()
1039 && el->el_line.lastchar != el->el_line.buffer) in re_refresh_cursor()
1040 el->el_line.cursor = el->el_line.lastchar - 1; in re_refresh_cursor()
1042 el->el_line.cursor = el->el_line.lastchar; in re_refresh_cursor()
1046 h = el->el_prompt.p_pos.h; in re_refresh_cursor()
1047 v = el->el_prompt.p_pos.v; in re_refresh_cursor()
1048 th = el->el_terminal.t_size.h; /* optimize for speed */ in re_refresh_cursor()
1051 for (cp = el->el_line.buffer; cp < el->el_line.cursor; cp++) { in re_refresh_cursor()
1078 if (cp < el->el_line.lastchar && (w = wcwidth(*cp)) > 1) in re_refresh_cursor()
1085 terminal_move_to_line(el, v); in re_refresh_cursor()
1086 terminal_move_to_char(el, h); in re_refresh_cursor()
1087 terminal__flush(el); in re_refresh_cursor()
1095 re_fastputc(EditLine *el, wint_t c) in re_fastputc() argument
1101 while (w > 1 && el->el_cursor.h + w > el->el_terminal.t_size.h) in re_fastputc()
1102 re_fastputc(el, ' '); in re_fastputc()
1104 terminal__putc(el, c); in re_fastputc()
1105 el->el_display[el->el_cursor.v][el->el_cursor.h++] = c; in re_fastputc()
1107 el->el_display[el->el_cursor.v][el->el_cursor.h++] in re_fastputc()
1110 if (el->el_cursor.h >= el->el_terminal.t_size.h) { in re_fastputc()
1112 el->el_cursor.h = 0; in re_fastputc()
1120 if (el->el_cursor.v + 1 >= el->el_terminal.t_size.v) { in re_fastputc()
1121 int i, lins = el->el_terminal.t_size.v; in re_fastputc()
1123 lastline = el->el_display[0]; in re_fastputc()
1125 el->el_display[i - 1] = el->el_display[i]; in re_fastputc()
1127 el->el_display[i - 1] = lastline; in re_fastputc()
1129 el->el_cursor.v++; in re_fastputc()
1130 lastline = el->el_display[++el->el_refresh.r_oldcv]; in re_fastputc()
1133 (size_t)el->el_terminal.t_size.h); in re_fastputc()
1137 terminal__putc(el, ' '); in re_fastputc()
1138 terminal__putc(el, '\b'); in re_fastputc()
1141 terminal__putc(el, '\r'); in re_fastputc()
1142 terminal__putc(el, '\n'); in re_fastputc()
1153 re_fastaddc(EditLine *el) in re_fastaddc() argument
1158 if (el->el_line.cursor == el->el_line.buffer) { in re_fastaddc()
1159 re_refresh(el); in re_fastaddc()
1162 c = el->el_line.cursor[-1]; in re_fastaddc()
1164 if (c == '\t' || el->el_line.cursor != el->el_line.lastchar) { in re_fastaddc()
1165 re_refresh(el); /* too hard to handle */ in re_fastaddc()
1168 rhdiff = el->el_terminal.t_size.h - el->el_cursor.h - in re_fastaddc()
1169 el->el_rprompt.p_pos.h; in re_fastaddc()
1170 if (el->el_rprompt.p_pos.h && rhdiff < 3) { in re_fastaddc()
1171 re_refresh(el); /* clear out rprompt if less than 1 char gap */ in re_fastaddc()
1179 re_fastputc(el, c); in re_fastaddc()
1187 re_fastputc(el, visbuf[i]); in re_fastaddc()
1191 terminal__flush(el); in re_fastaddc()
1199 re_clear_display(EditLine *el) in re_clear_display() argument
1203 el->el_cursor.v = 0; in re_clear_display()
1204 el->el_cursor.h = 0; in re_clear_display()
1205 for (i = 0; i < el->el_terminal.t_size.v; i++) in re_clear_display()
1206 el->el_display[i][0] = '\0'; in re_clear_display()
1207 el->el_refresh.r_oldcv = 0; in re_clear_display()
1215 re_clear_lines(EditLine *el) in re_clear_lines() argument
1220 for (i = el->el_refresh.r_oldcv; i >= 0; i--) { in re_clear_lines()
1222 terminal_move_to_line(el, i); in re_clear_lines()
1223 terminal_move_to_char(el, 0); in re_clear_lines()
1224 terminal_clear_EOL(el, el->el_terminal.t_size.h); in re_clear_lines()
1227 terminal_move_to_line(el, el->el_refresh.r_oldcv); in re_clear_lines()
1229 terminal__putc(el, '\r'); /* go to BOL */ in re_clear_lines()
1230 terminal__putc(el, '\n'); /* go to new line */ in re_clear_lines()