X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=test%2Finchs.c;h=be3aab86f57829499c1b4d4156414023868dd040;hp=93cd4c225ae386917f007bb65dbf16bacd51e39e;hb=aefc1659d732acf7e62c0c78a443d6d8352a3c6e;hpb=eb312e0bb90463a33aa8a53f825b32dc189af023 diff --git a/test/inchs.c b/test/inchs.c index 93cd4c22..be3aab86 100644 --- a/test/inchs.c +++ b/test/inchs.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 2007 Free Software Foundation, Inc. * + * Copyright (c) 2007-2010,2012 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -26,7 +26,9 @@ * authorization. * ****************************************************************************/ /* - * $Id: inchs.c,v 1.7 2007/06/30 17:50:44 tom Exp $ + * $Id: inchs.c,v 1.12 2012/11/18 01:58:15 tom Exp $ + * + * Author: Thomas E Dickey */ /* chtype inch(void); @@ -48,6 +50,16 @@ #define BASE_Y 7 #define MAX_COLS 1024 +static void +failed(const char *s) +{ + int save = errno; + endwin(); + errno = save; + perror(s); + ExitProgram(EXIT_FAILURE); +} + static bool Quit(int ch) { @@ -85,6 +97,8 @@ test_inchs(int level, char **argv, WINDOW *chrwin, WINDOW *strwin) txtwin = stdscr; base_y = BASE_Y; } + if (txtwin == 0) + failed("cannot create txtwin"); keypad(txtwin, TRUE); /* enable keyboard mapping */ (void) cbreak(); /* take input chars one at a time, no wait for \n */ @@ -100,10 +114,10 @@ test_inchs(int level, char **argv, WINDOW *chrwin, WINDOW *strwin) break; } } + fclose(fp); } else { wprintw(txtwin, "Cannot open:\n%s", argv[1]); } - fclose(fp); while (!Quit(j = mvwgetch(txtwin, txt_y, txt_x))) { switch (j) { @@ -150,16 +164,16 @@ test_inchs(int level, char **argv, WINDOW *chrwin, WINDOW *strwin) break; } - mvwprintw(chrwin, 0, 0, "char:"); + MvWPrintw(chrwin, 0, 0, "char:"); wclrtoeol(chrwin); if (txtwin != stdscr) { wmove(txtwin, txt_y, txt_x); - if ((ch = winch(txtwin)) != ERR) { + if ((ch = (int) winch(txtwin)) != ERR) { if (waddch(chrwin, (chtype) ch) != ERR) { for (j = txt_x + 1; j < getmaxx(txtwin); ++j) { - if ((ch = mvwinch(txtwin, txt_y, j)) != ERR) { + if ((ch = (int) mvwinch(txtwin, txt_y, j)) != ERR) { if (waddch(chrwin, (chtype) ch) == ERR) { break; } @@ -172,10 +186,10 @@ test_inchs(int level, char **argv, WINDOW *chrwin, WINDOW *strwin) } else { move(txt_y, txt_x); - if ((ch = inch()) != ERR) { + if ((ch = (int) inch()) != ERR) { if (waddch(chrwin, (chtype) ch) != ERR) { for (j = txt_x + 1; j < getmaxx(txtwin); ++j) { - if ((ch = mvinch(txt_y, j)) != ERR) { + if ((ch = (int) mvinch(txt_y, j)) != ERR) { if (waddch(chrwin, (chtype) ch) == ERR) { break; } @@ -188,7 +202,7 @@ test_inchs(int level, char **argv, WINDOW *chrwin, WINDOW *strwin) } wnoutrefresh(chrwin); - mvwprintw(strwin, 0, 0, "text:"); + MvWPrintw(strwin, 0, 0, "text:"); wclrtobot(strwin); limit = getmaxx(strwin) - 5; @@ -196,38 +210,38 @@ test_inchs(int level, char **argv, WINDOW *chrwin, WINDOW *strwin) if (txtwin != stdscr) { wmove(txtwin, txt_y, txt_x); if (winchstr(txtwin, text) != ERR) { - mvwaddchstr(strwin, 0, 5, text); + MvWAddChStr(strwin, 0, 5, text); } wmove(txtwin, txt_y, txt_x); if (winchnstr(txtwin, text, limit) != ERR) { - mvwaddchstr(strwin, 1, 5, text); + MvWAddChStr(strwin, 1, 5, text); } if (mvwinchstr(txtwin, txt_y, txt_x, text) != ERR) { - mvwaddchstr(strwin, 2, 5, text); + MvWAddChStr(strwin, 2, 5, text); } if (mvwinchnstr(txtwin, txt_y, txt_x, text, limit) != ERR) { - mvwaddchstr(strwin, 3, 5, text); + MvWAddChStr(strwin, 3, 5, text); } } else { move(txt_y, txt_x); if (inchstr(text) != ERR) { - mvwaddchstr(strwin, 0, 5, text); + MvWAddChStr(strwin, 0, 5, text); } move(txt_y, txt_x); if (inchnstr(text, limit) != ERR) { - mvwaddchstr(strwin, 1, 5, text); + MvWAddChStr(strwin, 1, 5, text); } if (mvinchstr(txt_y, txt_x, text) != ERR) { - mvwaddchstr(strwin, 2, 5, text); + MvWAddChStr(strwin, 2, 5, text); } if (mvinchnstr(txt_y, txt_x, text, limit) != ERR) { - mvwaddchstr(strwin, 3, 5, text); + MvWAddChStr(strwin, 3, 5, text); } } @@ -266,5 +280,5 @@ main(int argc, char *argv[]) test_inchs(1, argv, chrwin, strwin); endwin(); - return EXIT_SUCCESS; + ExitProgram(EXIT_SUCCESS); }