bug-ncurses
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Ncursesw bug in refreshing wide character (with patch)


From: Eungkyu Song
Subject: Re: Ncursesw bug in refreshing wide character (with patch)
Date: Wed, 5 Jan 2005 14:10:37 +0900
User-agent: Mutt/1.5.6+20040907i

On Sun, Dec 05, 2004 at 09:13:36AM -0500, Thomas Dickey wrote:
> From: Thomas Dickey <address@hidden>
> Date: Sun, 5 Dec 2004 09:13:36 -0500 (EST)
> Subject: Re: Ncursesw bug in refreshing wide character (with patch)
> To: Eungkyu Song <address@hidden>
> cc: Ncurses Mailing List <address@hidden>
> X-Bogosity: Ham, tests=bogofilter, spamicity=0.500000, version=0.93.1
> 
> On Sun, 5 Dec 2004, Eungkyu Song wrote:
> 
> >Hi,
> >
> >In the case that there are wide characters and characters in next line
> >(or previous line), when is scroll screen some wide characters are
> >broken.
> >
> >This is happen because ncurses does not handle nac character correctly.
> 
> hmm - I rewrote that in the 20041023 patch:
> 
> 20041023
>         + add logic in waddch_literal() to clear orphaned cells when one
>           multi-column character partly overwrites another.
>         + improved logic for clearing cells when a multi-column character
>           must be wrapped to a new line.
>         + revise storage of cells for multi-column characters to correct a
>           problem with repainting.  In the old scheme, it was possible for
>           doupdate() to decide that only part of a multi-column character
>           should be repainted since the filler cells stored only an 
>           attribute
>           to denote them as fillers, rather than the character value and the
>           attribute.
> 
> So "isnac()" is no more.
> 
> But your comment reminds me of a related issue with scrolling: the 
> WINDOW_EXT member addch_y is not updated during scrolling - which would be 
> important if one scrolls the screen in the middle of adding a multibyte 
> character.  From the context I can't tell if your patch deals with a 
> different slice of that.
> 
> It's a relatively simple fix, so I should be able to add that in the next 
> patch - and though the changes for the form-library aren't complete, a 
> rollup patch is past due. (Unless some more serious problem arises, I'll
> do that next week).

Thank you.

I don't see broken wide character with scroll with scroll. But my second
part of patch is not applied. It is not scroll problem. When I read a mail
from mutt (screen is changed from index to pager), first line of screen is
changed to pager menu from index menu and wide character of pager menu is
broken.

for example in korean, (it have EUC-KR encoded characters)

'q:종료  d:삭제  u:복구  s:저장  m:메일  r:답장  g:그룹  ?:도움말'
should changed to
'i:종료  ^B:이전페이지  ^F:다음페이지 v:첨부물보기  d:삭제  r:답장   ?:도움말'
but
'i:종료  ^B:이전페이지  ^F:다음페이지 v:첨부물보기  d:뼉? r:답장   ? ?:도움말'
is displayed.

It is because ncursesw try to insert string second byte of wide
character which is not a character.

The second part of my patch is to fix it. But it is not applied.
I think my patch should be edited because isnac() is not exist
anymore. But you may fix this bug easily :)

-- 
 ___               _           Division of CS, Dept. of EECS in KAIST
| __|  _ _ _  __ _| |___  _ _  _                     Member of SPARCS
| _| || | ' `/ _` | / / || | || | http://sparcs.kaist.ac.kr/~eungkyu/
|___`_,_|_||_`__, |_`_``_, |`_,_| @sparcs.kaist.ac.kr
             |___/     |__/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]