/****************************************************************************
- * Copyright (c) 1998-2017,2018 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-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 *
#include <ctype.h>
-MODULE_ID("$Id: tty_update.c,v 1.298 2018/05/05 19:11:55 tom Exp $")
+MODULE_ID("$Id: tty_update.c,v 1.300 2019/02/25 21:42:01 tom Exp $")
/*
* This define controls the line-breakout optimization. Every once in a
} else
#endif
if (!SP_PARM->_screen_acs_map[c8]) {
+ /*
+ * If we found no mapping for a given alternate-character set item
+ * in the terminal description, attempt to use the ASCII fallback
+ * code which is populated in the _acs_map[] array. If that did
+ * not correspond to a line-drawing, etc., graphics character, the
+ * array entry would be empty.
+ */
chtype temp = UChar(SP_PARM->_acs_map[c8]);
- RemAttr(attr, A_ALTCHARSET);
- SetChar(my_ch, temp, AttrOf(attr));
+ if (temp) {
+ RemAttr(attr, A_ALTCHARSET);
+ SetChar(my_ch, temp, AttrOf(attr));
+ }
}
/*
} else if (repeat_char != 0 &&
#if USE_WIDEC_SUPPORT
(!SP_PARM->_screen_unicode &&
- ((AttrOf(ntext0) & A_ALTCHARSET) == 0 ||
- (CharOf(ntext0) < ACS_LEN))) &&
+ (CharOf(ntext0) < ((AttrOf(ntext0) & A_ALTCHARSET)
+ ? ACS_LEN
+ : 256))) &&
#endif
runcount > SP_PARM->_rep_cost) {
NCURSES_CH_T temp;