X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=test%2Flrtest.c;h=c47bb4aacbf309f0249c0923bd6479b764d5d3ae;hp=fb99641117ce5f47e3753cefffcc202fb2e65b84;hb=55ccd2b959766810cf7db8d1c4462f338ce0afc8;hpb=0eb88fc5281804773e2a0c7a488a4452463535ce diff --git a/test/lrtest.c b/test/lrtest.c index fb996411..c47bb4aa 100644 --- a/test/lrtest.c +++ b/test/lrtest.c @@ -1,16 +1,16 @@ /* * Test lower-right-hand corner access * - * by Eric S. Raymond + * originally by Eric S. Raymond , written for animation + * and resizing -T.Dickey * * This can't be part of the ncurses test-program, because ncurses rips off the * bottom line to do labels. * - * $Id: lrtest.c,v 0.14 1999/10/23 19:44:35 tom Exp $ + * $Id: lrtest.c,v 1.20 2004/08/07 16:08:01 tom Exp $ */ #include -#include typedef struct { int y, x, mode, dir, inc; @@ -22,7 +22,7 @@ typedef struct { * really write to all positions properly. */ static void -show(MARK * m) +show(MARK *m) { mvaddch(m->y, m->x, m->value); if (m->mode == 0) { /* along the x-direction */ @@ -56,8 +56,8 @@ show(MARK * m) int main( - int argc GCC_UNUSED, - char *argv[]GCC_UNUSED) + int argc GCC_UNUSED, + char *argv[]GCC_UNUSED) { static MARK marks[] = { @@ -70,6 +70,8 @@ main( {2, 0, 1, 1, 1, '*' | A_REVERSE} }; + setlocale(LC_ALL, ""); + initscr(); noecho(); cbreak(); @@ -83,8 +85,8 @@ main( move(LINES / 2 - 1, 4); if (!(has_ic() /* see PutCharLR() */ - || auto_right_margin - || (enter_am_mode && exit_am_mode))) { + || auto_right_margin + || (enter_am_mode && exit_am_mode))) { addstr("Your terminal lacks the capabilities needed to address the\n"); move(LINES / 2, 4); addstr("lower-right-hand corner of the screen.\n"); @@ -103,7 +105,7 @@ main( unsigned n; box(stdscr, 0, 0); - for (n = 0; n < sizeof(marks) / sizeof(marks[0]); n++) { + for (n = 0; n < SIZEOF(marks); n++) { show(&marks[n]); } @@ -114,19 +116,37 @@ main( nodelay(stdscr, FALSE); else if (ch == ' ') nodelay(stdscr, TRUE); +#ifdef TRACE + else if (ch == 'T') + trace(0); + else if (ch == 't') + trace(TRACE_CALLS | TRACE_ICALLS | TRACE_UPDATE); +#endif #ifdef KEY_RESIZE else if (ch == KEY_RESIZE) { + for (n = 0; n < SIZEOF(marks); n++) { + if (marks[n].mode == 0) { /* moving along x-direction */ + if (marks[n].y) + marks[n].y = LINES - 1; + } else { + if (marks[n].x) + marks[n].x = COLS - 1; + } + } + flash(); erase(); + wrefresh(curscr); goto restart; } #endif } napms(50); + refresh(); } curs_set(1); endwin(); - return 0; + ExitProgram(EXIT_SUCCESS); } /* lrtest.c ends here */