[mew-dist 18090] Re: リージョンでのマークについて
Hideyuki SHIRAI ( 白井秀行 )
shirai at example.com
2001年 7月 16日 (月) 17:05:59 JST
From: Tatsuya Kinoshita <tats at example.com> さん曰く
Subject: [mew-dist 18086] Re: リージョンでのマークについて
Message-ID: <20010715.232129.78718167.05 at example.com>
Date: Sun, 15 Jul 2001 23:21:29 +0900 (JST)
tats> In message [mew-dist 18080], on Sun, 15 Jul 2001,
tats> > 個人的には、行中のどこに cursor が存在するか?で挙動を変えるのは
tats> > やめた方がいいと思います。
tats>
tats> 「regionに含まれる行」を、処理対象としたいのです。region-endが行頭
tats> の場合、その最終行はregionに含まれていません。
(体がなれてしまえば :-)それで全然かまわないのですが、木下さんの
パッチだと通常の summary で普通に使っているときは、
"C-spc" => "C-n"... => "C-u ma"
とすると cursor が行頭にあるので、最後の行は含まれませんが、
thread + mew-use-thread-cursor = t のときは、通常 cursor が行の
途中にあるので、同じことをやっても最後の行が含まれますよね。
# こういうのがいやだったので、point がある行は含む、という単純な
# ルールの方が良いなと考えたのでした。
# 以前は message number の前か後かで 挙動が変わったから 余計面倒
# くさかったのでした。で、当時、どういう挙動がいいかを悩んだこと
# がありまして、(たしか)mew-nmz は『point がある行』に勝手に統一
# していました。
ぼくの好みの順番でいうと、
1. point がある行は region に含める。(現状)
2. 直前のコマンドが "C-a" ならその行を region に含めない。その他
のコマンドだったら region に含める。
(last-command を使う)
3. end が行頭ならその行を region に含めない。(木下さんのパッチ)
4. end が行末ならその行を region に含める。
2. のコード
(setq end (progn (goto-char end)
(if (eq last-command 'beginning-of-line)
(beginning-of-line)
(forward-line))
(point)))
## けど、これはわかりにくいな。
4. のコード
(setq end (progn (goto-char end)
(if (eq (char-after) ?\n)
(forward-line)
(beginning-of-line))
(point)))
## invisible な領域 に cursor があると見た目で判断できませんね。
なのですが、C-a or C-e する癖をつければいいだけだし、特にこだわ
りません。
P.S.
"C-u tt" にも同様の問題があるので、見解が出たら挙動を統一した方
が良いと思います。特に、beg が行の途中で、最初が message number
に間違える(日付、時刻など)ものだと、そこまでちょん切ったものが出
力されてしまいます。
例)
↓ここで C-spc して、C-n 数回
1379 01/01/2000 3k Murata Takashi [11960] y2k patch for im-134
1380 01/01/2000 2k Murata Takashi [11961] Re: y2k patch for im-134
1381 01/02/2000 3k Masachika ISHIZUKA [11962] Re: 1.95b16
1382 01/02/2000 2k Masachika ISHIZUKA [11963] Re: 1.95b16
適当に "C-u tt" すると、2000 を message number と間違えて、
2000 3k Murata Takashi [11960] y2k patch for im-134
1380 01/01/2000 2k ┗Murata Takashi [11961] Re: y2k patch for im-134
1381 01/02/2000 3k Masachika ISHIZUKA [11962] Re: 1.95b16
1382 01/02/2000 2k ┗Masachika ISHIZUKA [11963] Re: 1.95b16
となる。もし、『point がある行は region に含む』なら、こんなパッ
チでしょう。
--
白井秀行 (mailto:shirai at example.com)
Index: mew-thread.el
===================================================================
RCS file: /cvsroot/shirai/mew/mew/mew-thread.el,v
retrieving revision 1.88
diff -c -c -r1.88 mew-thread.el
*** mew-thread.el 2001/07/16 00:25:33 1.88
--- mew-thread.el 2001/07/16 07:37:50
***************
*** 267,286 ****
tm1 tm2 tm3 tm4 tm5 tm6
db size top start me prnt prnt-cld my-id prnt-id func msg line)
(message "Making thread (first pass) ... ")
! (save-restriction
! (narrow-to-region beg end)
! (setq size (mew-count-lines beg end))
! (cond
! ((<= size 211)
! (setq size 211))
! ((<= size 1511)
! (setq size 1511))
! ((<= size 7211)
! (setq size 7211))
! (t
! (setq size 18211)))
! (setq db (make-vector size 0))
! (save-excursion
(goto-char (point-min))
(if mark
(setq func (lambda ()
--- 267,288 ----
tm1 tm2 tm3 tm4 tm5 tm6
db size top start me prnt prnt-cld my-id prnt-id func msg line)
(message "Making thread (first pass) ... ")
! (save-excursion
! (setq end (progn (goto-char end) (forward-line) (point)))
! (setq beg (progn (goto-char beg) (beginning-of-line) (point)))
! (save-restriction
! (narrow-to-region beg end)
! (setq size (mew-count-lines beg end))
! (cond
! ((<= size 211)
! (setq size 211))
! ((<= size 1511)
! (setq size 1511))
! ((<= size 7211)
! (setq size 7211))
! (t
! (setq size 18211)))
! (setq db (make-vector size 0))
(goto-char (point-min))
(if mark
(setq func (lambda ()
Mew-dist メーリングリストの案内