diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a75036b..7e0196a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -112,7 +112,7 @@ characters (e.g. emojis). * Rendering of CSD borders when `csd.border-width > 0` and desktop scaling has been enabled. -* Failure to launch when `exec(3)’:ed with an empty argv. +* Failure to launch when `exec(3)`:ed with an empty argv. * Pasting from the primary clipboard (mouse middle clicking) did not reset the scrollback view to the bottom. * Wrong mouse binding triggered when doing two mouse selections in @@ -122,6 +122,7 @@ options * Sixel: large image resizes (triggered by e.g. large repeat counts in `DECGRI`) are now truncated instead of ignored. +* Sixel: a repeat count of 0 in `DECGRI` now emits a single sixel. ### Security diff --git a/sixel.c b/sixel.c index 335700c5..fbd0f077 100644 --- a/sixel.c +++ b/sixel.c @@ -1451,6 +1451,8 @@ decgri(struct terminal *term, uint8_t c) unsigned count = term->sixel.param; if (likely(count > 0)) sixel_add_many(term, c - 63, count); + else if (unlikely(count == 0)) + sixel_add_many(term, c - 63, 1); term->sixel.state = SIXEL_DECSIXEL; break; }