From 76b7fded09728852167e48f9f0c00a46567856a5 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Wed, 19 Mar 2003 23:36:15 +0000 Subject: [PATCH] (ccl-decode-mule-utf-8): Fix a bug of invalid 5 to 6 bytes sequence. --- lisp/ChangeLog | 5 +++++ lisp/international/utf-8.el | 26 ++++++++++++++------------ 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 47fbc67b565..e8be3fdcb80 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2003-03-20 Kenichi Handa + + * international/utf-8.el (ccl-decode-mule-utf-8): Fix a bug in + handling invalid 5 to 6 bytes sequence. + 2003-03-19 Simon Marshall * progmodes/make-mode.el (makefile-font-lock-syntactic-keywords): diff --git a/lisp/international/utf-8.el b/lisp/international/utf-8.el index 343b007b1e2..47247c7b507 100644 --- a/lisp/international/utf-8.el +++ b/lisp/international/utf-8.el @@ -479,19 +479,21 @@ default. Also, installing them may be rather slow." (write-multibyte-character r5 r3)) (write-multibyte-character r6 r3)) (if (r0 >= #xf8) ; 5- or 6-byte encoding - ((read r1) - (if (r1 < #xa0) - (if (r1 < #x80) ; invalid byte - (write r1) - (write-multibyte-character r5 r1)) - (write-multibyte-character r6 r1)) + ((r0 = -1) + (read r0) + (if (r0 < #xa0) + (if (r0 < #x80) ; invalid byte + (write r0) + (write-multibyte-character r5 r0)) + (write-multibyte-character r6 r0)) (if (r0 >= #xfc) ; 6-byte - ((read r1) - (if (r1 < #xa0) - (if (r1 < #x80) ; invalid byte - (write r1) - (write-multibyte-character r5 r1)) - (write-multibyte-character r6 r1))))))) + ((r0 = -1) + (read r0) + (if (r0 < #xa0) + (if (r0 < #x80) ; invalid byte + (write r0) + (write-multibyte-character r5 r0)) + (write-multibyte-character r6 r0))))))) ;; else invalid byte >= #xfe (write-multibyte-character r6 r0)))))) (repeat))) -- 2.39.2