[mew-dist 18313] UTF-8 decode failure

Hideyuki SHIRAI ( 白井秀行 ) shirai at example.com
2001年 7月 31日 (火) 17:56:43 JST


## mew-dist にやってきました。^^;;;

Emacs 20.7 + Mule 4.1 + Mule-UCS 0.84 で
                  ~~~ 4.0 は確かめていません

From: =?utf-8?B?55m95LqV56eA6KGM?= <hoge at example.com>

を decode しようとして、
(mew-header-decode "utf-8" "B" "55m95LqV56eA6KGM")
とすると、結果が *ばけばけ* になってしまうという話です。

# このメールの From: が化けたらそういう組合わせです。:-)

こんなパッチでどうでしょうか?

-- 
白井秀行 (mailto:shirai at example.com)

*** mew-func.el.orig	Tue Jul 31 17:42:58 2001
--- mew-func.el	Tue Jul 31 17:28:30 2001
***************
*** 1164,1169 ****
--- 1164,1173 ----
    (if (fboundp 'set-buffer-multibyte)
        (if mew-unibyte-p () (set-buffer-multibyte arg))))
  
+ (defsubst mew-multibyte-string-p (str)
+   (when (fboundp 'multibyte-string-p)
+     (if mew-unibyte-p () (multibyte-string-p str))))
+ 
  (defvar mew-unibyte-p 
    (and (boundp 'enable-multibyte-characters)
         (null enable-multibyte-characters)))
*** mew-mule3.el.orig	Tue Jul 31 17:43:09 2001
--- mew-mule3.el	Tue Jul 31 17:48:02 2001
***************
*** 143,151 ****
  	(save-excursion
  	  (set-buffer buf)
  	  (mew-erase-buffer)
! 	  (mew-set-buffer-multibyte nil)
  	  (insert str)
! 	  (mew-set-buffer-multibyte t)
  	  (decode-coding-region (point-min) (point-max) cs)
  	  (setq ret (buffer-substring (point-min) (point-max))))
  	(mew-remove-buffer buf)
--- 143,151 ----
  	(save-excursion
  	  (set-buffer buf)
  	  (mew-erase-buffer)
! 	  (mew-set-buffer-multibyte (mew-multibyte-string-p str))
  	  (insert str)
! 	  (or (mew-multibyte-string-p str) (mew-set-buffer-multibyte t))
  	  (decode-coding-region (point-min) (point-max) cs)
  	  (setq ret (buffer-substring (point-min) (point-max))))
  	(mew-remove-buffer buf)



Mew-dist メーリングリストの案内