Mercurial > emacs
changeset 88391:1953d0d56cd7
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.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Fri, 01 Mar 2002 01:48:37 +0000 |
parents | ee2122ab4d5b |
children | 884fb2871f30 |
files | src/term.c |
diffstat | 1 files changed, 12 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- 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)