Andrej Nabergoj wrote in <20250401210626.2g25ob2s5nxng...@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)