aboutsummaryrefslogtreecommitdiffstats
path: root/src/coding.c
diff options
context:
space:
mode:
authorKenichi Handa1998-07-09 04:33:00 +0000
committerKenichi Handa1998-07-09 04:33:00 +0000
commit826bfb8b08ae740696cfd0c55fb40c6ee9a5d14b (patch)
tree48954547d15b812a891043edf28068b053813dad /src/coding.c
parent973cefd24a2e4c70400ebc0a75257d086d333906 (diff)
downloademacs-826bfb8b08ae740696cfd0c55fb40c6ee9a5d14b.tar.gz
emacs-826bfb8b08ae740696cfd0c55fb40c6ee9a5d14b.zip
(code_convert_string): Count characters again if we
encounter some invalid code while decoding.
Diffstat (limited to 'src/coding.c')
-rw-r--r--src/coding.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/coding.c b/src/coding.c
index 81fda21f1cb..d865bd139bf 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -4433,8 +4433,13 @@ code_convert_string (str, coding, encodep, nocopy)
4433 if (encodep) 4433 if (encodep)
4434 str = make_unibyte_string (buf, len + coding->produced); 4434 str = make_unibyte_string (buf, len + coding->produced);
4435 else 4435 else
4436 str = make_string_from_bytes (buf, len + coding->produced_char, 4436 {
4437 len + coding->produced); 4437 int chars= (coding->fake_multibyte
4438 ? multibyte_chars_in_text (buf + from, coding->produced)
4439 : coding->produced_char);
4440 str = make_multibyte_string (buf, len + chars, len + coding->produced);
4441 }
4442
4438 return str; 4443 return str;
4439} 4444}
4440 4445