# HG changeset patch # User Kenichi Handa # Date 1014947317 0 # Node ID 1953d0d56cd727e7b878540a05275197de33f49a # Parent ee2122ab4d5b3f4ba9d7c201879de55877fc9ab8 Include "buffer.h" and "character.h". (encode_terminal_code): Adjusted for the new code-conversion API. (write_glyphs): Likewise. (produce_glyphs): Call CHAR_WIDTH instead of CHARSET_WIDTH. diff -r ee2122ab4d5b -r 1953d0d56cd7 src/term.c --- a/src/term.c Fri Mar 01 01:48:16 2002 +0000 +++ b/src/term.c Fri Mar 01 01:48:37 2002 +0000 @@ -29,6 +29,8 @@ #include "termchar.h" #include "termopts.h" #include "lisp.h" +#include "buffer.h" +#include "character.h" #include "charset.h" #include "coding.h" #include "keyboard.h" @@ -872,12 +874,13 @@ } } - result = encode_coding (coding, buf, dst, len, dst_end - dst); + coding->source = buf; + coding->destination = dst; + coding->dst_bytes = dst_end - dst; + encode_coding_object (coding, Qnil, 0, 0, 1, len, Qnil); len -= coding->consumed; dst += coding->produced; - if (result == CODING_FINISH_INSUFFICIENT_DST - || (result == CODING_FINISH_INSUFFICIENT_SRC - && len > dst_end - dst)) + if (coding->result == CODING_RESULT_INSUFFICIENT_DST) /* The remaining output buffer is too short. We must break the loop here without increasing SRC so that the next call of this function starts from the same glyph. */ @@ -981,8 +984,10 @@ if (CODING_REQUIRE_FLUSHING (&terminal_coding)) { terminal_coding.mode |= CODING_MODE_LAST_BLOCK; - encode_coding (&terminal_coding, "", conversion_buffer, - 0, conversion_buffer_size); + terminal_coding.source = (unsigned char *) ""; + terminal_coding.destination = conversion_buffer; + terminal_coding.dst_bytes = conversion_buffer_size; + encode_coding_object (&terminal_coding, Qnil, 0, 0, 0, 0, Qnil); if (terminal_coding.produced > 0) { fwrite (conversion_buffer, 1, terminal_coding.produced, stdout); @@ -1713,13 +1718,7 @@ } else { - /* A multi-byte character. The display width is fixed for all - characters of the set. Some of the glyphs may have to be - ignored because they are already displayed in a continued - line. */ - int charset = CHAR_CHARSET (it->c); - - it->pixel_width = CHARSET_WIDTH (charset); + it->pixel_width = CHAR_WIDTH (it->c); it->nglyphs = it->pixel_width; if (it->glyph_row)