[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 メーリングリストの案内