1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-06 20:00:46 -08:00

(encode_terminal_code): Fix previous change.

This commit is contained in:
Kenichi Handa 1999-02-05 05:40:27 +00:00
parent 3efbce959e
commit f3ac545f7d

View file

@ -815,6 +815,7 @@ encode_terminal_code (src, dst, src_len, dst_len, consumed)
int len;
register int tlen = GLYPH_TABLE_LENGTH;
register Lisp_Object *tbase = GLYPH_TABLE_BASE;
int result;
struct coding_system *coding;
coding = (CODING_REQUIRE_ENCODING (&terminal_coding)
@ -857,19 +858,24 @@ encode_terminal_code (src, dst, src_len, dst_len, consumed)
buf = GLYPH_STRING (tbase, g);
}
encode_coding (coding, buf, dst, len, dst_end - dst);
result = encode_coding (coding, buf, dst, len, dst_end - dst);
len -= coding->consumed;
dst += coding->produced;
if (result == CODING_FINISH_INSUFFICIENT_DST
|| (result == CODING_FINISH_INSUFFICIENT_SRC
&& len > dst_end - 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. */
break;
if (len > 0)
{
if (len > dst_end - 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 start from the same
glyph. */
break;
buf += len;
while (len--) *dst++ = *buf++;
/* This is the case that a code of the range 0200..0237
exists in buf. We must just write out such a code. */
buf += coding->consumed;
while (len--)
*dst++ = *buf++;
}
}
src++;