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