Lines Matching +full:ctrl +full:- +full:a

1 /*-
2 * SPDX-License-Identifier: MIT-CMU
23 * Pittsburgh PA 15213-3890
47 * since input always ends with a new-line. We just
75 #define CTRL(c) ((c) & 0x1f) macro
90 while (--count >= 0) in db_putstring()
97 while (--count >= 0) in db_putnchars()
112 db_lc -= n; in db_delete()
115 for (p = db_lc; p < db_le-n; p++) { in db_delete()
120 db_putnchars(BACKUP, db_le - db_lc); in db_delete()
121 db_le -= n; in db_delete()
124 /* returns true at end-of-line */
135 escstate = 0; /* re-init state machine */ in db_inputchar()
140 * If a valid cursor key has been found, translate in db_inputchar()
141 * into an emacs-style control key, and fall through. in db_inputchar()
145 case 'A': /* up */ in db_inputchar()
146 c = CTRL('p'); in db_inputchar()
149 c = CTRL('n'); in db_inputchar()
152 c = CTRL('f'); in db_inputchar()
155 c = CTRL('b'); in db_inputchar()
163 case CTRL('['): in db_inputchar()
166 case CTRL('b'): in db_inputchar()
170 db_lc--; in db_inputchar()
173 case CTRL('f'): in db_inputchar()
180 case CTRL('a'): in db_inputchar()
184 db_lc--; in db_inputchar()
187 case CTRL('e'): in db_inputchar()
194 case CTRL('h'): in db_inputchar()
200 case CTRL('d'): in db_inputchar()
205 case CTRL('u'): in db_inputchar()
206 case CTRL('c'): in db_inputchar()
210 db_delete(db_lc - db_lbuf_start, DEL_BWD); in db_inputchar()
212 case CTRL('k'): in db_inputchar()
215 db_delete(db_le - db_lc, DEL_FWD); in db_inputchar()
217 case CTRL('t'): in db_inputchar()
220 c = db_lc[-2]; in db_inputchar()
221 db_lc[-2] = db_lc[-1]; in db_inputchar()
222 db_lc[-1] = c; in db_inputchar()
225 cnputc(db_lc[-2]); in db_inputchar()
226 cnputc(db_lc[-1]); in db_inputchar()
229 case CTRL('w'): in db_inputchar()
232 if (*(db_lc - 1) != ' ') in db_inputchar()
237 if (*(db_lc - 1) == ' ') in db_inputchar()
242 case CTRL('r'): in db_inputchar()
246 db_putstring(db_lbuf_start, db_le - db_lbuf_start); in db_inputchar()
247 db_putnchars(BACKUP, db_le - db_lc); in db_inputchar()
250 case CTRL('p'): in db_inputchar()
255 db_lhistcur--; in db_inputchar()
259 case CTRL('n'): in db_inputchar()
261 if (db_lhistcur < db_lhistidx - 1) { in db_inputchar()
275 db_putnchars(BACKUP, db_lc - db_lbuf_start); in db_inputchar()
276 db_putnchars(BLANK, db_le - db_lbuf_start); in db_inputchar()
277 db_putnchars(BACKUP, db_le - db_lbuf_start); in db_inputchar()
279 if (db_le[-1] == '\r' || db_le[-1] == '\n') in db_inputchar()
280 *--db_le = '\0'; in db_inputchar()
284 case -1: in db_inputchar()
303 for (p = db_le; p > db_lc; p--) in db_inputchar()
304 *p = *(p-1); in db_inputchar()
308 db_putstring(db_lc, db_le - db_lc); in db_inputchar()
309 db_putnchars(BACKUP, db_le - db_lc); in db_inputchar()
316 /* Get a character from the console, first checking the raw input buffer. */
340 /* Un-get a character from the console by buffering it. */
350 /* Drain a character from the raw input buffer. */
356 return (-1); in db_raw_pop()
357 db_raw_cnt--; in db_raw_pop()
375 db_lhistidx = -1; in db_readline()
382 db_lbuf_end = lstart + lsize - 2; /* Will append NL and NUL. */ in db_readline()
389 db_capture_write(lstart, db_le - db_lbuf_start); in db_readline()
393 if (db_le - db_lbuf_start > 1) { in db_readline()
394 /* Maintain input line history for non-empty lines. */ in db_readline()
398 db_lhistlsize * (db_lhist_nlines - 1)); in db_readline()
399 db_lhistidx--; in db_readline()
405 return (db_le - db_lbuf_start); in db_readline()
412 /* Do a pager quit too because some commands have jmpbuf handling. */ in db_do_interrupt()
424 * Check console input for control characters. Non-control input is in db_check_interrupt()
426 * control input or drop further non-control input on the floor. in db_check_interrupt()
433 case -1: /* no character */ in db_check_interrupt()
436 case CTRL('c'): in db_check_interrupt()
440 case CTRL('s'): in db_check_interrupt()
443 if (c == CTRL('c')) in db_check_interrupt()
445 } while (c != CTRL('q')); in db_check_interrupt()
453 db_printf("\n--Exceeded input buffer--\n"); in db_check_interrupt()