[Mew-dist 14422] argument encoding way (was Re: b64)
Hideyuki SHIRAI ( 白井秀行 )
shirai at example.com
2000年 10月 6日 (金) 22:59:18 JST
白井です。
Windows で日本語の引数を euc-jp で符号化して command に渡すと変
だよ、という話の続きです。深く静かに検討/討論をしていました。
From: Kazu Yamamoto (山本和彦) <kazu at example.com> さん曰く
Subject: [Mew-dist 14366] Re: b64
Message-ID: <20001003.214112.112570563.kazu at example.com>
Date: Tue, 3 Oct 2000 21:42:50 +0900
kazu> OS に依存している話ではないのだけれど。
で、やっぱり『OS に依存する話』という結論になりました。簡単にま
とめちゃうと、argv は文字列なのだから(Windows から見て binary と
しか見えない) euc-jp をそのまま通して command に渡すという保証は
どこにもない、ということです。
実験した結果でも "井" や "鈴" の euc-jp 表現のコードは sjis では
マッピングできないため、破綻します。
というわけで、(日本語の)Windows では日本語の文字は sjis で渡さな
ければならないわけなのですが、mew-cs-database-for-encoding を直
接いじるのは大変だし、拡張性も無い(もしかしたら、みんな utf-8 に
したい人もいるかもしれない)と思うので、以下のパッチの様に
mew-cs-encode-arg-alist という変数を増やして、ユーザが default
の符号化方式を変えたいところがあったら、
(setq mew-cs-encode-arg-alist
'((iso-2022-jp . japanese-shift-jis-unix)
(iso-2022-kr . utf-8)))
などとするのはいかがでしょうか。
--
白井秀行 (mailto:shirai at example.com)
-------------- next part --------------
--- mew-mule.el.orig Fri Sep 29 21:15:44 2000
+++ mew-mule.el Fri Oct 6 21:30:08 2000
@@ -91,7 +91,9 @@
(` (if (nth 4 (, ecsdb)) (nth 4 (, ecsdb)) (mew-ecsdb-cs (, ecsdb)))))
(defmacro mew-ecsdb-cs-for-arg (ecsdb)
- (` (if (nth 5 (, ecsdb)) (nth 5 (, ecsdb)) (mew-ecsdb-cs (, ecsdb)))))
+ (` (or (cdr (assoc (mew-ecsdb-cs (, ecsdb)) mew-cs-encode-arg-alist))
+ (nth 5 (, ecsdb))
+ (mew-ecsdb-cs (, ecsdb)))))
;;
--- mew-vars.el.orig Wed Oct 4 18:11:52 2000
+++ mew-vars.el Fri Oct 6 21:47:02 2000
@@ -1708,6 +1708,11 @@
(defvar mew-prog-grep "grep")
(defvar mew-prog-grep-opts '("-e"))
+(defcustom mew-cs-encode-arg-alist '()
+ "*Alist of coding-system for argument encoding rule."
+ :group 'mew-env
+ :type '(repeat (cons symbol symbol)))
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; Text/Html
--- mew-win32.el.orig Thu Sep 21 10:11:54 2000
+++ mew-win32.el Fri Oct 6 21:35:00 2000
@@ -92,6 +92,17 @@
"/[^./]+$"
'script-process-argument-editing-function 'last)))
+
+;; argument encoding rule for Japanese.
+(cond
+ ((mew-coding-system-p 'japanese-shift-jis-unix)
+ (setq mew-cs-encode-arg-alist
+ '((iso-2022-jp . japanese-shift-jis-unix))))
+ ((mew-coding-system-p '*sjis*unix)
+ (setq mew-cs-encode-arg-alist
+ '((*iso-2022-jp* . *sjis*unix)))))
+
+
;; common programs.
(setq mew-prog-shell shell-file-name)
Mew-dist メーリングリストの案内