diff options
| author | Sean Whitton | 2025-07-13 12:30:43 +0100 |
|---|---|---|
| committer | Sean Whitton | 2025-07-13 12:51:04 +0100 |
| commit | 24bd93b35bbca55cadcc0c6bc1bf0bb7c689a049 (patch) | |
| tree | 94fb6795983c9fc675a1e122c684c363bc542752 | |
| parent | 0c97e6aeca257833f97517459514145f663d8a93 (diff) | |
| download | emacs-24bd93b35bbca55cadcc0c6bc1bf0bb7c689a049.tar.gz emacs-24bd93b35bbca55cadcc0c6bc1bf0bb7c689a049.zip | |
vc-register: Fix setting backup-inhibited
* lisp/vc/vc.el (vc-register): Delete unreachable code trying to
use 'buffer-file-name' as one of the file names. Properly set
'backup-inhibited' in any file-visiting buffers.
| -rw-r--r-- | lisp/vc/vc.el | 43 |
1 files changed, 18 insertions, 25 deletions
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el index 63de0ae0c1b..3b388553916 100644 --- a/lisp/vc/vc.el +++ b/lisp/vc/vc.el | |||
| @@ -1719,34 +1719,27 @@ first backend that could register the file is used." | |||
| 1719 | ;; possibility to register directories rather than files only, since | 1719 | ;; possibility to register directories rather than files only, since |
| 1720 | ;; many VCS allow that as well. | 1720 | ;; many VCS allow that as well. |
| 1721 | (dolist (fname files) | 1721 | (dolist (fname files) |
| 1722 | (let ((bname (get-file-buffer fname))) | 1722 | (when (vc-call-backend backend 'registered fname) |
| 1723 | (unless fname | 1723 | (error "This file is already registered: %s" fname)) |
| 1724 | (setq fname buffer-file-name)) | 1724 | ;; Watch out for new buffers of size 0: the corresponding file |
| 1725 | (when (vc-call-backend backend 'registered fname) | 1725 | ;; does not exist yet, even though buffer-modified-p is nil. |
| 1726 | (error "This file is already registered: %s" fname)) | 1726 | (when-let* ((bname (get-file-buffer fname))) |
| 1727 | ;; Watch out for new buffers of size 0: the corresponding file | 1727 | (with-current-buffer bname |
| 1728 | ;; does not exist yet, even though buffer-modified-p is nil. | 1728 | (when (and (not (buffer-modified-p)) |
| 1729 | (when bname | 1729 | (zerop (buffer-size)) |
| 1730 | (with-current-buffer bname | 1730 | (not (file-exists-p buffer-file-name))) |
| 1731 | (when (and (not (buffer-modified-p)) | 1731 | (set-buffer-modified-p t)) |
| 1732 | (zerop (buffer-size)) | 1732 | (vc-buffer-sync)))) |
| 1733 | (not (file-exists-p buffer-file-name))) | ||
| 1734 | (set-buffer-modified-p t)) | ||
| 1735 | (vc-buffer-sync))))) | ||
| 1736 | (message "Registering %s... " files) | 1733 | (message "Registering %s... " files) |
| 1737 | (mapc #'vc-file-clearprops files) | 1734 | (mapc #'vc-file-clearprops files) |
| 1738 | (vc-call-backend backend 'register files comment) | 1735 | (vc-call-backend backend 'register files comment) |
| 1739 | (mapc | 1736 | (dolist (fname files) |
| 1740 | (lambda (file) | 1737 | (vc-file-setprop fname 'vc-backend backend) |
| 1741 | (vc-file-setprop file 'vc-backend backend) | 1738 | (when-let* ((bname (get-file-buffer fname))) |
| 1742 | ;; FIXME: This is wrong: it should set `backup-inhibited' in all | 1739 | (with-current-buffer bname |
| 1743 | ;; the buffers visiting files affected by this `vc-register', not | 1740 | (unless vc-make-backup-files |
| 1744 | ;; in the current-buffer. | 1741 | (setq-local backup-inhibited t)))) |
| 1745 | ;; (unless vc-make-backup-files | 1742 | (vc-resynch-buffer fname t t)) |
| 1746 | ;; (setq-local backup-inhibited t)) | ||
| 1747 | |||
| 1748 | (vc-resynch-buffer file t t)) | ||
| 1749 | files) | ||
| 1750 | (message "Registering %s... done" files))) | 1743 | (message "Registering %s... done" files))) |
| 1751 | 1744 | ||
| 1752 | (defun vc-register-with (backend) | 1745 | (defun vc-register-with (backend) |