[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 メーリングリストの案内