[Mew-dist 03798] Re: Mew 1.93b6: mew-config breaks out mew-config-list setting ?
SAKAI Kiyotaka
ksakai at example.com
1998年 2月 17日 (火) 17:55:26 JST
>> In article <19980213192705D.matusita at example.com>, Makoto MATSUSHITA (まつしたまこと) <matusita at example.com> writes:
> そもそもは,
> 0) XXX YYY ZZZ という3つの単語が mew-config-list に書いてあるとして
> 1)「Config: XXX」となっている状態で(この行の末尾で) C-c TAB すると XXX
> が YYY になったり ZZZ になったりはするけど
> 2)「Config: X」となっている状態で(この行の末尾で) C-c TAB すると
> 「Config: XXX」となる
> 3)「Config: XXX,Y」と書いている状態で(この行の末尾で) C-c TAB しても
> 「Config: XXX,YYY」とはならない(XXX,Y ではじまる値を mew-config-list
> から探そうとするから)
> という話を書きたかったのでした.Config の値として "XXX,YYY" をさらに書
> けば良いといえばそうなのですが,書きたいのは "XXX" と "YYY" を並べた物
> であって "XXX,YYY" でないはずなので,"XXX,YYY" を mew-config-list に書
> かせるのは何となく違う気がしています.
これは C-c TAB の方を変更するべきことであって、mew-config-list の設定
で対応するべきことではないと思います。
以下のパッチで対応できると思いますが、どうでしょうか?
# ついでに、Config: のある行で TAB を押すと circular はせずに補完のみ
# の動作を行うようにしてみました。
--
酒井 清隆 (E-mail: ksakai at example.com)
Index: mew-complete.el
===================================================================
RCS file: /home/cvsroot/mew-1.93b14/mew-complete.el,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 mew-complete.el
--- mew-complete.el 1998/02/17 08:41:08 1.1.1.1
+++ mew-complete.el 1998/02/17 08:50:44
@@ -120,6 +120,19 @@
)
))
+(defun mew-complete-config ()
+ (interactive)
+ (let ((word (mew-delete-value ",")))
+ (if (null word)
+ (tab-to-tab-stop)
+ (mew-complete
+ word
+ (mew-slide-pair mew-config-list)
+ "mew-config-list"
+ nil) ;; use car
+ )
+ ))
+
;;
;; Circular completion: C-cC-t
;;
@@ -158,9 +171,9 @@
)
))
-(defun mew-complete-circular (msg clist cname)
+(defun mew-complete-circular (msg clist cname &optional here)
(interactive)
- (let ((str (mew-delete-value)))
+ (let ((str (mew-delete-value here)))
(if (null str)
(if (car clist)
(insert (car clist))
@@ -176,9 +189,9 @@
(interactive)
(mew-complete-circular "from" mew-from-list "mew-from-list"))
-(defun mew-complete-config ()
+(defun mew-complete-config-circular ()
(interactive)
- (mew-complete-circular "config" mew-config-list "mew-config-list"))
+ (mew-complete-circular "config" mew-config-list "mew-config-list" ","))
;;
;; Hart function for completions
@@ -276,7 +289,7 @@
)
))
-(defun mew-delete-value ()
+(defun mew-delete-value (&optional here)
(beginning-of-line)
(if (not (looking-at "[^:]+:"))
()
@@ -288,6 +301,10 @@
nil
(let ((start (point)) ret)
(end-of-line)
+ (if (and here (re-search-backward (regexp-quote here) start t))
+ (progn
+ (setq start (1+ (point)))
+ (end-of-line)))
(setq ret (buffer-substring start (point)))
(delete-region start (point))
ret))))
Index: mew-vars.el
===================================================================
RCS file: /home/cvsroot/mew-1.93b14/mew-vars.el,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 mew-vars.el
--- mew-vars.el 1998/02/17 08:41:10 1.1.1.1
+++ mew-vars.el 1998/02/17 08:49:18
@@ -467,7 +467,8 @@
("Dcc:" . mew-complete-address)
("Bcc:" . mew-complete-address)
("Reply-To:" . mew-complete-address)
- ("Fcc:" . mew-complete-folder))
+ ("Fcc:" . mew-complete-folder)
+ ("Config:" . mew-complete-config)))
"*Completion function alist concerned with the key."
)
@@ -478,7 +479,7 @@
("Bcc:" . mew-complete-domain)
("Reply-To:" . mew-complete-domain)
("From:" . mew-complete-from)
- ("Config:" . mew-complete-config))
+ ("Config:" . mew-complete-config-circular))
"*Circular completion function alist concerned with the key."
)
Mew-dist メーリングリストの案内