(or (log-edit-empty-buffer-p)
(and (local-variable-p 'vc-log-fileset)
(not (equal vc-log-fileset fileset))))
- `((log-edit-listfun . (lambda ()
- ;; FIXME: Should expand the list
- ;; for directories.
- (mapcar 'file-relative-name
- ',fileset)))
+ `((log-edit-listfun
+ . (lambda ()
+ ;; FIXME: Should expand the list for directories.
+ ;; Is the above still relevant? If so, it needs a
+ ;; better explanation. -- dgutov
+ (let ((root (vc-root-dir)))
+ ;; Returns paths relative to the root, so that
+ ;; `log-edit-changelog-insert-entries'
+ ;; substitutes them in correctly later, even when
+ ;; `vc-checkin' was called from a file buffer, or
+ ;; a non-root VC-Dir buffer.
+ (mapcar
+ (lambda (file) (file-relative-name file root))
+ ',fileset))))
(log-edit-diff-function . vc-diff)
(log-edit-vc-backend . ,backend)
(vc-log-fileset . ,fileset))