Mercurial > emacs
changeset 38518:883da5f3dbac
(code_convert_region): Handle the multibyte case if
decoding ends with CODING_FINISH_INSUFFICIENT_SRC.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Mon, 23 Jul 2001 09:26:46 +0000 |
parents | 42f3fecfa483 |
children | 200c049178cc |
files | src/coding.c |
diffstat | 1 files changed, 21 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/coding.c Sun Jul 22 10:53:30 2001 +0000 +++ b/src/coding.c Mon Jul 23 09:26:46 2001 +0000 @@ -1,6 +1,7 @@ /* Coding system handler (conversion, detection, and etc). Copyright (C) 1995, 1997, 1998 Electrotechnical Laboratory, JAPAN. Licensed to the Free Software Foundation. + Copyright (C) 2001 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -5615,10 +5616,26 @@ { /* The source text ends in invalid codes. Let's just make them valid buffer contents, and finish conversion. */ - inserted += len_byte; - inserted_byte += len_byte; - while (len_byte--) - *dst++ = *src++; + if (multibyte_p) + { + unsigned char *start = dst; + + inserted += len_byte; + while (len_byte--) + { + int c = *src++; + dst += CHAR_STRING (c, dst); + } + + inserted_byte += dst - start; + } + else + { + inserted += len_byte; + inserted_byte += len_byte; + while (len_byte--) + *dst++ = *src++; + } break; } if (result == CODING_FINISH_INTERRUPT)