Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CursesDriver doesn't render wide codepoints correctly #2796

Open
tig opened this issue Aug 9, 2023 · 2 comments · May be fixed by #2940
Open

CursesDriver doesn't render wide codepoints correctly #2796

tig opened this issue Aug 9, 2023 · 2 comments · May be fixed by #2940
Labels
Milestone

Comments

@tig
Copy link
Collaborator

tig commented Aug 9, 2023

Curses is doing something funky with glyphs that report GetColums() of 1 yet are rendered wide. E.g. 0x2064 (invisible times) is reported as 1 column but is rendered as 2. WindowsDriver & NetDriver correctly render this as 1 column, overlapping the next cell.

I've spent many hours trying to figure this out. I'm at a loss.

JT9gIoo 1

I'm pretty sure curses is actively trying to determine a codepoint is wide and ignoring wcwidth (which it does use, and I've verified is that latest).

I suspect the way to address this is to stop using Curses.addstr etc... and instead emit ANSI sequences directly to the output stream.

@tig tig added the bug label Aug 9, 2023
@tig tig linked a pull request Oct 30, 2023 that will close this issue
14 tasks
@tig tig added this to the V2 Beta milestone May 25, 2024
@tig tig modified the milestones: V2 Beta, v2 Release Jul 11, 2024
@tig
Copy link
Collaborator Author

tig commented Jul 24, 2024

@dodexahedron
Copy link
Collaborator

Another good set of characters to be sure to test things with is the wide decimal digits. They count as numbers but are multibyte and supposed to render as 2 columns.

@tig tig mentioned this issue Aug 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: 📋 Approved - Need Owner
Status: 📋 Approved - Need Owner
Development

Successfully merging a pull request may close this issue.

2 participants