version 1.80, 2015/07/13 18:45:18 |
version 1.81, 2015/08/25 15:00:05 |
|
|
struct screen *s = sctx->s; |
struct screen *s = sctx->s; |
struct input_table_entry *entry; |
struct input_table_entry *entry; |
int n, m; |
int n, m; |
|
u_int cx; |
|
|
if (ictx->flags & INPUT_DISCARD) |
if (ictx->flags & INPUT_DISCARD) |
return (0); |
return (0); |
|
|
switch (entry->type) { |
switch (entry->type) { |
case INPUT_CSI_CBT: |
case INPUT_CSI_CBT: |
/* Find the previous tab point, n times. */ |
/* Find the previous tab point, n times. */ |
|
cx = s->cx; |
|
if (cx > screen_size_x(s) - 1) |
|
cx = screen_size_x(s) - 1; |
n = input_get(ictx, 0, 1, 1); |
n = input_get(ictx, 0, 1, 1); |
while (s->cx > 0 && n-- > 0) { |
while (cx > 0 && n-- > 0) { |
do |
do |
s->cx--; |
cx--; |
while (s->cx > 0 && !bit_test(s->tabs, s->cx)); |
while (cx > 0 && !bit_test(s->tabs, cx)); |
} |
} |
|
s->cx = cx; |
break; |
break; |
case INPUT_CSI_CUB: |
case INPUT_CSI_CUB: |
screen_write_cursorleft(sctx, input_get(ictx, 0, 1, 1)); |
screen_write_cursorleft(sctx, input_get(ictx, 0, 1, 1)); |