#include #include #include #include void finish(int sig); main (argc,argv) int argc; char *argv[]; {chtype ch; signal (SIGINT,finish); initscr(); cbreak(); noecho(); nonl(); wmove(stdscr,0,0); wprintw(stdscr,"Terminal type is : %s",getenv("TERM")); /* character t */ wmove(stdscr,1,0); wrefresh(stdscr); wprintw(stdscr,"abcdef"); ch = 't'; waddch(stdscr,ch); wrefresh(stdscr); wmove(stdscr,1,3); winsch(stdscr,ch); wrefresh(stdscr); wmove(stdscr,2,0); wrefresh(stdscr); wprintw(stdscr,"result ok : abctdeft"); wrefresh(stdscr); /* character e acute with ch=é */ wmove(stdscr,4,0); wrefresh(stdscr); wprintw(stdscr,"abcdef"); ch = 'é'; waddch(stdscr,ch); wprintw(stdscr," "); wmove(stdscr,4,3); wrefresh(stdscr); winsch(stdscr,ch); wrefresh(stdscr); wmove(stdscr,5,0); wprintw(stdscr,"result should be : abcédefé"); wrefresh(stdscr); /* character e acute with wgetch */ wmove(stdscr,7,0); wprintw(stdscr,"Enter e acute (alt 233)\n"); for(;;) {ch = wgetch(stdscr); /* read a character */ if (ch == 233) break; wprintw(stdscr,"Error, e acute should be 233 decimal,\n"); wprintw(stdscr,"Found char=%c, decimal=%d\n",ch,ch); } wrefresh(stdscr); wmove(stdscr,8,0); wclrtoeol(stdscr); wmove(stdscr,9,0); wclrtoeol(stdscr); wmove(stdscr,8,0); wprintw(stdscr,"abcdef"); waddch(stdscr,ch); wprintw(stdscr," "); wmove(stdscr,8,3); wrefresh(stdscr); winsch(stdscr,ch); wrefresh(stdscr); wmove(stdscr,9,0); wprintw(stdscr,"result should be : abcédefé"); wrefresh(stdscr); wmove(stdscr,11,0); wprintw(stdscr,"enter any key to exit"); ch = wgetch (stdscr); /* read a character */ finish(0); } /* End with sigint =============== */ void finish(int sig) {nl(); nocbreak(); echo(); endwin(); exit(sig); }