Skip to content

curses.panel misbehaves when drawing wchar_t characters #130161

@blex-max

Description

@blex-max

Bug report

Bug description:

import curses
import curses.panel as panels

def make_panel(y_mag, x_mag, yO, xO):
 win = curses.newwin(y_mag, x_mag, yO, xO)
 panel = panels.new_panel(win)
 return win, panel


def mainloop(stdscr):
    stdscr.clear()
    stdscr.nodelay(True)
    curses.curs_set(0)
    w1, p1 = make_panel(3, 20, 0, 0)
    w2, p2 = make_panel(3, 20, 0, 0)
    panels.update_panels()
    w1.addstr(0, 0, '-----------')
    # w2.addstr(0, 5, 'd')  # works
    w2.addstr(0, 5, '港d')  # works (kind of)
    # w2.addstr(0, 5, '港')  # fails to draw the contents of w1 to the right of the kanji character
    run = True
    while run:
        w1.refresh()
        w2.refresh()
        panels.update_panels()

        c = stdscr.getch()
        if c == 113:  # q
            run = False


if __name__ == '__main__':
    curses.wrapper(mainloop)

When using kanji charcters in panels, the content to the right of the character in the same row is not displayed. If the kanji is followed by a regular ascii character, everything displays as normal. The doc is a bit limited, so I'm not entirely clear if the panel should be showing anything at all from the panel below, but either way, this doesn't seem to be working as intended. Thanks for any insight :)

CPython versions tested on:

3.13

Operating systems tested on:

macOS

Metadata

Metadata

Assignees

No one assigned

    Labels

    extension-modulesC modules in the Modules dirtype-bugAn unexpected behavior, bug, or error

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions