Mercurial > emacs
diff src/term.c @ 23338:0a2b76b09162
(encode_terminal_code): Handle raw 8-bit codes correctly.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Mon, 28 Sep 1998 11:52:53 +0000 |
parents | d40f9a8d7779 |
children | e81f007b15fa |
line wrap: on
line diff
--- a/src/term.c Mon Sep 28 11:03:36 1998 +0000 +++ b/src/term.c Mon Sep 28 11:52:53 1998 +0000 @@ -858,13 +858,19 @@ } encode_coding (coding, buf, dst, len, dst_end - dst); - if (coding->consumed < len) - /* We get a carryover because 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; + len -= coding->consumed; dst += coding->produced; + 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++; + } } src++; }