[Mew-Win32 02771] Re: utime.exeが時々ハングアップする

Hideyuki SHIRAI ( 白井秀行 ) shirai at example.com
2000年 9月 12日 (火) 22:27:41 JST


From: 江口 尚裕 <egu at example.com> さん曰く
Subject: [Mew-Win32 02770] Re: utime.exeが時々ハングアップする
Message-ID: <20000912184500H.egu at example.com>
Date: Tue, 12 Sep 2000 18:45:00 +0900

# utime.exe の話はわからんので、おまかせ。:-)

egu> > 白井> 少なくても mew-1.94.2 + im-140 以降では、utime.exe を使わないで
egu> > 白井> touch file を使う方法に変わっているので、乗り換えられるのも一つ
egu> > 白井> の手段かと思います。

egu> バージョンアップしました。.mew-touchのファイルサイズは0バイトなのでディ
egu> レクトリエントリだけ減るだけですし。.mew-cacheはそれにはつかえないんで
egu> すかねぇ。

使えないです。なぜかというと、.mew-touch と .mew-cache の二つの
file の更新時間を比較しているので、一つの file にはできないんで
す。もう少し、バージョンが進むと 15 byte ぐらいにはなったりしま
すけど ^^;;;

egu> > 白井> なお、touch file を使い出した当初は、まだ、touch file が存在しな
egu> > 白井> い folder の scan で自動 update してくれないことがあるかもしれま
egu> > 白井> せんので、変だなと思ったら、scan で all を指定してみてください。
egu> 
egu> scanでallをしてもファイルが作られないような気がするのですがもう少し確
egu> 認してみます。

あ、ごめんなさい。.mew-touch は message を mv したりしないとでき
ないですね。メールの最後に .mew-cache & .mew-touch 更新用 elisp
をつけておきます。少々時間がかかるのですが、一度実行すればそれで
良いのでご勘弁を。

# mew-1.94.2 でも動くと思うのですけど、もし、だめでも致命的なこ
# とにはならないと思います。

egu> これで、refileを恐る恐るしなくても良くなります。

ですね。

egu> あとは、fiber.exeのプロセスが残らなくなるといいのですが、だんだん
egu> Meadowが重くなっていくようなのです。

う〜〜〜ん、これ、以前もどなたかから聞いたことがあるんですが、再
現できなかったんだよなぁ。

# といいつつ、Win95 は捨ててしまったし、女房の Win98 に Meadow
# を入れるとはまりそうだから避けているし。

-- 
白井秀行 (mailto:shirai at example.com)

;; .mew-cache, .mew-touch を一気に作る
;; M-x mew-make-cache-all

(defun mew-make-cache-all (&optional arg)
  (interactive "P")
  (let ((fldlst mew-folder-list)
	fld)
    (while (setq fld (car fldlst))
      (condition-case err
	  (mew-make-cache arg (directory-file-name fld))
	(error nil))
      (setq fldlst (cdr fldlst))))
  (mew-summary-goto-folder nil mew-inbox-folder)
  (message "Make .mew-cache done.")
  (mew-summary-quit))

(defun mew-make-cache (arg fld)
  (if (or (mew-folder-remotep fld)
	  (mew-folder-virtualp fld)
	  (mew-folder-local-newsp fld)
	  ;; (mew-nmz-skip-folder fld)
	  (and (not arg) (not (mew-make-cache-folder-dir-newp fld))))
      ()
    (message "Make %s in %s ..." mew-summary-cache-file fld)
    (let ((mew-summary-mode-hook nil)
	  (mew-scan-wait-for 0))
      (mew-summary-goto-folder t fld)
      (while mew-summary-buffer-process
	(sit-for 0.5)
	(discard-input))
      (message "Make %s in %s ... done." mew-summary-cache-file fld))))

(defun mew-make-cache-folder-dir-newp (fld)
  (let* ((dir (file-chase-links (mew-expand-folder fld)))
	 (tdir (mew-file-get-time
		(expand-file-name mew-summary-touch-file
				  (mew-expand-folder dir))))
	 (cache (expand-file-name mew-summary-cache-file dir))
	 (tcache (mew-file-get-time cache))
	 t1 t2)
    (setq t1 tdir)
    (setq t2 tcache)
    (cond
     ((null t1)
      (if (and (file-writable-p (expand-file-name mew-summary-touch-file
						  (mew-expand-folder dir)))
	       (directory-files (mew-expand-folder dir)
				nil "^[1-9][0-9]*$" nil))
	  (progn
	    (mew-touch-folder fld) t)
	nil))
     ((null t2) t) ;; do update
     ((> (nth 0 t1) (nth 0 t2)) t)
     ((= (nth 0 t1) (nth 0 t2))
      (if (> (nth 1 t1) (nth 1 t2)) t nil)) ;; nil if equal
     (t nil))))



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