[mew-dist 18068] Re: "to" and "td"

Hideyuki SHIRAI ( 白井秀行 ) shirai at example.com
2001年 7月 13日 (金) 14:23:29 JST


From: Kazu Yamamoto (山本和彦) <kazu at example.com> さん曰く
Subject: [mew-dist 18066] Re: "to" and "td"
Message-ID: <20010713.131925.68538189.kazu at example.com>
Date: Fri, 13 Jul 2001 13:19:25 +0900 (JST)

kazu> > mew-thread-mark() の方は (mew-mark-afterstep mark 1) する前の処
kazu> > 理が save-excursion() で囲まれています。そのため、mark づけした
kazu> > 後の afterstep の実行行が thread の先頭になっているため、thread
kazu> > の2番目の message に行が移ります。
kazu> > これは、おそらく意図した動作では無いのでは?
kazu> 
kazu> 違うことを行っている可能性もありますが、"td" は正常ですが、"to" が異常
kazu> でした。これは、"to" が mew-mark-afterstep を 2 回呼び出していたせいで
kazu> す。直しました。

違うことでした。ぼくは、

    (setq mew-mark-afterstep-spec
	  (list
	   (list mew-mark-review    1 0 1 0 0 0 0)
	   (list mew-mark-multi     1 0 1 0 0 0 0)
	   (list mew-mark-delete    2 0 2 0 0 0 0)
	   (list mew-mark-unlink    2 0 2 0 0 0 0)
	    <<snip>>

のように review と multi は 
"1 means moving according to the direction"
を使っているのですが、

% 25  07/13 0008   2k Kazu Yamamoto (山本和彦) [mew-dist 18049] Re: 日本語Fromで
  78  07/13 1201   4k ┗SAITO Tetsuya (齊藤哲哉) [mew-dist 18061] Re: 日本語Fromで
  79  07/13 1206   3k  ┣To:mew-dist at example.com      [mew-dist 18062] Re: 日本語Fromで
  81  07/13 1211   3k  ┃┣To:mew-dist at example.com      [mew-dist 18064] Re: 日本語Fromで
  86  07/13 1310   3k  ┃┗SAITO Tetsuya (齊藤哲哉) [mew-dist 18065] Re: 日本語Fromで
  80  07/13 1209   2k  ┗Kazu Yamamoto (山本和彦) [mew-dist 18063] Re: 日本語Fromで
  87  07/13 1319   3k Kazu Yamamoto (山本和彦) [mew-dist 18066] Re: "to" and "td"

'%' の位置で "t*" とすると、全部の message に "*" をつけた後、
'78' にカーソルが動いて終了します。afterstep を '2' にしても
'78' の message を表示する以外は同じ挙動になります。

また、afterstep を '0' に変えると、"t*" しても '25' にとどまって
いるので、(当然ですが)かずさんの環境は default ままなのでしょう。

なお、"td", "to" も afterstep を '1' にすると、"t*" と同じ症状に
なります。'2' は '87' の message に動きました。

## 全然わかんないや。

kazu> > ふと思ったのですが、"tu" mew-thread-unmark() って便利かも。作っ
kazu> > てみたのですが、すでにぼくの mew-thread.el は original と違うの
kazu> > でパッチには出来ませんでした ^^;;;
kazu> 
kazu> 欲しいですが、つくる暇がないと思われます。

Original な mew で作ってみました。mew-thread-mark() などと比べる
と貧弱(遅い?)ですが、実用上は問題ないのではないかと。

(defun mew-thread-unmark ()
  "Thread のすべての mark を unmark する"
  (interactive)
  (mew-thread-only
   (mew-summary-msg-or-part
    (let* ((folder (mew-summary-folder-name))
	   (column (mew-summary-scan-form folder 'column))
	   (count 1)
	   (regex ""))
      (mew-summary-goto-message)
      (mew-summary-thread-move-cursor)
      (mew-decode-syntax-delete)
      (save-excursion
	(move-to-column column)
	(while (looking-at mew-thread-indent-regex)
	  (setq regex (concat regex mew-thread-indent-regex))
	  (forward-char mew-thread-indent-length))
	(setq regex (concat regex mew-thread-indent-regex))
	(forward-line)
	(catch 'loop
	  (while t
	    (move-to-column column)
	    (unless (mew-syntax-number)
	      (if (not (looking-at regex))
		  (throw 'loop nil)
		(setq count (1+ count))))
	    (forward-line))))
      (mew-summary-undo count)))))

-- 
白井秀行@面倒くさくなってきたから、X-Mail-Count: 17876 のパッチ
         捨てよう ;_;



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