/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2008,2009 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 *
Author: Eric S. Raymond <esr@snark.thyrsus.com> 1993
Thomas E. Dickey (beginning revision 1.27 in 1996).
-$Id: ncurses.c,v 1.336 2009/01/25 00:39:14 tom Exp $
+$Id: ncurses.c,v 1.343 2009/07/30 09:13:37 tom Exp $
***************************************************************************/
*target = 0;
}
+#if USE_LIBPANEL
static void
make_fullwidth_digit(cchar_t *target, int digit)
{
source[1] = 0;
setcchar(target, source, A_NORMAL, 0, 0);
}
+#endif
static int
wGet_wchar(WINDOW *win, wint_t *result)
addstr("Shelling out...");
def_prog_mode();
endwin();
+#ifdef __MINGW32__
+ system("cmd.exe");
+#else
system("sh");
+#endif
if (message)
addstr("returned from shellout.\n");
refresh();
{
unsigned need = (level + 1) * 2;
- assert(level < COLS);
+ assert(level < (unsigned) COLS);
if (winstack == 0) {
len_winstack = 20;
wgetch_test(0, stdscr, delay);
forget_boxes();
finish_getch_test();
+ slk_clear();
}
#if USE_WIDEC_SUPPORT
wget_wch_test(0, stdscr, delay);
forget_boxes();
finish_getch_test();
+ slk_clear();
}
#endif
*at_code = 0;
break;
case 'V':
- if (*at_code == 1)
+ if (*at_code == 0)
*at_code = SIZEOF(attrs_to_cycle) - 1;
else
*at_code -= 1;
static cchar_t *
merge_wide_attr(cchar_t *dst, const cchar_t *src, attr_t attr, short pair)
{
- int count = getcchar(src, NULL, NULL, NULL, 0);
- wchar_t *wch = 0;
- attr_t ignore_attr;
- short ignore_pair;
+ int count;
*dst = *src;
- if (count > 0) {
- if ((wch = typeMalloc(wchar_t, (unsigned) count + 1)) != 0) {
- if (getcchar(src, wch, &ignore_attr, &ignore_pair, 0) != ERR) {
- attr |= (ignore_attr & A_ALTCHARSET);
- setcchar(dst, wch, attr, pair, 0);
- }
- free(wch);
+ do {
+ TEST_CCHAR(src, count, {
+ attr |= (test_attrs & A_ALTCHARSET);
+ setcchar(dst, test_wch, attr, pair, NULL);
}
- }
+ , {
+ ;
+ });
+ } while (0);
return dst;
}
* the display.
*/
if (wcwidth(code) == 0)
- addch(space | A_REVERSE);
+ addch(space | (A_REVERSE ^ attr) | COLOR_PAIR(pair));
/*
* This could use add_wch(), but is done for comparison with the
* normal 'f' test (and to make a test-case for echo_wchar()).