[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: emacs-w3m, w3m-m17n and mule



白井です。とりあえず、w3m-m17n だけ。

From: Kiyokazu SUTO <suto@ks-and-ks.ne.jp> さん曰く
Subject: [emacs-w3m:03695] Re: emacs-w3m, w3m-m17n and mule
Message-ID: <20020720-003828-5a442.suto@ks-and-ks.ne.jp>
Date: 20 Jul 2002 00:38:28 +0900

SUTO> > pok> http://www.mypsion.ru ?  It is okay for me when called outside emacs as
SUTO> >
SUTO> > は koi8-r で書かれていて、なおかつ、charset が指定されていないよ
SUTO> 
SUTO> ヘッダで
SUTO> 
SUTO>   Content-Type: text/html; charset=windows-1251
SUTO> 
SUTO> と指定されていますよ。

あぁ、本当だ。ごめんなさい。ということは、ちゃんと、
windows-1251 (cp1251) を

From: ari@mbf.sphere.ne.jp (ARISAWA Akihiro) さん曰く
Subject: [emacs-w3m:03696] Re: emacs-w3m, w3m-m17n and mule
Message-ID: <m3eldzvhfr.wl@ari.mbf.sphere.ne.jp>
Date: Sat, 20 Jul 2002 00:57:44 +0900

ari> ● w3m-m17n を使用している場合に化ける。
ari> 
ari> 私の元では http://www.nijino.com/ari/tmp/emacs-w3m-m17n-ru.png のように
ari> 激しく化けました。Cc で koi8 を指定すると問題ないけど、
ari> cyrillic-koi8 では http://www.nijino.com/ari/tmp/emacs-w3m-m17n-ru2.png
ari> のようにやはり化けました。
ari> 
ari> w3m-m17n に -I を指定しなかったり、w3m-m17n の知らない coding-sysmte を
ari> 指定した時に、w3m-m17n 側で正しく判定できないのでしょうね。

w3m-m17n に -I で渡さないといけないのですね。(w3mee もかな)
ちょっと時間がないので、あまり確認はしていないのですが、付属のパッ
チをあてて、~/.emacs で

(codepage-setup 1251)

するという作戦はどうでしょう。(Emacs20/21 限定かしら? XEmacs は
わからない)

本来、w3m-m17n で "-I charset" を使うなら、"-O charset"  もつけ
て、w3m-input-coding-system, w3m-output-coding-system もその
charset に対応する coding-system にした方が良いかもしれないです。
mew-w3m.el で w3m-m17n を使うときは、かずさんのリクエストでこう
なっています。

# お昼休みが終わってしまって、commit もちょっとできない。

-- 
白井秀行 (mailto:shirai@rdmg.mgcs.mei.co.jp)

--- w3m.el.orig	Mon Jul 22 12:39:36 2002
+++ w3m.el	Mon Jul 22 12:55:03 2002
@@ -839,6 +839,15 @@
 	   (x-ctext       . ctext)
 	   (unknown       . undecided)
 	   (x-unknown     . undecided)
+	   (windows-1250  . cp1250)
+	   (windows-1251  . cp1251)
+	   (windows-1252  . cp1252)
+	   (windows-1253  . cp1253)
+	   (windows-1254  . cp1254)
+	   (windows-1255  . cp1255)
+	   (windows-1256  . cp1256)
+	   (windows-1257  . cp1257)
+	   (windows-1258  . cp1258)
 	   (euc-jp        . euc-japan)
 	   (shift-jis     . shift_jis)
 	   (shift_jis     . shift_jis)
@@ -1195,6 +1204,7 @@
 (defvar w3m-current-base-url nil "Base URL of this buffer.")
 (defvar w3m-current-forms nil "Forms of this buffer.")
 (defvar w3m-current-coding-system nil "Current coding-system of this buffer.")
+(defvar w3m-current-content-charset nil "Current content-charset of this buffer.")
 (defvar w3m-icon-data nil
   "Cons cell of icon URL and its IMAGE-TYPE of this buffer.")
 (defvar w3m-next-url nil "Next URL of this buffer.")
@@ -1211,6 +1221,7 @@
 (make-variable-buffer-local 'w3m-current-title)
 (make-variable-buffer-local 'w3m-current-forms)
 (make-variable-buffer-local 'w3m-current-coding-system)
+(make-variable-buffer-local 'w3m-current-content-charset)
 (make-variable-buffer-local 'w3m-icon-data)
 (make-variable-buffer-local 'w3m-next-url)
 (make-variable-buffer-local 'w3m-previous-url)
@@ -1226,6 +1237,7 @@
 	w3m-current-base-url nil
 	w3m-current-title nil
 	w3m-current-coding-system nil
+	w3m-current-content-charset nil
 	w3m-icon-data nil
 	w3m-next-url nil
 	w3m-previous-url nil
@@ -1237,13 +1249,14 @@
 	w3m-current-redirect nil))
 
 (defsubst w3m-copy-local-variables (from-buffer)
-  (let (url base title forms cs icon next prev
+  (let (url base title forms cs char icon next prev
 	    start toc hseq refresh ssl redirect)
     (with-current-buffer from-buffer
       (setq url w3m-current-url
 	    base w3m-current-base-url
 	    title w3m-current-title
 	    cs w3m-current-coding-system
+	    char w3m-current-content-charset
 	    icon w3m-icon-data
 	    next w3m-next-url
 	    prev w3m-previous-url
@@ -1257,6 +1270,7 @@
 	  w3m-current-base-url base
 	  w3m-current-title title
 	  w3m-current-coding-system cs
+	  w3m-current-content-charset char
 	  w3m-icon-data icon
 	  w3m-next-url next
 	  w3m-previous-url prev
@@ -2738,6 +2752,7 @@
 			(string= "x-moe-internal" (downcase content-charset)))
 		   (eq content-charset 'x-moe-internal)))
       (setq cs (w3m-x-moe-decode-buffer)))
+    (setq w3m-current-content-charset content-charset)
     (decode-coding-region
      (point-min) (point-max)
      (setq w3m-current-coding-system
@@ -3632,6 +3647,8 @@
 	(coding-system-for-write w3m-input-coding-system)
 	(default-process-coding-system
 	  (cons w3m-output-coding-system w3m-input-coding-system)))
+    (when (and (memq w3m-type '(w3mmee w3m-m17n)) (not charset))
+      (setq charset w3m-current-content-charset))
     (w3m-process-with-environment w3m-command-environment
       (apply 'call-process-region
 	     (point-min)
@@ -3672,10 +3689,11 @@
   (w3m-check-header-tags)
   (w3m-remove-meta-charset-tags)
   (if binary-buffer
-      (progn
+      (let ((cbuf (current-buffer)))
 	(delete-region (point-min) (point-max))
 	(insert-buffer
 	 (with-current-buffer binary-buffer
+	   (w3m-copy-local-variables cbuf)
 	   (w3m-rendering-half-dump content-charset)
 	   (current-buffer)))
 	(w3m-kill-buffer binary-buffer))