mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-05 04:06:08 -05:00
commit
335bd36628
2 changed files with 14 additions and 1 deletions
|
|
@ -71,6 +71,9 @@
|
|||
when output scaling was enabled
|
||||
(https://codeberg.org/dnkl/foot/issues/409).
|
||||
* Empty sixels resulted in non-empty images.
|
||||
* OSC-4/104 out-of-bounds accesses to the color table. This was the
|
||||
reason pywal turned foot windows transparent
|
||||
(https://codeberg.org/dnkl/foot/issues/434).
|
||||
|
||||
|
||||
## 1.7.0
|
||||
|
|
|
|||
12
osc.c
12
osc.c
|
|
@ -575,6 +575,11 @@ osc_dispatch(struct terminal *term)
|
|||
idx += c - '0';
|
||||
}
|
||||
|
||||
if (idx >= ALEN(term->colors.table)) {
|
||||
LOG_WARN("invalid OSC 4 color index: %u", idx);
|
||||
break;
|
||||
}
|
||||
|
||||
/* Client queried for current value */
|
||||
if (strlen(s_color) == 1 && s_color[0] == '?') {
|
||||
uint32_t color = term->colors.table[idx];
|
||||
|
|
@ -698,7 +703,7 @@ osc_dispatch(struct terminal *term)
|
|||
|
||||
if (strlen(string) == 0) {
|
||||
LOG_DBG("resetting all colors");
|
||||
for (size_t i = 0; i < 256; i++) {
|
||||
for (size_t i = 0; i < ALEN(term->colors.table); i++) {
|
||||
update_color_in_grids(
|
||||
term, term->colors.table[i], term->colors.default_table[i]);
|
||||
term->colors.table[i] = term->colors.default_table[i];
|
||||
|
|
@ -717,6 +722,11 @@ osc_dispatch(struct terminal *term)
|
|||
idx += c - '0';
|
||||
}
|
||||
|
||||
if (idx >= ALEN(term->colors.table)) {
|
||||
LOG_WARN("invalid OSC 104 color index: %u", idx);
|
||||
continue;
|
||||
}
|
||||
|
||||
LOG_DBG("resetting color #%u", idx);
|
||||
update_color_in_grids(
|
||||
term, term->colors.table[idx], term->colors.default_table[idx]);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue