[Mew-dist 06087] Re: Selection of Maildir and NewsDir by Config

SHIMADA Nobutaka shimada at example.com
1998年 8月 21日 (金) 18:52:59 JST


島田@阪大です.

> > それで、immv や imrm が上記の仕様に従わないのは、expand_path を利用し
> > 忘れているからです。誰とは言いませんが、あるプログラマ(仮に nom さんと
> 
> これうそです。immv や imrm が呼び出している関数が expand_path を呼んで
> いるので問題ありませんでした。結局 "~/" は展開できるけど、"~user/" が
> 展開できないのが問題なので、UNIX 環境での挙動は修正しました。他の環境
> は知りません。

どうもありがとうございます.こちらでも少し自前でいじってみました.

Config.pmの中,
set_value(),set_value_case()中の

	if ($desc =~ /F/) { # xxx how about f
	    my ($i, $N) = (0, scalar(@val));
	    while ($i < $N) {
*		$val[$i] = "+$val[$i]" unless $val =~ /^[+\-=%~]/;
		$i++;
	    }
	}


	} elsif ($desc =~ /F/) {  # xxx how about f
	    # +inbox -> + inbox -> --src +inbox
**	    if ($val =~ /^[+\-=%~]/) {
		${$vnam} = $val;
	    } else {
		${$vnam} = "+$val";
	    }
という部分のうち*の行をそれぞれ

*	$val[$i] = "+$val[$i]" unless $val =~ /^([+\-=%~\/])|([a-zA-Z]:)/;

**	if ($val =~ /^([+\-=%~\/])|([a-zA-Z]:)/) {

と書き換え,

read_opt()中の
	} elsif (/^[+\-=%.\/~])/ && $O_FOPT) {
も
	} elsif (/^([+\-=%.\/~]|([a-zA-Z]:))/ && $O_FOPT) {

と直して,winのa:などにも対応してフルパスを認識させています.
ただ,imlsをみると

    if (/^[+=.\/~]/) {
	require IM::Folder && import IM::Folder qw(get_message_paths);
	local_files($_, @ARGV);

という部分があって,これはwinで使うには

    if (/^([+=.\/~])|([a-zA-Z]:)/) {
	require IM::Folder && import IM::Folder qw(get_message_paths);
	local_files($_, @ARGV);

などに直す必要があり,imcatにも同様の部分があります.
IMに関してはさし当たってこれで用が足りるようになりました.mewのほうは
次のバージョンを待ちます.

---------------------------------------------------------------------
         島田 伸敬@制機.工.阪大     06-879-7333  白井研
     機械系D棟4F    E-mail  shimada at example.com
---------------------------------------------------------------------



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