#include <curses.priv.h>
#include <ctype.h>
-MODULE_ID("$Id: lib_addch.c,v 1.118 2009/04/18 23:53:04 tom Exp $")
+MODULE_ID("$Id: lib_addch.c,v 1.121 2009/08/04 00:20:09 tom Exp $")
static const NCURSES_CH_T blankchar = NewChar(BLANK_TEXT);
/*
* Build up multibyte characters until we have a wide-character.
*/
- if_WIDEC({
#if NCURSES_SP_FUNCS
- SCREEN *sp = _nc_screen_of(win);
+#define DeriveSP() SCREEN *sp = _nc_screen_of(win);
+#else
+#define DeriveSP() /*nothing */
#endif
+ if_WIDEC({
+ DeriveSP();
if (WINDOW_EXT(win, addch_used) != 0 || !Charable(ch)) {
int len = _nc_build_wch(win, CHREF(ch));
attr_t attr = AttrOf(ch);
/* handle EILSEQ (i.e., when len >= -1) */
- if (is8bits(CharOf(ch))) {
+ if (len == -1 && is8bits(CharOf(ch))) {
int rc = OK;
const char *s = NCURSES_SP_NAME(unctrl)
(NCURSES_SP_ARGx (chtype) CharOf(ch));
switch (t) {
case '\t':
#if USE_REENTRANT
- tabsize = sp->_TABSIZE;
+ tabsize = *ptrTabsize(sp);
#else
tabsize = TABSIZE;
#endif