/****************************************************************************
- * Copyright (c) 2017 Free Software Foundation, Inc. *
+ * Copyright 2018-2020,2022 Thomas E. Dickey *
+ * Copyright 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: extended_color.c,v 1.9 2017/04/02 14:30:26 tom Exp $
+ * $Id: extended_color.c,v 1.20 2022/12/10 22:28:50 tom Exp $
*/
#include <test.priv.h>
-#if HAVE_INIT_EXTENDED_COLOR
+#if USE_EXTENDED_COLOR
#define SHOW(n) ((n) == ERR ? "ERR" : "OK")
+#if USE_SP_FUNCS
static bool opt_s = FALSE;
+#define if_opt_s(a,b) (opt_s ? (a) : (b))
+#else
+#define if_opt_s(a,b) (b)
+#endif
static void
failed(const char *name)
{
int i, f, b;
- if (opt_s) {
- i = extended_pair_content_sp(sp, pair, &f, &b);
- } else {
- i = extended_pair_content(0, &f, &b);
- }
+ (void) sp;
+ i = if_opt_s(extended_pair_content_sp(sp, pair, &f, &b),
+ extended_pair_content(0, &f, &b));
if (i != OK)
failed("pair_content");
printw("pair %d contains (%d,%d)\n", pair, f, b);
do_init_pair(SCREEN *sp, int pair, int fg, int bg)
{
int i;
- if (opt_s) {
- i = init_extended_pair_sp(sp, pair, fg, bg);
- } else {
- i = init_extended_pair(pair, fg, bg);
- }
+
+ (void) sp;
+ i = if_opt_s(init_extended_pair_sp(sp, pair, fg, bg),
+ init_extended_pair(pair, fg, bg));
if (i != OK)
failed("init_pair");
}
{
int r, g, b;
int i;
- if (opt_s) {
- i = extended_color_content_sp(sp, color, &r, &g, &b);
- } else {
- i = extended_color_content(color, &r, &g, &b);
- }
+
+ (void) sp;
+ i = if_opt_s(extended_color_content_sp(sp, color, &r, &g, &b),
+ extended_color_content(color, &r, &g, &b));
+ if (i != OK)
+ failed("color_content");
r = (adjust + 1000 + r) % 1000;
g = (adjust + 1000 + g) % 1000;
b = (adjust + 1000 + b) % 1000;
- if (opt_s) {
- i = init_extended_color_sp(sp, color, r, g, b);
- } else {
- i = init_extended_color(color, r, g, b);
- }
+ i = if_opt_s(init_extended_color_sp(sp, color, r, g, b),
+ init_extended_color(color, r, g, b));
if (i != OK)
failed("init_color");
}
{
int r, g, b;
int i;
- if (opt_s) {
- i = extended_color_content_sp(sp, color, &r, &g, &b);
- } else {
- i = extended_color_content(color, &r, &g, &b);
- }
+
+ (void) sp;
+ i = if_opt_s(extended_color_content_sp(sp, color, &r, &g, &b),
+ extended_color_content(color, &r, &g, &b));
wmove(stdscr, y, x);
if (i == OK) {
printw("%-8s %3d/%3d/%3d", name, r, g, b);
}
static void
-usage(void)
+usage(int ok)
{
static const char *tbl[] =
{
- "Usage: extended_color",
- "",
- "Options:",
- " -s use sp-funcs",
- NULL
+ "Usage: extended_color"
+ ,""
+ ,USAGE_COMMON
+ ,"Options:"
+ ," -s use sp-funcs"
};
size_t n;
for (n = 0; n < SIZEOF(tbl); ++n) {
fprintf(stderr, "%s\n", tbl[n]);
}
- ExitProgram(EXIT_FAILURE);
+ 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[])
{
+ int ch;
int i;
SCREEN *sp;
- while ((i = getopt(argc, argv, "s")) != -1) {
- switch (i) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "s")) != -1) {
+ switch (ch) {
+#if USE_SP_FUNCS
case 's':
opt_s = TRUE;
break;
+#endif
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
+ usage(ch == OPTS_USAGE);
/* NOTREACHED */
}
}
+ setlocale(LC_ALL, "");
slk_init(1);
sp = newterm(NULL, stdout, stdin);
cbreak();
printw("Drawing soft-key tabs with pair 2\n");
slk_attrset(A_BOLD); /* reverse-video is hard to see */
- if (opt_s) {
- extended_slk_color_sp(sp, 2);
- } else {
- extended_slk_color(2);
- }
+ (void) if_opt_s(extended_slk_color_sp(sp, 2),
+ extended_slk_color(2));
for (i = 1; i <= 8; ++i) {
char temp[80];
- sprintf(temp, "(SLK-%d)", i);
+ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) "(SLK-%d)", i);
slk_set(i, temp, 0);
}
slk_touch();
slk_noutrefresh();
- if (opt_s ? can_change_color_sp(sp) : can_change_color()) {
+ i = if_opt_s(can_change_color_sp(sp),
+ can_change_color());
+ if (i) {
do_color_set("Default Colors", 0);
printw("Press any key to stop...\n");
nodelay(stdscr, TRUE);