diff --git a/lib/widget.js b/lib/widget.js index 269f656..c413996 100644 --- a/lib/widget.js +++ b/lib/widget.js @@ -1080,21 +1080,18 @@ Screen.prototype.draw = function(start, end) { // supports UTF8, but I imagine it's unlikely. // Maybe remove !this.tput.unicode check, however, // this seems to be the way ncurses does it. - // if (this.tput.strings.enter_alt_charset_mode && !this.tput.brokenACS) { - if (this.tput.strings.enter_alt_charset_mode) { - if (!this.tput.brokenACS) { - if (this.tput.acscr[ch]) { - if (acs) { - ch = this.tput.acscr[ch]; - } else { - ch = this.tput.smacs() - + this.tput.acscr[ch]; - acs = true; - } - } else if (acs) { - ch = this.tput.rmacs() + ch; - acs = false; + if (this.tput.strings.enter_alt_charset_mode && !this.tput.brokenACS) { + if (this.tput.acscr[ch]) { + if (acs) { + ch = this.tput.acscr[ch]; + } else { + ch = this.tput.smacs() + + this.tput.acscr[ch]; + acs = true; } + } else if (acs) { + ch = this.tput.rmacs() + ch; + acs = false; } } else { // U8 is not consistently correct. Some terminfo's @@ -1104,8 +1101,7 @@ Screen.prototype.draw = function(start, end) { // are it does not support UTF8. This is probably // the "safest" way to do this. Should fix things // like sun-color. - // if ((!this.unicode || this.tput.numbers.U8 !== 1) && ch > '~') { - if ((!this.unicode || this.tput.numbers.U8 !== 1) && this.tput.utoa[ch]) { + if ((!this.tput.unicode || this.tput.numbers.U8 !== 1) && ch > '~') { ch = this.tput.utoa[ch] || '?'; } }