# HG changeset patch # User Kenichi Handa # Date 1140409812 0 # Node ID 1f534e44accaf403cc38be934b107841c7902037 # Parent 3f03e10f330e4a27d0cfbcc312a8f49dd5996f3c (produce_glyphs): Sync to HEAD. diff -r 3f03e10f330e -r 1f534e44acca src/term.c --- a/src/term.c Mon Feb 20 04:30:00 2006 +0000 +++ b/src/term.c Mon Feb 20 04:30:12 2006 +0000 @@ -1777,13 +1777,26 @@ } else if (CHAR_BYTE8_P (it->c)) { - /* We must send the raw 8-bit byte as is to the terminal. - Although there's no way to know how many columns it occupies - on a screen, it is a good assumption that a single byte code - has 1-column width. */ - it->pixel_width = it->nglyphs = 1; - if (it->glyph_row) - append_glyph (it); + if (unibyte_display_via_language_environment + && (it->c >= 0240)) + { + it->char_to_display = unibyte_char_to_multibyte (it->c); + it->pixel_width = CHAR_WIDTH (it->char_to_display); + it->nglyphs = it->pixel_width; + if (it->glyph_row) + append_glyph (it); + } + else + { + /* Coming here means that it->c is from display table, thus + we must send the raw 8-bit byte as is to the terminal. + Although there's no way to know how many columns it + occupies on a screen, it is a good assumption that a + single byte code has 1-column width. */ + it->pixel_width = it->nglyphs = 1; + if (it->glyph_row) + append_glyph (it); + } } else {