Lines Matching +full:fine +full:- +full:tuning

1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
4 * Copyright (c) 2008-2009 Ed Schouten <ed@FreeBSD.org>
60 #define TS_8BIT 0x0020 /* UTF-8 disabled. */
83 teken_assert(t->t_funcs->tf_bell != NULL); in teken_funcs_bell()
84 t->t_funcs->tf_bell(t->t_softc); in teken_funcs_bell()
91 teken_assert(t->t_cursor.tp_row < t->t_winsize.tp_row); in teken_funcs_cursor()
92 teken_assert(t->t_cursor.tp_col < t->t_winsize.tp_col); in teken_funcs_cursor()
94 teken_assert(t->t_funcs->tf_cursor != NULL); in teken_funcs_cursor()
95 t->t_funcs->tf_cursor(t->t_softc, &t->t_cursor); in teken_funcs_cursor()
103 teken_assert(p->tp_row < t->t_winsize.tp_row); in teken_funcs_putchar()
104 teken_assert(p->tp_col < t->t_winsize.tp_col); in teken_funcs_putchar()
106 teken_assert(t->t_funcs->tf_putchar != NULL); in teken_funcs_putchar()
107 t->t_funcs->tf_putchar(t->t_softc, p, c, a); in teken_funcs_putchar()
115 teken_assert(r->tr_end.tp_row > r->tr_begin.tp_row); in teken_funcs_fill()
116 teken_assert(r->tr_end.tp_row <= t->t_winsize.tp_row); in teken_funcs_fill()
117 teken_assert(r->tr_end.tp_col > r->tr_begin.tp_col); in teken_funcs_fill()
118 teken_assert(r->tr_end.tp_col <= t->t_winsize.tp_col); in teken_funcs_fill()
120 teken_assert(t->t_funcs->tf_fill != NULL); in teken_funcs_fill()
121 t->t_funcs->tf_fill(t->t_softc, r, c, a); in teken_funcs_fill()
128 teken_assert(r->tr_end.tp_row > r->tr_begin.tp_row); in teken_funcs_copy()
129 teken_assert(r->tr_end.tp_row <= t->t_winsize.tp_row); in teken_funcs_copy()
130 teken_assert(r->tr_end.tp_col > r->tr_begin.tp_col); in teken_funcs_copy()
131 teken_assert(r->tr_end.tp_col <= t->t_winsize.tp_col); in teken_funcs_copy()
132 teken_assert(p->tp_row + (r->tr_end.tp_row - r->tr_begin.tp_row) <= t->t_winsize.tp_row); in teken_funcs_copy()
133 teken_assert(p->tp_col + (r->tr_end.tp_col - r->tr_begin.tp_col) <= t->t_winsize.tp_col); in teken_funcs_copy()
135 teken_assert(t->t_funcs->tf_copy != NULL); in teken_funcs_copy()
136 t->t_funcs->tf_copy(t->t_softc, r, p); in teken_funcs_copy()
143 if (t->t_funcs->tf_pre_input != NULL) in teken_funcs_pre_input()
144 t->t_funcs->tf_pre_input(t->t_softc); in teken_funcs_pre_input()
151 if (t->t_funcs->tf_post_input != NULL) in teken_funcs_post_input()
152 t->t_funcs->tf_post_input(t->t_softc); in teken_funcs_post_input()
159 teken_assert(t->t_funcs->tf_param != NULL); in teken_funcs_param()
160 t->t_funcs->tf_param(t->t_softc, cmd, value); in teken_funcs_param()
167 teken_assert(t->t_funcs->tf_respond != NULL); in teken_funcs_respond()
168 t->t_funcs->tf_respond(t->t_softc, buf, len); in teken_funcs_respond()
183 t->t_funcs = tf; in teken_init()
184 t->t_softc = softc; in teken_init()
186 t->t_nextstate = teken_state_init; in teken_init()
187 t->t_stateflags = 0; in teken_init()
188 t->t_utf8_left = 0; in teken_init()
190 t->t_defattr.ta_format = 0; in teken_init()
191 t->t_defattr.ta_fgcolor = TC_WHITE; in teken_init()
192 t->t_defattr.ta_bgcolor = TC_BLACK; in teken_init()
207 if (t->t_stateflags & TS_INSTRING) { in teken_input_char()
210 t->t_stateflags &= ~TS_INSTRING; in teken_input_char()
213 t->t_stateflags &= ~TS_INSTRING; in teken_input_char()
237 if (t->t_stateflags & TS_CONS25) in teken_input_char()
238 t->t_nextstate(t, c); in teken_input_char()
240 t->t_curscs = 1; in teken_input_char()
243 if (t->t_stateflags & TS_CONS25) in teken_input_char()
244 t->t_nextstate(t, c); in teken_input_char()
246 t->t_curscs = 0; in teken_input_char()
255 t->t_nextstate(t, c); in teken_input_char()
259 /* Post-processing assertions. */ in teken_input_char()
260 teken_assert(t->t_cursor.tp_row >= t->t_originreg.ts_begin); in teken_input_char()
261 teken_assert(t->t_cursor.tp_row < t->t_originreg.ts_end); in teken_input_char()
262 teken_assert(t->t_cursor.tp_row < t->t_winsize.tp_row); in teken_input_char()
263 teken_assert(t->t_cursor.tp_col < t->t_winsize.tp_col); in teken_input_char()
264 teken_assert(t->t_saved_cursor.tp_row < t->t_winsize.tp_row); in teken_input_char()
265 teken_assert(t->t_saved_cursor.tp_col < t->t_winsize.tp_col); in teken_input_char()
266 teken_assert(t->t_scrollreg.ts_end <= t->t_winsize.tp_row); in teken_input_char()
267 teken_assert(t->t_scrollreg.ts_begin < t->t_scrollreg.ts_end); in teken_input_char()
269 teken_assert((t->t_originreg.ts_begin == t->t_scrollreg.ts_begin && in teken_input_char()
270 t->t_originreg.ts_end == t->t_scrollreg.ts_end) || in teken_input_char()
271 (t->t_originreg.ts_begin == 0 && in teken_input_char()
272 t->t_originreg.ts_end == t->t_winsize.tp_row)); in teken_input_char()
280 * UTF-8 handling. in teken_input_byte()
282 if ((c & 0x80) == 0x00 || t->t_stateflags & TS_8BIT) { in teken_input_byte()
283 /* One-byte sequence. */ in teken_input_byte()
284 t->t_utf8_left = 0; in teken_input_byte()
287 /* Two-byte sequence. */ in teken_input_byte()
288 t->t_utf8_left = 1; in teken_input_byte()
289 t->t_utf8_partial = c & 0x1f; in teken_input_byte()
291 /* Three-byte sequence. */ in teken_input_byte()
292 t->t_utf8_left = 2; in teken_input_byte()
293 t->t_utf8_partial = c & 0x0f; in teken_input_byte()
295 /* Four-byte sequence. */ in teken_input_byte()
296 t->t_utf8_left = 3; in teken_input_byte()
297 t->t_utf8_partial = c & 0x07; in teken_input_byte()
299 if (t->t_utf8_left == 0) in teken_input_byte()
301 t->t_utf8_left--; in teken_input_byte()
302 t->t_utf8_partial = (t->t_utf8_partial << 6) | (c & 0x3f); in teken_input_byte()
303 if (t->t_utf8_left == 0) { in teken_input_byte()
304 teken_printf("Got UTF-8 char %x\n", t->t_utf8_partial); in teken_input_byte()
305 teken_input_char(t, t->t_utf8_partial); in teken_input_byte()
316 while (len-- > 0) in teken_input()
325 return (&t->t_cursor); in teken_get_cursor()
333 teken_assert(p->tp_row < t->t_winsize.tp_row); in teken_set_cursor()
334 teken_assert(p->tp_col < t->t_winsize.tp_col); in teken_set_cursor()
336 t->t_cursor = *p; in teken_set_cursor()
343 return (&t->t_curattr); in teken_get_curattr()
350 t->t_curattr = *a; in teken_set_curattr()
357 return (&t->t_defattr); in teken_get_defattr()
364 t->t_curattr = t->t_saved_curattr = t->t_defattr = *a; in teken_set_defattr()
371 return (&t->t_winsize); in teken_get_winsize()
379 cur = &t->t_winsize; in teken_trim_cursor_pos()
381 if (cur->tp_row < new->tp_row || cur->tp_col < new->tp_col) in teken_trim_cursor_pos()
383 if (t->t_cursor.tp_row >= new->tp_row) in teken_trim_cursor_pos()
384 t->t_cursor.tp_row = new->tp_row - 1; in teken_trim_cursor_pos()
385 if (t->t_cursor.tp_col >= new->tp_col) in teken_trim_cursor_pos()
386 t->t_cursor.tp_col = new->tp_col - 1; in teken_trim_cursor_pos()
394 t->t_winsize = *p; in teken_set_winsize()
403 t->t_winsize = *p; in teken_set_winsize_noreset()
411 t->t_stateflags |= TS_8BIT; in teken_set_8bit()
418 t->t_stateflags |= TS_CONS25; in teken_set_cons25()
425 t->t_stateflags |= TS_CONS25KEYS; in teken_set_cons25keys()
436 t->t_nextstate = s; in teken_state_switch()
437 t->t_curnum = 0; in teken_state_switch()
438 t->t_stateflags |= TS_FIRSTDIGIT; in teken_state_switch()
445 teken_assert(t->t_curnum < T_NUMSIZE); in teken_state_numbers()
448 if (t->t_stateflags & TS_FIRSTDIGIT) { in teken_state_numbers()
450 t->t_stateflags &= ~TS_FIRSTDIGIT; in teken_state_numbers()
451 t->t_nums[t->t_curnum] = c - '0'; in teken_state_numbers()
452 } else if (t->t_nums[t->t_curnum] < UINT_MAX / 100) { in teken_state_numbers()
463 t->t_nums[t->t_curnum] = in teken_state_numbers()
464 t->t_nums[t->t_curnum] * 10 + c - '0'; in teken_state_numbers()
468 if (t->t_stateflags & TS_FIRSTDIGIT) in teken_state_numbers()
469 t->t_nums[t->t_curnum] = 0; in teken_state_numbers()
472 if (++t->t_curnum == T_NUMSIZE) { in teken_state_numbers()
477 t->t_stateflags |= TS_FIRSTDIGIT; in teken_state_numbers()
480 if (t->t_stateflags & TS_FIRSTDIGIT && t->t_curnum > 0) { in teken_state_numbers()
482 t->t_nums[t->t_curnum] = 0; in teken_state_numbers()
483 t->t_curnum++; in teken_state_numbers()
484 } else if ((t->t_stateflags & TS_FIRSTDIGIT) == 0) { in teken_state_numbers()
486 t->t_curnum++; in teken_state_numbers()
511 * The xterm-256 color map has steps of 0x28 (in the range 0-0xff), except
512 * for the first step which is 0x5f. Scale to the range 0-6 by dividing
513 * by 0x28 and rounding down. The range of 0-5 cannot represent the
517 * - if all components are equal, the result is black for (0, 0, 0) and
519 * - subtract the smallest component from all components
520 * - if this gives only one nonzero component, then that is the color
521 * - else if one component is 2 or more larger than the other nonzero one,
523 * - else there are 2 nonzero components. The color is that of a small
597 * used for different fine tuning of the tables.
736 if ((t->t_stateflags & (TS_CONS25 | TS_CONS25KEYS)) == in teken_get_sequence()
739 if (t->t_stateflags & TS_CONS25 && in teken_get_sequence()
744 if (t->t_stateflags & TS_CURSORKEYS && in teken_get_sequence()