libncurses: Import https://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.5.tar.gz changes
Change-Id: I3433d30ca01359fd2e3623ede96b531f0b39cbfa
Signed-off-by: micky387 <mickaelsaibi@free.fr>
diff --git a/test/lrtest.c b/test/lrtest.c
index da12034..0e609d0 100644
--- a/test/lrtest.c
+++ b/test/lrtest.c
@@ -1,5 +1,6 @@
/****************************************************************************
- * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. *
+ * Copyright 2019-2020,2022 Thomas E. Dickey *
+ * Copyright 1998-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 *
@@ -34,7 +35,7 @@
* This can't be part of the ncurses test-program, because ncurses rips off the
* bottom line to do labels.
*
- * $Id: lrtest.c,v 1.22 2010/05/01 19:11:55 tom Exp $
+ * $Id: lrtest.c,v 1.29 2022/12/10 23:44:18 tom Exp $
*/
#include <test.priv.h>
@@ -81,10 +82,28 @@
}
}
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: lrtest [options]"
+ ,""
+ ,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 GCC_UNUSED,
- char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
static MARK marks[] =
{
@@ -96,6 +115,20 @@
{1, 0, 1, 1, 1, '*' | A_REVERSE},
{2, 0, 1, 1, 1, '*' | A_REVERSE}
};
+ 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 */
+ }
+ }
+ if (optind < argc)
+ usage(FALSE);
setlocale(LC_ALL, "");
@@ -131,7 +164,7 @@
}
for (;;) {
- int ch;
+ int c2;
unsigned n;
box(stdscr, 0, 0);
@@ -139,21 +172,21 @@
show(&marks[n]);
}
- if ((ch = getch()) > 0) {
- if (ch == 'q')
+ if ((c2 = getch()) > 0) {
+ if (c2 == 'q')
break;
- else if (ch == 's')
+ else if (c2 == 's')
nodelay(stdscr, FALSE);
- else if (ch == ' ')
+ else if (c2 == ' ')
nodelay(stdscr, TRUE);
#ifdef TRACE
- else if (ch == 'T')
- trace(0);
- else if (ch == 't')
- trace(TRACE_CALLS | TRACE_ICALLS | TRACE_UPDATE);
+ else if (c2 == 'T')
+ curses_trace(0);
+ else if (c2 == 't')
+ curses_trace(TRACE_CALLS | TRACE_ICALLS | TRACE_UPDATE);
#endif
#ifdef KEY_RESIZE
- else if (ch == KEY_RESIZE) {
+ else if (c2 == KEY_RESIZE) {
for (n = 0; n < SIZEOF(marks); n++) {
if (marks[n].mode == 0) { /* moving along x-direction */
if (marks[n].y)
@@ -174,8 +207,7 @@
refresh();
}
- curs_set(1);
- endwin();
+ stop_curses();
ExitProgram(EXIT_SUCCESS);
}