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)