]> git.eshelyaron.com Git - emacs.git/commitdiff
Include "buffer.h" and "character.h".
authorKenichi Handa <handa@m17n.org>
Fri, 1 Mar 2002 01:48:37 +0000 (01:48 +0000)
committerKenichi Handa <handa@m17n.org>
Fri, 1 Mar 2002 01:48:37 +0000 (01:48 +0000)
(encode_terminal_code): Adjusted for the new code-conversion API.
(write_glyphs): Likewise.
(produce_glyphs): Call CHAR_WIDTH instead of CHARSET_WIDTH.

src/term.c

index 19a1afa8c1223ff6ced13c018d621c3e5b9a3c00..9a66b6b7e255017b2557baebacc17c9b447d9e60 100644 (file)
@@ -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)