[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Mule-UCS 0.84 (KOUGETSUDAI) release.
On November 4, 2002, [mule:03314],
Tatsuya Kinoshita <tats@xxxxxxxxxxxxxx> wrote:
> http://tats.iris.ne.jp/mule-ucs/mule-ucs-0.84+tats20021104.diff.gz
>
> * Merge patches from xemacs-mule-sumo-2002-05-22.
> * utf.el (utf-8-ccl-decode): Don't read any numbers lager than 24bit.
> * reldata/uethiopic.el: Typo fix for (provide 'uethiopic).
> (from Debian xemacs21-mulesupport_2002.05.22-3)
I modified utf-8-ccl-decode a bit just now.
--
Tatsuya Kinoshita
--- mule-ucs-0.84+tats20021104/lisp/ChangeLog
+++ mule-ucs-0.84+tats20021105/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2002-11-05 Tatsuya Kinoshita <tats@xxxxxxxxxxxxxx>
+
+ * utf.el (utf-8-ccl-decode): Use `unicode-replace-char' if a number
+ is larger than 24bit.
+
2002-11-04 Tatsuya Kinoshita <tats@xxxxxxxxxxxxxx>
* mucs.el: Merge patch from xemacs-mule-sumo-2002-05-22.
@@ -14,7 +19,7 @@
* reldata/u-cns-6.el: Likewise.
* reldata/u-cns-7.el: Likewise.
- * utf.el (utf-8-ccl-decode): Don't read any numbers lager than 24bit.
+ * utf.el (utf-8-ccl-decode): Don't read any numbers larger than 24bit.
* reldata/uethiopic.el: Typo fix for (provide 'uethiopic).
(from Debian xemacs21-mulesupport_2002.05.22-3)
--- mule-ucs-0.84+tats20021104/lisp/utf.el
+++ mule-ucs-0.84+tats20021105/lisp/utf.el
@@ -161,7 +161,8 @@
(if (r0 < ?\xFC)
;; 5-byte sequence
(;;(r0 = ((r0 & ?\x03) << 24))
- ;; MUCS can't read any numbers lager than 24bit
+ ;; MUCS can't read any numbers larger than 24bit
+ (r6 = (r0 & ?\x03))
(r0 = 0)
(read r4)
(r4 ^= ?\x80)
@@ -186,10 +187,13 @@
(if (r4 >= ?\x40)
;; not a continuation byte
(r0 = ,unicode-replace-char)
- ((r0 |= r4)
- (if (r0 < ,(cn "0x200000"))
- ;; over-long sequence
- (r0 = ,unicode-replace-char)))))))))))
+ (if (r6 > 0)
+ ;; larger than 24bit
+ (r0 = ,unicode-replace-char)
+ ((r0 |= r4)
+ (if (r0 < ,(cn "0x200000"))
+ ;; over-long sequence
+ (r0 = ,unicode-replace-char))))))))))))
(if (r0 < ?\xFE)
;; 6-byte sequence - not supported, but
;; we must read all the bytes, and check