[Mew-dist 05176] use window-id in mew-current-{get|set|clear}
Masahiro MURATA ( 村田全寛 )
muse at example.com
1998年 6月 26日 (金) 21:12:10 JST
村田@神戸です。
Emacs-20.2 で
(setq frame-title-format
'("" invocation-name " [" emacs-version "]" " %b"))
のように frame のタイトルにバッファ名を付けていたため,
mew-current-{get|set|clear} 関数が期待通りに働いていないことが分りました。
# selected-frame が返す値にバッファ名が含まれてしまい,set と get で異な
# る変数を参照する。XEmacs だとそんなことはないんですが。
そこで,window-id だけを用いるように変更してみました(Mew-1.93b41に対す
るパッチ)。ただし -nw のときに "nil" となってしまうのがかっこ悪いですが
(^^;
--
村田 全寛 / MURATA Masahiro
-------------- next part --------------
--- mew.el.orig Fri Jun 26 19:53:42 1998
+++ mew.el Fri Jun 26 20:33:06 1998
@@ -116,13 +116,17 @@
("ConfigCases" . mew-config-cases))
)
+(defmacro mew-frame-id (&optional frame)
+ (` (let ((fram (or (, frame) (selected-frame))))
+ (cdr (assq 'window-id (frame-parameters fram))))))
+
(defun mew-current-get (key)
- (let ((frame-sym (intern (format "mew-frame-%s" (selected-frame)))))
+ (let ((frame-sym (intern (format "mew-frame-%s" (mew-frame-id)))))
(if (symbol-plist frame-sym)
(get frame-sym key))))
(defun mew-current-set (key value)
- (let ((frame-sym (intern (format "mew-frame-%s" (selected-frame)))))
+ (let ((frame-sym (intern (format "mew-frame-%s" (mew-frame-id)))))
(if (null (symbol-plist frame-sym))
(setplist frame-sym
(list
@@ -136,7 +140,7 @@
(defun mew-current-clear ()
(let ((frams (frame-list)))
(while frams
- (setplist (intern (format "mew-frame-%s" (car frams)))
+ (setplist (intern (format "mew-frame-%s" (mew-frame-id (car frams))))
(list
'message nil
'cache nil
Mew-dist メーリングリストの案内