dxg@cai.com (08/15/90)
/********************************************************************** * * I am using PC-NFS Version 3.0 to connect to an AT&T 3B2 running UNIX * System V Release 3.2.1. My environment variable TERM is 'vt100'. * * I am developing a large application using Curses and have run into * a problem. I have to output a string to a window, in reverse video * and then clear this window. But for some reason when the window * is cleared the row that contains the reverse video character(s) * and all the rows that follow are cleared (output) in reverse video. * * This problem occurs when the last character output is in reverse video. * * The problem does not occur, if the last non-blank character output is * not in reverse video. * * The following source file is a small scale version of the problem. * * The compile command that I am using is: * cc $*.c -o $* -lm -lcurses * * Please let me know how I can work around this problem, or what I * am doing wrong. * * Thanks, * Constantine "Dean" Grammas * Computer Associates International * 201 University Avenue * Westwood MA, 02090 * (617) 329-7700 x3314 * */ /********************* **** TEST ROUTINE **** **********************/ #include <curses.h> /* * Repaint the the specified window */ rep_win( wid ) WINDOW *wid; { /* just for arguments sake, turn off the reverse video attribute */ wattroff( wid, A_REVERSE ); wnoutrefresh( wid ); touchwin( wid ); doupdate(); } /* END rep_win */ /* * Repaint the specified window and wait for a key stroke */ get_key( wid ) WINDOW *wid; { /* just for arguments sake, turn off the reverse video attribute */ wattroff( wid, A_REVERSE ); rep_win( wid ); beep(); wgetch( wid ); } /* END get_key */ /* * Clear the specified window and then repaint it */ clr_win( wid ) WINDOW *wid; { /* just for arguments sake, turn off the reverse video attribute */ wattroff( wid, A_REVERSE ); werase( wid ); rep_win( wid ); } /* END clr_win */ main() { WINDOW *wid; stdscr = initscr(); /* output a line of text in reverse video, and wait for a key stroke */ wattrset( stdscr, A_REVERSE ); mvwaddstr( stdscr, 10,10, "Press any key." ); wattroff( stdscr, A_REVERSE ); wattrset( stdscr, A_NORMAL ); get_key( stdscr ); /* clear the window, and wait for a keystroke * * NOTE: this is where the problem occurs. */ wattrset( stdscr, A_NORMAL ); clr_win( stdscr ); get_key( stdscr ); endwin(); } /* END main */