aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenichi Handa2003-03-19 23:36:15 +0000
committerKenichi Handa2003-03-19 23:36:15 +0000
commit76b7fded09728852167e48f9f0c00a46567856a5 (patch)
tree5329bfe40cc470fead7738435caa50341d0e3f85
parent0b51ba8a5a0a2b46a433bfd06161af5cf2e31145 (diff)
downloademacs-76b7fded09728852167e48f9f0c00a46567856a5.tar.gz
emacs-76b7fded09728852167e48f9f0c00a46567856a5.zip
(ccl-decode-mule-utf-8): Fix a bug of
invalid 5 to 6 bytes sequence.
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/international/utf-8.el26
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 @@
12003-03-20 Kenichi Handa <handa@m17n.org>
2
3 * international/utf-8.el (ccl-decode-mule-utf-8): Fix a bug in
4 handling invalid 5 to 6 bytes sequence.
5
12003-03-19 Simon Marshall <simon@gnu.org> 62003-03-19 Simon Marshall <simon@gnu.org>
2 7
3 * progmodes/make-mode.el (makefile-font-lock-syntactic-keywords): 8 * 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."
479 (write-multibyte-character r5 r3)) 479 (write-multibyte-character r5 r3))
480 (write-multibyte-character r6 r3)) 480 (write-multibyte-character r6 r3))
481 (if (r0 >= #xf8) ; 5- or 6-byte encoding 481 (if (r0 >= #xf8) ; 5- or 6-byte encoding
482 ((read r1) 482 ((r0 = -1)
483 (if (r1 < #xa0) 483 (read r0)
484 (if (r1 < #x80) ; invalid byte 484 (if (r0 < #xa0)
485 (write r1) 485 (if (r0 < #x80) ; invalid byte
486 (write-multibyte-character r5 r1)) 486 (write r0)
487 (write-multibyte-character r6 r1)) 487 (write-multibyte-character r5 r0))
488 (write-multibyte-character r6 r0))
488 (if (r0 >= #xfc) ; 6-byte 489 (if (r0 >= #xfc) ; 6-byte
489 ((read r1) 490 ((r0 = -1)
490 (if (r1 < #xa0) 491 (read r0)
491 (if (r1 < #x80) ; invalid byte 492 (if (r0 < #xa0)
492 (write r1) 493 (if (r0 < #x80) ; invalid byte
493 (write-multibyte-character r5 r1)) 494 (write r0)
494 (write-multibyte-character r6 r1))))))) 495 (write-multibyte-character r5 r0))
496 (write-multibyte-character r6 r0)))))))
495 ;; else invalid byte >= #xfe 497 ;; else invalid byte >= #xfe
496 (write-multibyte-character r6 r0)))))) 498 (write-multibyte-character r6 r0))))))
497 (repeat))) 499 (repeat)))