/****************************************************************************
- * Copyright (c) 2007-2017,2018 Free Software Foundation, Inc. *
+ * Copyright (c) 2007-2018,2019 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: savescreen.c,v 1.50 2018/01/07 02:24:03 tom Exp $
+ * $Id: savescreen.c,v 1.55 2019/01/20 15:59:28 tom Exp $
*
* Demonstrate save/restore functions from the curses library.
* Thomas Dickey - 2007/7/14
*/
+#define NEED_TIME_H
#include <test.priv.h>
#include <popup_msg.h>
+#include <parse_rgb.h>
#if HAVE_SCR_DUMP
#include <sys/types.h>
#include <sys/stat.h>
-#if TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-# include <sys/time.h>
-# else
-# include <time.h>
-# endif
-#endif
-
#if defined(__hpux)
#define MyMarker 'X'
#else
BaseChar(cchar_t data)
{
wchar_t my_wchar[CCHARW_MAX];
+ wchar_t result = 0;
attr_t my_attr;
short my_pair;
- getcchar(&data, my_wchar, &my_attr, &my_pair, NULL);
- return my_wchar[0];
+ if (getcchar(&data, my_wchar, &my_attr, &my_pair, NULL) == OK)
+ result = my_wchar[0];
+ return result;
}
#endif
init_pair((short) (n + MAX_ANSI), (short) n, (short) n);
}
#if HAVE_TIGETSTR && USE_WIDEC_SUPPORT
- else if (tigetflag("RGB") > 0) {
- int rows = LINES - 1;
- int cols = COLS - 1;
- /* FIXME: test all 3 types of capability */
- int b_max = 255;
- int r_max = 255;
- int g_max = 255;
- int b_delta = (b_max / rows);
- int r_delta = (r_max / cols);
- int g_delta = (g_max / cols);
- int row = 0;
-
- b = 0;
- using_rgb = TRUE;
- while (row++ < rows) {
- int col = 0;
- r = 0;
- g = g_max;
- while (col++ < cols) {
- int color = (((r * (g_max + 1)) + g) * (b_max + 1)
- + b + MAX_ANSI);
-#if HAVE_INIT_EXTENDED_COLOR
- init_extended_pair(pair, color, color);
+ else {
+ int r_max, g_max, b_max;
+
+ if (parse_rgb(&r_max, &g_max, &b_max) > 0) {
+ int rows = LINES - 1;
+ int cols = COLS - 1;
+ int b_delta = (b_max / rows);
+ int r_delta = (r_max / cols);
+ int g_delta = (g_max / cols);
+ int row = 0;
+
+ b = 0;
+ using_rgb = TRUE;
+ while (row++ < rows) {
+ int col = 0;
+ r = 0;
+ g = g_max;
+ while (col++ < cols) {
+ int color = (((r * (g_max + 1)) + g) * (b_max + 1)
+ + b + MAX_ANSI);
+#if USE_EXTENDED_COLOR
+ init_extended_pair(pair, color, color);
#else
- init_pair(pair, color, color);
+ init_pair(pair, color, color);
#endif
- pair++;
- r += r_delta;
- g -= g_delta;
+ pair++;
+ r += r_delta;
+ g -= g_delta;
+ }
+ b += b_delta;
}
- b += b_delta;
}
}
#endif
mvprintw(2, 0, "System colors:\n");
for (n = 0; n < 16; ++n) {
pair = n + MAX_ANSI;
- addch(' ' | COLOR_PAIR(pair));
- addch(' ' | COLOR_PAIR(pair));
+ addch((chtype) (' ' | COLOR_PAIR(pair)));
+ addch((chtype) (' ' | COLOR_PAIR(pair)));
if (((n + 1) % 8) == 0)
addch('\n');
}
chtype attr = A_REVERSE;
chtype ch2 = (altchars ? MyMarker : '#');
if (use_colors) {
- attr |= COLOR_PAIR(color);
+ attr |= (chtype) COLOR_PAIR(color);
}
move(y, x);
AddCh(ch2 | attr);