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:
parent
3efbce959e
commit
f3ac545f7d
1 changed files with 15 additions and 9 deletions
24
src/term.c
24
src/term.c
|
|
@ -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++;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue