]> git.eshelyaron.com Git - emacs.git/commitdiff
(cvs-mode-add-change-log-entry-other-window): Use
authorStefan Monnier <monnier@iro.umontreal.ca>
Sat, 8 Sep 2007 03:11:43 +0000 (03:11 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sat, 8 Sep 2007 03:11:43 +0000 (03:11 +0000)
add-log-buffer-file-name-function rather than bind buffer-file-name,
so we dont end up calling change-log-mode in *cvs* when `fi' is the
ChangeLog file itself.

lisp/ChangeLog
lisp/pcvs.el

index 58bd6a36f350377b7e061c54986a4df9efd29534..055cdc75af3c3e10af94b6f710007e2758046c6a 100644 (file)
@@ -1,5 +1,10 @@
 2007-09-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+       * pcvs.el (cvs-mode-add-change-log-entry-other-window): Use
+       add-log-buffer-file-name-function rather than bind buffer-file-name,
+       so we dont end up calling change-log-mode in *cvs* when `fi' is the
+       ChangeLog file itself.
+
        * outline.el (outline-flag-region): Use front-advance.
 
 2007-09-07  Ilya Zakharevich  <ilyaz@cpan.org>
index 295300434477bdba6fa62e174c747be25b7fc25e..d533796ee50b42efd3ca09b37714bf6fe6becd13 100644 (file)
@@ -2210,13 +2210,21 @@ With prefix argument, prompt for cvs flags."
 (defun-cvs-mode cvs-mode-add-change-log-entry-other-window ()
   "Add a ChangeLog entry in the ChangeLog of the current directory."
   (interactive)
+  ;; Require `add-log' explicitly, because if it gets autoloaded when we call
+  ;; add-change-log-entry-other-window below, the
+  ;; add-log-buffer-file-name-function ends up unbound when we leave the `let'.
+  (require 'add-log)
   (dolist (fi (cvs-mode-marked nil nil))
     (let* ((default-directory (cvs-expand-dir-name (cvs-fileinfo->dir fi)))
-          (buffer-file-name (expand-file-name (cvs-fileinfo->file fi))))
-      (if (file-directory-p buffer-file-name)
-          ;; Be careful to use a directory name, otherwise add-log starts
-          ;; looking for a ChangeLog file in the parent dir.
-          (setq buffer-file-name (file-name-as-directory buffer-file-name)))
+          (add-log-buffer-file-name-function
+            (lambda ()
+              (let ((file (expand-file-name (cvs-fileinfo->file fi))))
+                (if (file-directory-p file)
+                    ;; Be careful to use a directory name, otherwise add-log
+                    ;; starts looking for a ChangeLog file in the
+                    ;; parent dir.
+                    (file-name-as-directory file)
+                  file)))))
       (kill-local-variable 'change-log-default-name)
       (save-excursion (add-change-log-entry-other-window)))))