Re: [dev] [st] Rendering only half of emoji in curses-based program
Andrej Nabergoj wrote in
<20250401210626.2g25ob2s5nxnge6i_AT_debian.si>:
|The problem is not with lowermost, rightmost cell but one that is
|two positions before rightmost, lowermost cell.
Of course, if you write a wide character that takes multiple
cells, we end up exactly there again.
|I looked at tputc() function, but I don't know yet how to use these
|debugging tools.
|If I comment this two lines for example it renders whole character, but
|of course this is not a solution:
Hmmm, i never looked there, but i see quite a bit of
"term.c.x+width < term.col", but also "term.c.x+width > term.col",
which is a bit odd, shouldn't it be >= in the latter, then? From
the logical-only side of the road.
This is shortly before this code you code me thinks
|if (width == 2) {
| /* gp->mode |= ATTR_WIDE; */
| if (term.c.x+1 < term.col) {
| if (gp[1].mode == ATTR_WIDE && term.c.x+2 < term.col) {
| gp[2].u = ' ';
| gp[2].mode &= ~ATTR_WDUMMY;
|}
| gp[1].u = '\0';
| /* gp[1].mode = ATTR_WDUMMY; */
|}
|}
Ie i mean
if (term.c.x+width > term.col) {
if (IS_SET(MODE_WRAP))
tnewline(1);
else
tmoveto(term.col - width, term.c.y);
gp = &term.line[term.c.y][term.c.x];
}
What happens if you use ">= term.col"?
...
--steffen
|
|Der Kragenbaer, The moon bear,
|der holt sich munter he cheerfully and one by one
|einen nach dem anderen runter wa.ks himself off
|(By Robert Gernhardt)
Received on Wed Apr 02 2025 - 21:52:06 CEST
This archive was generated by hypermail 2.3.0
: Wed Apr 02 2025 - 22:00:10 CEST