bug-ncurses
[Top][All Lists]
Advanced

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

bug in the alternate character set output


From: Alexei Malinin
Subject: bug in the alternate character set output
Date: Fri, 09 Sep 2011 11:29:41 +0400
User-agent: Mozilla/5.0 (X11; U; OpenBSD i386; en-US; rv:1.8.1.6) Gecko/20070819 SeaMonkey/1.1.4

Nicholas Marriott wrote:
> I get the same results on Linux and OpenBSD so if this is a problem I
> suspect it is ncurses rather than OpenBSD.
>
> You can take this to ncurses-dev or I will have a dig around when I have
> time, it'd help if you can come up with a simpler example (perhaps where
> you only change the x member of acsc).
>
>
> On Mon, Jul 18, 2011 at 04:28:41PM +0400, address@hidden wrote:
>   
>> Synopsis:    bug in the alternate character set output
>> Category:    system
>> Environment:
>>              System:         OpenBSD 4.2 & 4.9
>>              Architecture:   OpenBSD.i386
>>              Machine:        i386
>> Description:
>>              curses and the like applications display curses ACS_VLINE
>>              characters incorrectly if the ACS_VLINE character is set
>>              to "|"
>> How-To-Repeat:
>>              let's prepare test terminfo entry, where curses ACS_VLINE
>>              character is set to "|" (i. e. acsc must have "x|"
>>              somewhere in a terminfo description):
>>
>> # cd         
>> # vi xterm0.ti
>> # cat xterm0.ti
>>
>> # ACS test
>> xterm0|xterm with simple ASCII pseudographics,
>>      acsc=+>\,<-\^.v0#`+a\:f\\h#j+k+l+m+n+o~p-q-r-s_t+u+v+w+|!}#~ox|,
>>      use=xterm,
>>
>> # cat xterm0.ti >> /usr/src/share/termtypes/termtypes.master
>> # cd /usr/src/share/termtypes
>> # make obj
>> # make cleandir
>> # make depend
>> # make
>> # make install
>>
>>              after that let's prepare test curses program:
>>
>> # cd         
>> # vi test.c
>> # cat test.c
>>
>> #include <stdlib.h>
>> #include <curses.h>
>>
>> void ERROR(char *diag) {
>>      printf("%s\n", diag);
>>      exit(1);
>> }
>>
>> int main() {
>>      if (initscr() == NULL)
>>              ERROR("initscr() error!");
>>      if (cbreak() != OK)
>>              ERROR("cbreak() error!");
>>      if (noecho() != OK)
>>              ERROR("noecho() error!");
>>      if (nonl() != OK)
>>              ERROR("nonl() error!");
>>      if (intrflush(stdscr, FALSE) != OK)
>>              ERROR("intrflush(stdscr, FALSE) error!");
>>      if (keypad(stdscr, TRUE) != OK)
>>              ERROR("keypad(stdscr, TRUE) error!");
>>      if (border(0, 0, 0, 0, 0, 0, 0, 0) != OK)
>>              ERROR("border(0, 0, 0, 0, 0, 0, 0, 0) error!");
>>      if (refresh() != OK)
>>              ERROR("refresh() error!");
>>      if (getch() == ERR)
>>              ERROR("getch() error!");
>>      if (endwin() != OK)
>>              ERROR("endwin() error!");
>>      return (0);
>> }
>>
>> # rm -f test ; cc -lcurses -o test test.c ; echo $?
>> 0
>>
>>              at console with TERM set to "xterm0" or in an xterm
>>              window (which was started as "xterm -tn xterm0 &")
>>              let's run our test program:
>>
>> # ./test
>>
>>              this test shows us that curses ACS_VLINE characters
>>              are displayed incorrectly (i. e. not as "|")
>>
>> Fix:
>>              workaround is dumb - change "|" to "!" and curses
>>              ACS_VLINE characters will be displayed correctly
>>              (as "!"); but this does not fix the problem!
>>
>>
>> --
>> Alexei Malinin
>>     




reply via email to

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