Commit 2eb7ccf4 authored by Stefan Monnier's avatar Stefan Monnier

(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.
parent d05c87ac
......@@ -326,6 +326,22 @@ current buffer to the complete file name."
(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 @@ non-nil, otherwise in local time."
;; 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.
(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)))
;; 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)
(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)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment