[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
M-x emacs-version
- X-ml-count: 7325
- Subject: M-x emacs-version
- From: Tetsuo Tsukamoto <czkmt@xxxxxxxxxxxxxxx>
- Date: Sun, 26 Aug 2007 19:04:20 +0900
- User-agent: Gnus/5.110007 (No Gnus v0.7) Emacs/22.1 (gnu/linux)
こんばんは。
(emacs-version)
"GNU Emacs 22.1.1 (i386-mingw-nt5.0.2195)
of 2007-07-08 on CUBE
URL: http://svn.meadowy.org/Meadow/trunk
Last Changed Rev: 4213
Last Changed Date: 2007-07-07 09:39:18 +0900 (Sat, 07 Jul 2007)"
上記環境で、M-x emacs-version にてエコーエリアになにも表示されませ
んでした。本来なら
> GNU Emacs 22.1.1 (i386-mingw-nt5.0.2195) of 2007-07-08 on CUBE
のように表示されるはずだと思い、packages/lisp/default.el を変更した
ら表示されるようになりました。
どうも interactive-p の値で挙動を変える関数への advice は注意が必要
なようです。
--
Tetsuo Tsukamoto
--- default.el.orig 2007-08-18 12:37:44.285875000 +0900
+++ default.el 2007-08-26 18:42:34.560875000 +0900
@@ -50,16 +50,22 @@
;; add svn revision
(when (featurep 'meadow)
- (defadvice emacs-version (after emacs-version-after activate)
+ (defadvice emacs-version (around emacs-version-around activate)
"Add svn revison to emacs-version(f)"
- (let ((info (expand-file-name "../.svn.info" data-directory))
+ (let ((value (if (interactive-p)
+ (call-interactively 'ad-Orig-emacs-version)
+ ad-do-it))
+ (info (expand-file-name "../.svn.info" data-directory))
str)
- (when (file-exists-p info)
+ (cond
+ ((file-exists-p info)
(save-excursion
(set-buffer (find-file-noselect info))
(setq str (buffer-substring-no-properties
(point-min) (- (point-max) 1)))
(kill-buffer nil))
- (setq ad-return-value (concat ad-return-value "\n" str))))))
+ (setq ad-return-value (concat value "\n" str)))
+ (t
+ (setq ad-return-value value))))))
;;; default.el ends here