Author: Eric S. Raymond <esr@snark.thyrsus.com> 1993
Thomas E. Dickey (beginning revision 1.27 in 1996).
-$Id: ncurses.c,v 1.377 2012/09/08 23:58:58 tom Exp $
+$Id: ncurses.c,v 1.382 2012/12/09 00:56:24 tom Exp $
***************************************************************************/
static void main_menu(bool);
+static void
+failed(const char *s)
+{
+ perror(s);
+ endwin();
+ ExitProgram(EXIT_FAILURE);
+}
+
/* The behavior of mvhline, mvvline for negative/zero length is unspecified,
* though we can rely on negative x/y values to stop the macro.
*/
len_winstack = need;
winstack = typeRealloc(WINSTACK, len_winstack, winstack);
}
+ if (!winstack)
+ failed("remember_boxes");
winstack[level].text = txt_win;
winstack[level].frame = box_win;
}
free(result);
result = 0;
}
+ } else {
+ failed("wcstos");
}
}
return result;
} else if (c == 'g') {
waddstr(win, "getstr test: ");
echo();
- code = wgetn_wstr(win, wint_buf, sizeof(wint_buf) - 1);
+ code = wgetn_wstr(win, wint_buf, BUFSIZ - 1);
noecho();
if (code == ERR) {
wprintw(win, "wgetn_wstr returns an error.");
short pair;
wchar_t wch[10];
+ memset(&ch, 0, sizeof(ch));
if (getbkgrnd(&ch) != ERR) {
if (getcchar(&ch, wch, &attr, &pair, 0) != ERR) {
result = attr;
bool opt_wide = FALSE;
bool opt_nums = FALSE;
bool opt_xchr = FALSE;
- wchar_t buffer[10];
+ wchar_t buffer[80];
WINDOW *helpwin;
if (COLORS * COLORS == COLOR_PAIRS) {
if (row >= 0 && move(row, col) != ERR) {
init_pair(pair, InxToFG(i), InxToBG(i));
- color_set(pair, NULL);
+ (void) color_set(pair, NULL);
if (opt_acsc)
attr_on((attr_t) A_ALTCHARSET, NULL);
if (opt_bold)
outerbox(ul, lr, TRUE);
refresh();
- wrefresh(rwindow);
+ if (rwindow != 0)
+ wrefresh(rwindow);
move(0, 0);
clrtoeol();
switch (c) {
case CTRL('C'):
if ((neww = typeCalloc(FRAME, 1)) == 0) {
+ failed("acs_and_scroll");
goto breakout;
}
if ((neww->wind = getwindow()) == (WINDOW *) 0) {
+ failed("acs_and_scroll");
free(neww);
goto breakout;
}
neww->wind = getwin(fp);
wrefresh(neww->wind);
+ } else {
+ failed("acs_and_scroll");
}
(void) fclose(fp);
}
for (n = 0; t_tbl[n].name != 0; n++)
need += strlen(t_tbl[n].name) + 2;
buf = typeMalloc(char, need);
+ if (!buf)
+ failed("tracetrace");
}
sprintf(buf, "0x%02x = {", tlevel);
if (tlevel == 0) {
set_form_sub(f, derwin(w, rows, cols, 1, 2));
box(w, 0, 0);
keypad(w, TRUE);
+ if (post_form(f) != E_OK)
+ wrefresh(w);
}
-
- if (post_form(f) != E_OK)
- wrefresh(w);
}
static void
#ifdef NCURSES_VERSION
case 'a':
assumed_colors = TRUE;
- sscanf(optarg, "%d,%d", &default_fg, &default_bg);
+ switch (sscanf(optarg, "%d,%d", &default_fg, &default_bg)) {
+ case 0:
+ default_fg = COLOR_WHITE;
+ /* FALLTHRU */
+ case 1:
+ default_bg = COLOR_BLACK;
+ break;
+ }
break;
case 'd':
default_colors = TRUE;
if (can_change_color()) {
short cp;
all_colors = typeMalloc(RGB_DATA, (unsigned) max_colors);
+ if (!all_colors)
+ failed("all_colors");
for (cp = 0; cp < max_colors; ++cp) {
color_content(cp,
&all_colors[cp].red,