Re: [dev] [st] Rendering only half of emoji in curses-based program

From: Andrej Nabergoj <andrej.nabergoj_AT_siol.net>
Date: Sun, 30 Mar 2025 19:32:14 +0200

The program is so small I don't need github, I apologise.
If you make st window 1 row high and 9 columns wide, so string
"😍😍😍😍x" should fill whole window, last emoji gets cut on half.

gcc st_bug.c -DNCURSES_WIDECHAR=1 -lncursesw

#include <curses.h>
#include <locale.h>
int main() {
    setlocale(LC_ALL, "");
    initscr();
    printw("😍😍😍😍x");
    getch();
    endwin();
    return 0;
}

For the same string without curses there is no problem, so probably is
not st problem, but in other terminals I don't get such behavior.

#include <stdio.h>
int main() {
    printf("😍😍😍😍x");
    int c = getchar();
    return 0;
}

Regards,
Andrej

On 28/03/25 06:56, Andrej Nabergoj wrote:
> Hello,
>
> I am having an issue with wide characters not rendering correctly in my
> curses-based program. This happens only when wide character (e.g. emoji)
> is placed on third-to-last column of last row. This doesn't happen in
> other terminals. I made sample program: github.com/anabergojzz/try
> But I don't know how to further simplify it and find out what is source
> of the problem. Can someone have a look?
>
> st version: 0.9.2
> libncurses-dev Version: 6.4-4
>
> Kind regards,
> Andrej
>
Received on Sun Mar 30 2025 - 19:32:14 CEST

This archive was generated by hypermail 2.3.0 : Sun Mar 30 2025 - 23:48:10 CEST