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