Mercurial > emacs
comparison lisp/international/utf-8.el @ 50207:b49563831bd2
(ccl-decode-mule-utf-8): Fix a bug of
invalid 5 to 6 bytes sequence.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Wed, 19 Mar 2003 23:34:36 +0000 |
parents | 65bb5afb37ef |
children | f49a20cb84ed |
comparison
equal
deleted
inserted
replaced
50206:b453fa770ef2 | 50207:b49563831bd2 |
---|---|
477 (if (r3 < #x80) ; invalid byte | 477 (if (r3 < #x80) ; invalid byte |
478 (write r3) | 478 (write r3) |
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))) |
498 | 500 |
499 ;; At EOF... | 501 ;; At EOF... |