[mew-dist 22179] Re: Mew 3.1 release candidate 1
Hideyuki SHIRAI ( 白井秀行 )
shirai at example.com
2002年 11月 1日 (金) 19:53:59 JST
From: SAITO Takuya <tabmore at example.com> さん曰く
Subject: [mew-dist 22177] Re: Mew 3.1 release candidate 1
Message-ID: <20021101.181400.41628662.tabmore at example.com>
Date: Fri, 01 Nov 2002 18:14:00 +0900 (JST)
> "g" でミニバッファからフォルダを入力する際に、
> "case:-" まで入力してから C-s とすると (mew-nntp-folder-alist case)
> から検索してくれるのですが、RET で確定すると "case:" が消えてしまいます。
>
> また、ミニバッファに "-" のみ入力してから C-s すると
> (mew-nntp-folder-alist nil)
> から検索するようですが、その一方でミニバッファに
> "-fj.mail.reader.mew" と入力して RET を押したときに
> mew-case-input:-fj.mail.reader.mew に移動するというのは分かりにくい
> と思います。 (mew-nntp-folder-alist mew-case-input) から検索して欲しいです。
こんな感じだとおもいます。
Index: mew-minibuf.el
===================================================================
RCS file: /cvsroot/shirai/mew/mew/mew-minibuf.el,v
retrieving revision 1.103
diff -u -r1.103 mew-minibuf.el
--- mew-minibuf.el 28 Oct 2002 06:30:44 -0000 1.103
+++ mew-minibuf.el 1 Nov 2002 10:36:57 -0000
@@ -133,7 +133,10 @@
(setq case:fld mew-input-folder-search-original)
(if mew-input-folder-search-point
(setq case:fld (substring case:fld mew-input-folder-search-point)))
- (setq case (car (mew-folder-case case:fld)))
+ (if (setq case (car (mew-folder-case case:fld)))
+ (setq mew-input-folder-search-point
+ (+ (or mew-input-folder-search-point 0) (length (concat case ":"))))
+ (setq case (or mew-inherit-case (mew-sinfo-get-case))))
(setq fld (mew-folder-folder case:fld))
(mew-input-folder-display)
(if (or (null fld) (string= fld ""))
しかし、これ考えているときに矛盾を発見してしまいました。バグの様
な気がします。
今、『hoge:%inbox』という folder を mew-case-input が『foo』の状
態で見ていて "g" したとします。そうすると、
(defun mew-input-folder (default &optional local-only)
(mew-input-clear)
(mew-input-folder-clean-up)
(setq mew-input-folder-search-multi nil)
(let ((prefix (mew-folder-prefix default))
(mew-inherit-case (mew-sinfo-get-case)) <= (1)
(mew-input-complete-function
(if local-only 'mew-complete-local-folder 'mew-complete-folder))
<<snip>>
(directory-file-name folder)))
(1) で summary から得られる case 『hoge』を mew-inherit-case に入
れて、mew-complete-folder() => mew-complete-folder2() の
(t
(setq case (or mew-inherit-case (mew-sinfo-get-case)))
(cond
<<snip>>
((mew-folder-nntpp word)
(mew-complete word (mew-nntp-folder-alist case) "newsgroup" nil))
((mew-folder-imapp word)
(mew-complete word (mew-imap-folder-alist case) "mailbox" nil))
ここで『hoge』で補完用の alist を得ています。そして、『hoge』の
case で見つかる "%tmp" を入力すると、
(defun mew-summary-goto-folder (&optional goend)
(interactive "P")
(let* ((proto (mew-proto-to-go (mew-summary-folder-name 'ext)))
(inbox (mew-proto-inbox-folder proto mew-case-input))
(fld (mew-input-folder inbox))
(folder (mew-canonicalize-case-folder fld))
fld には『hoge: で補完した %tmp』が入っていますが、
mew-canonicalize-case-folder() は mew-case-input をつけるため
最終的な folder は "foo:%tmp" になります。hoge には "%tmp" があ
るけど foo には "%tmp" が無いと × になります。
## mew-inherit-case と mew-case-input とどちらを優先すべきかはわ
## からんです。ぼくはどっちでも良いかも ^^;;;
--
白井秀行 (mailto:shirai at example.com)
Mew-dist メーリングリストの案内