[mew-win32 04117] Re: Firefox -> mozex -> mailto -> Mew
Hideyuki SHIRAI ( 白井秀行 )
shirai at example.com
2004年 10月 13日 (水) 12:19:12 JST
From: Hideyuki SHIRAI (白井秀行) <shirai at example.com> 曰く
Subject: [mew-win32 04116] Re: Firefox -> mozex -> mailto -> Mew
Message-ID: <20041013.101953.20486595.shirai.hideyuki at example.com>
Date: Wed, 13 Oct 2004 10:19:53 +0900 (JST)
> > Emacs で、UTF-8 を使えるようにしていますか?
>
> UTF-8 (というか multibyte 文字)はどう考えても動きません。作った
> 当時、UTF-8 を扱える Emacs が無かったので ^^;;;
>
> # しばらくお待ちを。。。
作ってみました。contrib/mew-browse.el にパッチをあてくださいませ。
なお、http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/appendix/notes.html#non-ascii-chars
を読むと、
>> 注意。古いユーザエージェントの中には、HTMLのURIを、当該文書の
>> 文字符号化方法をそのまま適用して処理するものもある。
などということも書いてありますが、無視(というか無理)です。
--
白井秀行 (mailto:shirai at example.com)
-------------- next part --------------
Index: mew-browse.el
===================================================================
RCS file: /cvsroot/shirai/mew/mew/contrib/mew-browse.el,v
retrieving revision 1.4
diff -u -r1.4 mew-browse.el
--- mew-browse.el 2001/07/13 00:49:04 1.4
+++ mew-browse.el 2004/10/13 03:14:58
@@ -3,7 +3,7 @@
;; Author: Hideyuki SHIRAI <shirai at example.com>
;; Modify: Shuichi Kitaguchi <kit at example.com>
;; Created: May 19, 1999
-;; Revised: May 24, 1999
+;; Revised: Oct 13, 2004
;;;
;;; ~/.emacs settings.
@@ -216,14 +216,28 @@
(defun mew-browse-url-mailto-hex-to-string (str)
(save-match-data
- (while (string-match "%\\([0-9a-fA-F][0-9a-fA-F]\\)" str)
- (setq str (concat (substring str 0 (match-beginning 0))
- (make-string
- 1
- (mew-browse-url-mailto-2hexs-to-int
- (substring str (match-beginning 1) (match-end 1))))
- (substring str (match-end 0)))))
- str))
+ (with-temp-buffer
+ (mew-set-buffer-multibyte nil)
+ (insert str)
+ (goto-char (point-min))
+ (let ((doit t) char)
+ (while (re-search-forward "%\\([0-9a-fA-F][0-9a-fA-F]\\)" nil t)
+ (setq char (mew-browse-url-mailto-2hexs-to-int
+ (buffer-substring (match-beginning 1) (match-end 1))))
+ (delete-region (match-beginning 0) (match-end 0))
+ (insert char))
+ (unless (equal (mew-find-cs-region (point-min) (point-max)) '(ascii)) ;; xxx
+ (unless mew-internal-utf-8p
+ (condition-case nil
+ (require 'un-define)
+ (file-error
+ (setq doit nil)
+ (delete-region (point-min) (point-max))
+ (insert "To handle this, install Mule-UCS for UTF-8."))))
+ (when doit
+ (decode-coding-region (point-min) (point-max) 'utf-8)))
+ (mew-set-buffer-multibyte t)
+ (buffer-string)))))
(defun mew-browse-url-mailto-2hexs-to-int (hex)
(+ (* 16 (mew-hexchar-to-int (aref hex 0)))
Mew-win32 メーリングリストの案内