/****************************************************************************
- * Copyright (c) 2006 Free Software Foundation, Inc. *
+ * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2006-2012,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 *
* authorization. *
****************************************************************************/
/*
- * $Id: chgat.c,v 1.5 2006/07/15 22:48:27 tom Exp $
+ * $Id: chgat.c,v 1.19 2020/02/02 23:34:34 tom Exp $
*
* test-driver for chgat/wchgat/mvchgat/mvwchgat
*/
#include <test.priv.h>
+#include <popup_msg.h>
-#ifdef HAVE_CHGAT
+#if HAVE_CHGAT
#define SHOW(n) ((n) == ERR ? "ERR" : "OK")
#define COLOR_DEFAULT (-1)
#endif
typedef struct {
- unsigned c;
- unsigned v;
- int pair, attr;
+ size_t c;
+ size_t v;
+ short pair;
+ attr_t attr;
int count;
int ch;
- char *c_msg;
- char *v_msg;
+ const char *c_msg;
+ const char *v_msg;
int y_val;
int x_val;
int y_beg, x_beg;
int y_max, x_max;
} STATUS;
-static char *
-color_params(unsigned state, int *pair)
+static const char *
+color_params(size_t state, short *pair)
{
/* *INDENT-OFF* */
static struct {
- int pair;
- int fg, bg;
- char *msg;
+ short pair;
+ short fg, bg;
+ const char *msg;
} table[] = {
{ 0, COLOR_DEFAULT, COLOR_DEFAULT, "default" },
{ 1, COLOR_RED, COLOR_BLACK, "red/black" },
};
/* *INDENT-ON* */
- static bool first = TRUE;
- char *result = 0;
+ const char *result = 0;
if (has_colors()) {
+ static bool first = TRUE;
+
if (first) {
- unsigned n;
+ size_t n;
start_color();
for (n = 0; n < SIZEOF(table); ++n) {
return result;
}
-static char *
-video_params(unsigned state, int *attr)
+static const char *
+video_params(size_t state, attr_t *attr)
{
/* *INDENT-OFF* */
static struct {
- int attr;
- char *msg;
+ attr_t attr;
+ const char *msg;
} table[] = {
- { A_NORMAL, "normal" },
- { A_BOLD, "bold" },
- { A_REVERSE, "reverse" },
- { A_UNDERLINE, "underline" },
- { A_BLINK, "blink" },
+ { WA_NORMAL, "normal" },
+ { WA_BOLD, "bold" },
+ { WA_REVERSE, "reverse" },
+ { WA_UNDERLINE, "underline" },
+ { WA_BLINK, "blink" },
};
/* *INDENT-ON* */
- char *result = 0;
+ const char *result = 0;
if (state < SIZEOF(table)) {
*attr = table[state].attr;
fill_window(WINDOW *win)
{
int y, x;
+ int y0 = -1, x0 = -1;
getyx(win, y, x);
wmove(win, 0, 0);
while (waddstr(win, "0123456789 abcdefghijklmnopqrstuvwxyz ") != ERR) {
+ int y1, x1;
+ getyx(win, y1, x1);
+ if (y1 == y0 && x1 == x0)
+ break;
+ x0 = x1;
+ y0 = y1;
}
wmove(win, y, x);
}
delwin(win1);
touchwin(win);
} else {
+ if (win1 != 0)
+ delwin(win1);
beep();
}
}
static void
show_help(WINDOW *win)
{
- static const char *table[] =
+ static const char *msgs[] =
{
"Basic commands:"
,"Use h/j/k/l or arrow keys to move the cursor."
,"= resets count to zero."
,"- negates count."
,"? shows this help-window"
- ,""
- ,""
+ ,0
};
- int y_max, x_max;
- int row;
-
- getmaxyx(win, y_max, x_max);
- for (row = 0; row < (int) SIZEOF(table) && row < y_max; ++row) {
- mvwprintw(win, row, 0, "%.*s", x_max, table[row]);
- }
- while (wgetch(win) != 'q')
- beep();
+ popup_msg(win, msgs);
}
static void
sp->count = -(sp->count);
show_status(win, sp);
break;
- case '?':
- do_subwindow(win, sp, show_help);
+ case HELP_KEY_1:
+ show_help(win);
break;
default:
if (isdigit(sp->ch)) {