sixel: empty pixels in the last sixel row doesn’t contribute to the image height

All-empty pixels rows in the last sixel row should not be included in
the final sixel image.

This allows applications to emit sixels whose height is not a multiple
of 6, and is how XTerm works.

This is done by tracking the largest row number that contains
non-empty pixels.

In unhook, when emitting the image, the image height is adjusted based
on this value.
This commit is contained in:
Daniel Eklöf 2021-03-07 14:44:16 +01:00
parent d35963f584
commit c181eb2bf6
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 18 additions and 1 deletions

View file

@ -521,6 +521,7 @@ struct terminal {
} state;
struct coord pos; /* Current sixel coordinate */
int max_non_empty_row_no;
size_t row_byte_ofs; /* Byte position into image, for current row */
int color_idx; /* Current palette index */
uint32_t *private_palette; /* Private palette, used when private mode 1070 is enabled */