X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=test%2Finch_wide.c;h=e44a5f5128604c4dc1c5ee1bdc2ccb8e0869c267;hp=069e8738eeca4703c73330be935173f07ea67fe5;hb=a6ff7e087fd944fd0035075d0bb528e95e498d81;hpb=a1aff38c9421e79f92cd4e8ab0587fdf3806cc28 diff --git a/test/inch_wide.c b/test/inch_wide.c index 069e8738..e44a5f51 100644 --- a/test/inch_wide.c +++ b/test/inch_wide.c @@ -1,5 +1,6 @@ /**************************************************************************** - * Copyright (c) 2007 Free Software Foundation, Inc. * + * Copyright 2019,2020 Thomas E. Dickey * + * Copyright 2007-2010,2017 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 +27,7 @@ * authorization. * ****************************************************************************/ /* - * $Id: inch_wide.c,v 1.4 2007/06/09 21:25:54 tom Exp $ + * $Id: inch_wide.c,v 1.11 2020/02/02 23:34:34 tom Exp $ */ /* int in_wch(cchar_t *wcval); @@ -44,6 +45,7 @@ */ #include +#include #if USE_WIDEC_SUPPORT @@ -59,13 +61,24 @@ Quit(int ch) static int test_inchs(int level, char **argv, WINDOW *chrwin, WINDOW *strwin) { + static const char *help[] = + { + "Test input from screen using inch(), etc., in a moveable viewport.", + "", + "Commands:", + " ESC/^Q - quit", + " h,j,k,l (and arrow-keys) - move viewport", + " w - recur to new window", + " for next input file", + 0 + }; + WINDOW *txtbox = 0; WINDOW *txtwin = 0; FILE *fp; int j; int txt_x = 0, txt_y = 0; int base_y; - int limit; cchar_t ch; cchar_t text[MAX_COLS]; @@ -99,16 +112,18 @@ test_inchs(int level, char **argv, WINDOW *chrwin, WINDOW *strwin) if ((fp = fopen(argv[level], "r")) != 0) { while ((j = fgetc(fp)) != EOF) { - if (waddch(txtwin, j) != OK) { + if (waddch(txtwin, UChar(j)) != OK) { break; } } + fclose(fp); } else { wprintw(txtwin, "Cannot open:\n%s", argv[1]); } - fclose(fp); while (!Quit(j = mvwgetch(txtwin, txt_y, txt_x))) { + int limit; + switch (j) { case KEY_DOWN: case 'j': @@ -148,12 +163,15 @@ test_inchs(int level, char **argv, WINDOW *chrwin, WINDOW *strwin) wnoutrefresh(txtwin); } break; + case HELP_KEY_1: + popup_msg(txtwin, help); + break; default: beep(); break; } - mvwprintw(chrwin, 0, 0, "char:"); + MvWPrintw(chrwin, 0, 0, "char:"); wclrtoeol(chrwin); if (txtwin != stdscr) { @@ -189,7 +207,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; @@ -197,38 +215,38 @@ test_inchs(int level, char **argv, WINDOW *chrwin, WINDOW *strwin) if (txtwin != stdscr) { wmove(txtwin, txt_y, txt_x); if (win_wchstr(txtwin, text) != ERR) { - mvwadd_wchstr(strwin, 0, 5, text); + (void) mvwadd_wchstr(strwin, 0, 5, text); } wmove(txtwin, txt_y, txt_x); if (win_wchnstr(txtwin, text, limit) != ERR) { - mvwadd_wchstr(strwin, 1, 5, text); + (void) mvwadd_wchstr(strwin, 1, 5, text); } if (mvwin_wchstr(txtwin, txt_y, txt_x, text) != ERR) { - mvwadd_wchstr(strwin, 2, 5, text); + (void) mvwadd_wchstr(strwin, 2, 5, text); } if (mvwin_wchnstr(txtwin, txt_y, txt_x, text, limit) != ERR) { - mvwadd_wchstr(strwin, 3, 5, text); + (void) mvwadd_wchstr(strwin, 3, 5, text); } } else { move(txt_y, txt_x); if (in_wchstr(text) != ERR) { - mvwadd_wchstr(strwin, 0, 5, text); + (void) mvwadd_wchstr(strwin, 0, 5, text); } move(txt_y, txt_x); if (in_wchnstr(text, limit) != ERR) { - mvwadd_wchstr(strwin, 1, 5, text); + (void) mvwadd_wchstr(strwin, 1, 5, text); } if (mvin_wchstr(txt_y, txt_x, text) != ERR) { - mvwadd_wchstr(strwin, 2, 5, text); + (void) mvwadd_wchstr(strwin, 2, 5, text); } if (mvin_wchnstr(txt_y, txt_x, text, limit) != ERR) { - mvwadd_wchstr(strwin, 3, 5, text); + (void) mvwadd_wchstr(strwin, 3, 5, text); } } @@ -251,7 +269,7 @@ main(int argc, char *argv[]) setlocale(LC_ALL, ""); if (argc < 2) { - fprintf(stderr, "usage: %s file\n", argv[0]); + fprintf(stderr, "usage: %s file1 [file2 [...]]\n", argv[0]); return EXIT_FAILURE; } @@ -267,7 +285,7 @@ main(int argc, char *argv[]) test_inchs(1, argv, chrwin, strwin); endwin(); - return EXIT_SUCCESS; + ExitProgram(EXIT_SUCCESS); } #else int