[mew-dist 21782] Re: mew-net-status3
KOIE Hidetaka ( 鯉江英隆 )
hide at example.com
2002年 9月 26日 (木) 13:42:49 JST
Message-Id: <20020926.010207.51224398.motonori at example.com>
Date: Thu, 26 Sep 2002 01:02:07 +0900 (JST)
From: NAKAMURA Motonori <motonori at example.com>
Subject: [mew-dist 21774] mew-net-status3
| 私も(?) Note PC の乗り換え作業中なのですが、mew 3.0.67 をインストール
| してみました。で、膨大にメールが保存されているフォルダを scan すると
| 1通ずつの進行状況が表示されてうるさいので、ちょっと間引くコードに
| なっていると良いかなと思いました。どうでしょう。
一通ずつ表示するのと間引いて表示するのとで
実行速度に違いがなさそうだったので
手を入れるのを止めてたんですが
うるさいという観点はありませんでした。
|
| ---
| 中村 素典 / 京都大学 学術情報メディアセンター
| motonori at example.com
|
|
| --- mew-net.el- Wed Sep 25 05:47:48 2002
| +++ mew-net.el Thu Sep 26 00:27:25 2002
| @@ -68,7 +68,10 @@
| (defun mew-net-status3 (buf rttl rcnt)
| (when mew-use-net-status
| (if rttl
| - (mew-net-status buf "Scanning" (format "%d/%d" rcnt rttl))
| + (if (and (< 500 rttl) (< rcnt (- rttl 100)))
| + (if (= 0 (% rcnt 20))
| + (mew-net-status buf "Scanning" (format "%d/%d" rcnt rttl)))
| + (mew-net-status buf "Scanning" (format "%d/%d" rcnt rttl)))
| (mew-net-status buf "Scanning" (format "%d" rcnt)))))
|
| (defun mew-summary-visible-buffer (buf)
|
同じ式が2つも並んでいるのよくないということで...ちょっと頭の体操です
表示する条件Cは
C = (or (and A B) (not A))
A = (and (< 500 rttl) (< rcnt (- rttl 100)))
B = (= 0 (% rcnt 20))
なのでカルノー図を書くと
┌─────┐
│ B │
├──┬──┤
│nil │ t │
┌─┬──┼──┼──┤
│ │nil │ t │ t │
│A ├──┼──┼──┤
│ │ t │nil │ t │
└─┴──┴──┴──┘
したがって
C = (or (not A) B)
と簡約化できることがわかります。
したがってパッチは
(if (or (>= 500 rttl) (>= rcnt (- rttl 100))
(= 0 (% rcnt 20)))
(mew-net-status buf "Scanning" (format "%d/%d" rcnt rttl)))
とするのがよさげです。
補足:
not A = (not (and (< 500 rttl) (< rcnt (- rttl 100))))
= (or (not (< 500 rttl) (not (< rcnt (- rttl 100))))) ∵ドモルガンの定理
= (or (>= 500 rttl) (>= rcnt (- rttl 100)))
(or (or X Y) Z) == (or X Y Z)
--
KOIE Hidetaka 鯉江英隆 <hide at example.com>
Mew-dist メーリングリストの案内