From 98fe1969ff97e6938025b7bdb1707b0a3406b55e Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Thu, 2 Oct 2003 00:50:33 +0000 Subject: [PATCH] (ccl-decode-mule-utf-8): Lookup utf-subst-table-for-decode even for U+E000..U+FFFF. --- lisp/ChangeLog | 11 +++++++++++ lisp/international/utf-8.el | 19 +++++++++++++------ 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 31a53c1b99c..392a4a2646c 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,14 @@ +2003-10-02 Kenichi Handa + + * international/utf-8.el (ccl-decode-mule-utf-8): Lookup + utf-subst-table-for-decode even for U+E000..U+FFFF. + + * international/subst-jis.el: Include U+FF00..U+FFEF in decode + table. + * international/subst-big5.el: Likewise. + * international/subst-gb2312.el: Likewise + * international/subst-ksc.el: Likewise. + 2003-10-01 Glenn Morris * calendar/calendar.el (increment-calendar-month) diff --git a/lisp/international/utf-8.el b/lisp/international/utf-8.el index 85bdae7ac64..54f6633ce42 100644 --- a/lisp/international/utf-8.el +++ b/lisp/international/utf-8.el @@ -448,12 +448,19 @@ default. Also, installing them may be rather slow." ;; mule-unicode-e000-ffff ;; Fixme: fffe and ffff are invalid. - ((r0 = ,(charset-id 'mule-unicode-e000-ffff)) - (r3 -= #xe000) - (r3 //= 96) - (r1 = (r7 + 32)) - (r1 += ((r3 + 32) << 7)) - (write-multibyte-character r0 r1))))))))) + ((r4 = r3) ; don't zap r3 + (lookup-integer utf-subst-table-for-decode r4 r5) + (if r7 + ;; got a translation + ((write-multibyte-character r4 r5) + ;; Zapped through register starvation. + (r5 = ,(charset-id 'eight-bit-control))) + ((r0 = ,(charset-id 'mule-unicode-e000-ffff)) + (r3 -= #xe000) + (r3 //= 96) + (r1 = (r7 + 32)) + (r1 += ((r3 + 32) << 7)) + (write-multibyte-character r0 r1))))))))))) (if (r0 < #xfe) ;; 4byte encoding -- 2.39.2