X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=test%2Ftestscanw.c;h=251c464d763ce372f4433aaf61adc5e70ce93513;hp=79589c20386d76d31a886080672e8e255e1861b3;hb=HEAD;hpb=027ae42953e3186daed8f3882da73de48291b606 diff --git a/test/testscanw.c b/test/testscanw.c index 79589c20..415250c6 100644 --- a/test/testscanw.c +++ b/test/testscanw.c @@ -1,5 +1,6 @@ /**************************************************************************** - * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc. * + * Copyright 2019-2020,2022 Thomas E. Dickey * + * Copyright 1998-2002,2006 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 * @@ -29,15 +30,49 @@ * Date: 1997/03/17 * From: bayern@morpheus.cis.yale.edu * - * $Id: testscanw.c,v 1.11 2006/04/01 19:08:03 tom Exp $ + * $Id: testscanw.c,v 1.15 2022/12/11 00:10:29 tom Exp $ */ #include +static void +usage(int ok) +{ + static const char *msg[] = + { + "Usage: testscanw [options] tokens" + ,"" + ,"Tokens are integers (starting line-number) or k+, k- to turn keypad on/off." + ,"" + ,USAGE_COMMON + }; + size_t n; + + for (n = 0; n < SIZEOF(msg); n++) + fprintf(stderr, "%s\n", msg[n]); + + ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE); +} +/* *INDENT-OFF* */ +VERSION_COMMON() +/* *INDENT-ON* */ + int main(int argc, char *argv[]) { long badanswer = 1; long *response = &badanswer; + int ch; + + while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) { + switch (ch) { + case OPTS_VERSION: + show_version(argv); + ExitProgram(EXIT_SUCCESS); + default: + usage(ch == OPTS_USAGE); + /* NOTREACHED */ + } + } setlocale(LC_ALL, ""); @@ -47,14 +82,16 @@ main(int argc, char *argv[]) echo(); #if 0 - trace(TRACE_UPDATE | TRACE_CALLS); + curses_trace(TRACE_UPDATE | TRACE_CALLS); #endif - while (argc > 1) { - if (isdigit(UChar(*argv[1]))) - move(atoi(argv[1]), 0); - else if (!strcmp(argv[1], "-k")) + while (optind < argc) { + char *token = argv[optind++]; + if (isdigit(UChar(*token))) + move(atoi(token), 0); + else if (!strcmp(token, "k+")) keypad(stdscr, TRUE); - argc--, argv++; + else if (!strcmp(token, "k-")) + keypad(stdscr, FALSE); } while (badanswer) {