[mew-dist 27609] Re: Punycode
Hideyuki SHIRAI ( 白井秀行 )
shirai at example.com
2007年 4月 13日 (金) 10:47:57 JST
From: Kazu Yamamoto (山本和彦) <kazu at example.com> さん曰く
Subject: [mew-dist 27606] Re: Punycode
Message-ID: <20070413.085410.09358134.kazu at example.com>
Date: Fri, 13 Apr 2007 08:54:10 +0900 (JST)
> 今の実装だと IDN を含む URL はしょうがないです。
> ただ、バグで普通の URL もそうなっていましたので、
> なしました。
>
> 現在 IDN に関しても overlay を使わない実装を検討しています。
> # encoder も書かないといけないんですが
> それが実現すると、IDN も普通の URL と同じように扱えるようになるはずです。
overlay を使っている間の対応ですが、overlay に 'evaporate と付け
ておかないと、message buffer に overlay が生き残って具合が悪いで
す。現状では、次のメールを表示したときに、message buffer の一番
先頭に http:// 東京大学.jp/ が表示されていると思います。
From: Kazu Yamamoto (山本和彦) <kazu at example.com> さん曰く
Subject: [mew-dist 27607] Re: Punycode
Message-ID: <20070413.085602.192472195.kazu at example.com>
Date: Fri, 13 Apr 2007 08:56:02 +0900 (JST)
> > この「UTF-16のサポート」というのは、Emacs21+Mule-UCSでは駄目ということ
> > なんでしょうか。
>
> UCS パッケージは、もう使っていないので、よく分かりません。
Punycode は、今ばぁ〜とみただけなのですが、UTF-16 って big
endian に BOM 無し、でよいのですよね?というのが前提条件ですが、
付属のパッチで OK だと思います。
P.S.
Mule-ja ML に書いたことがありますが、Emacs-22 + Mule-UCS で
'utf-16 という coding-system を使うとエラーになるので、以下のパッ
チのようになっています。
--
白井秀行 (mailto:shirai at example.com)
-------------- next part --------------
Index: mew-bq.el
===================================================================
RCS file: /cvsroot/shirai/mew/mew/mew-bq.el,v
retrieving revision 1.47
diff -u -r1.47 mew-bq.el
--- mew-bq.el 2007/04/13 01:10:58 1.47
+++ mew-bq.el 2007/04/13 01:46:03
@@ -1000,10 +1000,14 @@
base)))))
(defun mew-puny-decode (input)
- (when (coding-system-p 'utf-16)
- (condition-case nil
- (mew-cs-decode-string (mew-puny-decode1 input) 'utf-16)
- (error nil))))
+ (let ((utf16 (or (and (coding-system-p 'utf-16-be-no-signature)
+ 'utf-16-be-no-signature)
+ (and (coding-system-p 'utf-16be)
+ 'utf-16be))))
+ (when utf16
+ (condition-case nil
+ (mew-cs-decode-string (mew-puny-decode1 input) utf16)
+ (error nil)))))
(defun mew-puny-decode1 (input)
(let* ((base 36) (tmin 1) (tmax 26)
Index: mew-mime.el
===================================================================
RCS file: /cvsroot/shirai/mew/mew/mew-mime.el,v
retrieving revision 1.88
diff -u -r1.88 mew-mime.el
--- mew-mime.el 2007/04/13 01:10:58 1.88
+++ mew-mime.el 2007/04/13 01:46:03
@@ -187,7 +187,8 @@
(put-text-property 0 (length idn) 'mouse-face mew-highlight-url-mouse-face idn)
(setq ovl (make-overlay beg end))
(overlay-put ovl 'invisible t)
- (overlay-put ovl 'before-string idn))
+ (overlay-put ovl 'before-string idn)
+ (overlay-put ovl 'evaporate t))
(setq beg end))))
;; Page breaks
(when mew-break-pages
Mew-dist メーリングリストの案内