diff options
| author | Kenichi Handa | 2003-03-19 23:36:15 +0000 |
|---|---|---|
| committer | Kenichi Handa | 2003-03-19 23:36:15 +0000 |
| commit | 76b7fded09728852167e48f9f0c00a46567856a5 (patch) | |
| tree | 5329bfe40cc470fead7738435caa50341d0e3f85 | |
| parent | 0b51ba8a5a0a2b46a433bfd06161af5cf2e31145 (diff) | |
| download | emacs-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/ChangeLog | 5 | ||||
| -rw-r--r-- | 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 @@ | |||
| 1 | 2003-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 | |||
| 1 | 2003-03-19 Simon Marshall <simon@gnu.org> | 6 | 2003-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))) |