[Mew-dist 760] Re: mew-expand-file-name & reedit/redist

Kazu Yamamoto 山本和彦 kazu at example.com
1997年 3月 26日 (水) 23:54:57 JST


From: OKUNISHI Fujikazu <fuji0924 at example.com>
Subject: [Mew-dist 758] Re: mew-expand-file-name & reedit/redist
Date: Wed, 26 Mar 1997 02:31:13 +0900

> 山本さん> (1) 行末の差 (UNIX は LF、OS/2 は CRLF ) を埋めるのは、Mule 
> 山本さん> を大前提にして coding-system を変更するとよいでしょう。Mule
> 山本さん> 2.3 なら、file-coding-system{,-for-read} を 
> 山本さん> *iso-2022-jp*unix とすれば、よい気がします。
> 
> 時間の取れた時に試してみます。
> #これは *もちろん* Mew 内部での変更ですよね? :-)

すいません。これは僕の勘違いのようです。以下、Mule 2.3 に限った話です。

(1) *iso-2022-jp* のように行末の修飾子がない場合は、入力時において、自
動的に行末を判断しMule の内部表現での「行末」を表すデータに変換されます。

(2) *dos*、*mac*、*unix* のような修飾子を補うと、行末が期待しているもの
と違う場合おかしくなるので、お勧めではありません。よって、
file-coding-system-for-read には修飾子のない coding-system を設定して
おくのがよいでしょう。

(3) 出力には、file-coding-system で指定されている行末が利用されます。
OS/2 では CRLF で書き出されても、(2) の読み込みの際に吸収されるので問題
ないでしょう。

(まとめ) coding-system をいじっても pick の問題は解決されない。

さて、僕の他の勘違いは、OS/2 で pick が失敗する理由を、行末の違いだと思っ
たことです。原因は、「行ベースのデータ」を「バイナリデータ」して扱ったこ
とにあります。これだと、Mule が行を意識しないので、行が変換されなかった
わけです。

1.67 では、mew-summary-pick の mew-plet を mew-piolet に変えましたので、
OS/2 でもそのまま動くのではないかと思います。

> うーん、そうすることの是非については僕には返答しかねます。開発者に相談
> してみて改めて。

もう少し厳密にいうと、
	"$" は行末の*手前*にマッチ
	"\n" は行末そのものにマッチ (OS/2 なら CRLF)
	"\r" は CR にマッチ
するのが正しいと思います。

(insert "\n") で CRLF が入るのに、正規表現で違う意味になるのは、やはり
おかしいと思います。

念のため、Demacs の作者で、僕の親友/悪友の東田さんに、どうするのが正
しいのか現在問い合わせています。

> それで、環境変数も必要な場合には
> 	(format "mhdist=1 mhaltmsg=%s %s %s"   ;; /bin/sh
> のような使い方はできませんで、
> 	(format "set mhdist=1 & set mhaltmsg=%s & %s %s"  ;; OS/2 cmd.exe
> のように `&' を噛ませる必要があります。これは UNIX 的な `&' ではありま
> せん。(`;' にあたるのかな?)

これは単純にハードコーディングを止めて、内部の書式を defvar できるように
すればいいことですね?

> これについては 1.55 あたりで既に入ってますよね?
> それで、

はい、入れたのを忘れていました。

> > 私個人の意見としては、「make-symbolic-link」を使う事自体がUNIX以外の
> > 環境(VMS,MSDOS,OS2,WIN32などかな)を無視しているのであまりお勧めでき
> > ません。
> 
> とか
> 
> > Emacs は UNIX や X や internet からある程度独立しているべきだと思い
> > ます。また、ある程度、portable に書けるはずです。もしかすると Emacs 
> > や Emacs Lisp の寿命は UNIX や X や現在の internet protocolよりも長
> > いかも知れないのでそういう配慮はした方が良いんだと思います。
> 
> というもっともな意見を受けて納得してしまったのですが、かずさんはどのよ
> うにお考えでしょうか? VMS で MH + Mew を使ってる人がいるかどうかわかり
> ませんが、Win32も普及しつつあるようですし、MH互換スクリプトが出揃った
> 暁には mule-win32 or Mewdow or emacs-win32 でも Mew を使う人が増えるに
> 違いないので気になっています。

この種の問題は、「程度問題」です。とても特殊な機能が UNIX にあって、
OS/2 がサポートしていないなら、そんな機能は使うべきではありません。

ただ、今回のはシンボリックリンクです。UNIX には大昔からある機能で、他
の OS がサポートしていなのはさぼっているだけですから、利用していいと思
います。無い OS では、コピーでごまかすこともできますし。

> それと 1.65 あたりで mew.dot.emacs に追加された
> 	(setq mew-connection-type1 t) ;; use PTY
> については、デフォルト値がそうなので改めて指定させる必要はないと思いま
> す。OS/2 Emacs (非 MULE) については追ってません。

これも勘違いで、一部の Linux へのサポートでした。1.67 の mew.dot.emacs 
では、OS/2 とは関係のないところに入れています。

ただ、デフォルト値は nil でパイプを使います。mew.dot.emacs のは、
PTY を使いたいときの例です。

--かず



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