# HG changeset patch # User Stefan Monnier # Date 969488512 0 # Node ID 7e8ab579609bcd4c6aad45869375c933e0a6d432 # Parent 8ddefe8b533ed7a54ddc0a6deb983f4607f63488 (add-log-file-name): New function (split out of add-change-log-entry). (add-change-log-entry): Use it. Call add-log-file-name-function with the changelog file name if the current buffer is not associated with any file. Avoid find-file if the selected window is dedicated. diff -r 8ddefe8b533e -r 7e8ab579609b lisp/add-log.el --- a/lisp/add-log.el Wed Sep 20 20:39:36 2000 +0000 +++ b/lisp/add-log.el Wed Sep 20 22:21:52 2000 +0000 @@ -326,6 +326,22 @@ (set (make-local-variable 'change-log-default-name) file-name) file-name) +(defun add-log-file-name (buffer-file log-file) + ;; Never want to add a change log entry for the ChangeLog file itself. + (unless (or (null buffer-file) (string= buffer-file log-file)) + (setq buffer-file + (if (string-match + (concat "^" (regexp-quote (file-name-directory log-file))) + buffer-file) + (substring buffer-file (match-end 0)) + (file-name-nondirectory buffer-file))) + ;; If we have a backup file, it's presumably because we're + ;; comparing old and new versions (e.g. for deleted + ;; functions) and we'll want to use the original name. + (if (backup-file-name-p buffer-file) + (file-name-sans-versions buffer-file) + buffer-file))) + ;;;###autoload (defun add-change-log-entry (&optional whoami file-name other-window new-entry) "Find change log file and add an entry for today. @@ -355,34 +371,21 @@ ;; s/he can edit the full name field in prompter if s/he wants. (setq add-log-mailing-address (read-input "Mailing address: " add-log-mailing-address)))) + + (setq file-name (expand-file-name (or file-name (find-change-log file-name)))) + (let ((defun (add-log-current-defun)) (version (and change-log-version-info-enabled (change-log-version-number-search))) - bound entry) - - (setq file-name (expand-file-name (find-change-log file-name))) + ;; Set ENTRY to the file name to use in the new entry. + (entry (if buffer-file-name + (add-log-file-name buffer-file-name file-name) + (if add-log-file-name-function + (funcall add-log-file-name-function file-name)))) + bound) - ;; Set ENTRY to the file name to use in the new entry. - (and buffer-file-name - ;; Never want to add a change log entry for the ChangeLog file itself. - (not (string= buffer-file-name file-name)) - (if add-log-file-name-function - (setq entry - (funcall add-log-file-name-function buffer-file-name)) - (setq entry - (if (string-match - (concat "^" (regexp-quote (file-name-directory - file-name))) - buffer-file-name) - (substring buffer-file-name (match-end 0)) - (file-name-nondirectory buffer-file-name))) - ;; If we have a backup file, it's presumably because we're - ;; comparing old and new versions (e.g. for deleted - ;; functions) and we'll want to use the original name. - (if (backup-file-name-p entry) - (setq entry (file-name-sans-versions entry))))) - - (if (and other-window (not (equal file-name buffer-file-name))) + (if (or (and other-window (not (equal file-name buffer-file-name))) + (window-dedicated-p (selected-window))) (find-file-other-window file-name) (find-file file-name)) (or (eq major-mode 'change-log-mode)