[Mew-dist 04411] im-90: imget does not handle database as a folder-name but file-name
Makoto MATSUSHITA ( まつしたまこと )
matusita at example.com
1998年 4月 15日 (水) 15:20:33 JST
im には msgiddb の機能がありますが,少なくとも im-90 では,imget が
mail をとりこんでくる際に msgiddb への登録を
message-id /full/path/of/filename
の形でやっているように見えます.多分,これまでと,他の immv 等のツール
は msgiddb の内容は
message-id folder/num
の形となっていると思われます.と,いうわけで imget した情報は他では一
切触られることがないので,例えば +inbox/1 にとりこまれたやつは
message-id /home/username/inbox/1
となった後,別の +hoge に移動させると
message-id /home/username/inbox/1,+hoge/1
となって,何のために msgiddb があるのかわからなくなってしまいます.
***
とりあえず「少なくともこうすれば直ることは直る」という patch を以下に
添付します.ただ,filename <-> folder/number 形式の相互変換が(きっと頻
繁に使われそうな気がするのに) private な subroutine として実装されてい
るのにはきっと深い理由がありそうなのに,この patch ではそれをむりやり
破って(unexpand_path を @EXPORT へつっこんで)います.
-- -
Makoto `MAR' MATSUSHITA
ひさびさに msgiddb を使ってみようと動かしてみたらびっくりした
--- IM.in/File.pm.in.dist Tue Feb 10 13:45:36 1998
+++ IM.in/File.pm.in Wed Apr 15 14:58:21 1998
@@ -28,7 +28,7 @@
use vars qw(@ISA @EXPORT);
@ISA = qw(Exporter);
- at example.com = qw(im_rename im_link im_unlink);
+ at example.com = qw(im_rename im_link im_unlink unexpand_path);
## im_rename(path1, path2);
## im_link (path1, path2);
--- IM.in/MsgStore.pm.in.dist Tue Apr 7 21:31:41 1998
+++ IM.in/MsgStore.pm.in Wed Apr 15 14:59:37 1998
@@ -25,6 +25,7 @@
use IM::Util;
use IM::Folder qw(message_number message_name create_folder touch_folder);
use IM::Header qw(gen_date);
+use IM::File qw(unexpand_path);
use integer;
use strict;
use vars qw(@ISA @EXPORT);
@@ -184,7 +185,7 @@
require IM::History && import IM::History;
unless (history_open(1) < 0) {
- history_store($mid, $file);
+ history_store($mid, unexpand_path($file));
history_store("partial:$master", $mid) if ($master ne '');
history_close();
}
Mew-dist メーリングリストの案内