From: Kenichi Handa Date: Fri, 1 Mar 2002 01:48:37 +0000 (+0000) Subject: Include "buffer.h" and "character.h". X-Git-Tag: emacs-pretest-23.0.90~8295^2~1864^2~990 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=9332ea0315918e91b17b1deb619a5503468ac1f7;p=emacs.git 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 --git a/src/term.c b/src/term.c index 19a1afa8c12..9a66b6b7e25 100644 --- a/src/term.c +++ b/src/term.c @@ -29,6 +29,8 @@ Boston, MA 02111-1307, USA. */ #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 @@ encode_terminal_code (src, dst, src_len, dst_len, consumed) } } - 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 @@ write_glyphs (string, len) 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 @@ produce_glyphs (it) } 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)