[dev] [st] Rendering only half of wide character in curses-based program

From: Andrej Nabergoj <andrej.nabergoj_at_siol.net>
Date: Mon, 7 Sep 2026 21:48:39 +0200

Hello,

A while ago, while writing a curses-based program, I noticed that if I
place a wide character near the bottom-right corner of the terminal
(starting in the third-to-last column), it gets cut in half.

At the time I couldn't find a solution, but I have now found that adding

rmam=\E[?7l,
smam=\E[?7h,

to st.info and compiling, the program works as expected.
Are these two capabilities intentionally omitted from st.info?

Example program used:

#include <curses.h>
#include <locale.h>
int main() {
    int row, col;
    setlocale(LC_ALL, "");
    initscr();
    getmaxyx(stdscr, row, col);
    mvprintw(row-1, col-3, "字");
    getch();
    endwin();
    return 0;
}

Regards,
Andrej
Received on Mon Sep 07 2026 - 21:48:39 CEST

This archive was generated by hypermail 2.3.0 : Wed Sep 16 2026 - 10:36:09 CEST