version 1.24, 2009/09/07 10:49:32 |
version 1.25, 2009/09/10 17:16:24 |
|
|
char tmp[32]; |
char tmp[32]; |
int val; |
int val; |
size_t end; |
size_t end; |
u_char fg, bg, attr; |
u_char fg, bg, attr, flags; |
|
|
if (*in == '\0') |
if (*in == '\0') |
return; |
return; |
|
|
|
|
fg = gc->fg; |
fg = gc->fg; |
bg = gc->bg; |
bg = gc->bg; |
attr = 0; |
attr = gc->attr; |
|
flags = gc->flags; |
do { |
do { |
end = strcspn(in, delimiters); |
end = strcspn(in, delimiters); |
if (end > (sizeof tmp) - 1) |
if (end > (sizeof tmp) - 1) |
|
|
if ((val = colour_fromstring(tmp + 3)) == -1) |
if ((val = colour_fromstring(tmp + 3)) == -1) |
return; |
return; |
if (*in == 'f' || *in == 'F') { |
if (*in == 'f' || *in == 'F') { |
if (val != 8) |
if (val != 8) { |
|
if (val & 0x100) { |
|
flags |= GRID_FLAG_FG256; |
|
val &= ~0x100; |
|
} else |
|
flags &= ~GRID_FLAG_FG256; |
fg = val; |
fg = val; |
else |
} else |
fg = defgc->fg; |
fg = defgc->fg; |
} else if (*in == 'b' || *in == 'B') { |
} else if (*in == 'b' || *in == 'B') { |
if (val != 8) |
if (val != 8) { |
|
if (val & 0x100) { |
|
flags |= GRID_FLAG_BG256; |
|
val &= ~0x100; |
|
} else |
|
flags &= ~GRID_FLAG_BG256; |
bg = val; |
bg = val; |
else |
} else |
bg = defgc->bg; |
bg = defgc->bg; |
} else |
} else |
return; |
return; |
|
|
gc->fg = fg; |
gc->fg = fg; |
gc->bg = bg; |
gc->bg = bg; |
gc->attr = attr; |
gc->attr = attr; |
|
gc->flags = flags; |
} |
} |
|
|
/* Copy from another screen. */ |
/* Copy from another screen. */ |
|
|
if (screen_check_selection(s, s->cx - width, s->cy)) { |
if (screen_check_selection(s, s->cx - width, s->cy)) { |
memcpy(&tmp_gc2, &s->sel.cell, sizeof tmp_gc2); |
memcpy(&tmp_gc2, &s->sel.cell, sizeof tmp_gc2); |
tmp_gc2.data = gc->data; |
tmp_gc2.data = gc->data; |
tmp_gc2.flags = gc->flags; |
tmp_gc2.flags = gc->flags & ~(GRID_FLAG_FG256|GRID_FLAG_BG256); |
|
tmp_gc2.flags |= s->sel.cell.flags & (GRID_FLAG_FG256|GRID_FLAG_BG256); |
ttyctx.cell = &tmp_gc2; |
ttyctx.cell = &tmp_gc2; |
tty_write(tty_cmd_cell, &ttyctx); |
tty_write(tty_cmd_cell, &ttyctx); |
} else { |
} else { |