[Mew-dist 2200] Re: im-70

若宮賢二 wkenji at example.com
1997年 9月 22日 (月) 15:22:02 JST


若宮@富士通研です。im-70 の頃に、

若宮> 一応ご報告を。IMAP フォルダを imls した時、必ず最後に "imls: no
若宮> messages in…" のメッセージが表示されてしまいます。
若宮> Imap.pm の imap_scan_folder の中で
若宮>     $main::scan_count++; 
若宮> ということをしているのですが、imls 側の $scan_count が my される
若宮> ようになったせいか、このインクリメントが効いていないみたいなので
若宮> す。

  と書きましたが、どうも main 側の my グローバル変数を参照する方法が分
  からず (無理?)、scan_count を imap_scan_folder の戻り値にするように
  しました。もっと由緒正しい方法があるような気もするのですが…。

  もし問題なければパッチをお願い致します(_ _)。im-71 向けです。

// Kenji    | mailto:wkenji at example.com (office)
// Wakamiya | mailto:wkenji at example.com (private)
-------------- next part --------------
diff -aruN im-71-/IM.in/Imap.pm.in im-71/IM.in/Imap.pm.in
--- im-71-/IM.in/Imap.pm.in	Wed Sep 17 14:31:56 1997
+++ im-71/IM.in/Imap.pm.in	Mon Sep 22 15:08:17 1997
@@ -664,6 +664,7 @@
     my $msgset = &imap_range2set(@ranges);
     return  0 if !$msgset;
     return -1 if ($msgset < 0);
+    my $count = 0;
     my $seq = $ImapSeq++;
     my $resp = &send_command(\*IMAPd,
 	"im$seq UID FETCH $msgset (RFC822.SIZE RFC822.HEADER)", '');
@@ -708,7 +709,7 @@
 	    &make_thread(%Head);
 	} else {
 	    &disp_msg(\%Head);
-	    $main::scan_count++;
+	    $count++;
 	}
 	$resp = &next_response(\*IMAPd);
     }
@@ -716,7 +717,7 @@
 	im_warn("UID FETCH command failed.\n");
 	return -1;
     }
-    return 0;
+    return $count;
 }
 
 sub imap_range2set (@) {
diff -aruN im-71-/imls.in im-71/imls.in
--- im-71-/imls.in	Wed Sep 17 18:33:29 1997
+++ im-71/imls.in	Mon Sep 22 15:05:42 1997
@@ -491,10 +491,9 @@
 	return -1;
     }
     if ($exists > 0) {
-	if (&imap_scan_folder($folder, @ranges) < 0) {
+	if (($scan_count = &imap_scan_folder($folder, @ranges)) < 0) {
 	    &imap_close;
 	    im_warn("IMAP folder scanning error.\n");
-	    $scan_count = -1;
 	    return -1;
 	}
     }


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