Prevent bootstrap autoload backup files
* lisp/emacs-lisp/autoload (autoload-find-generated-file): Suppress backups in newly created file. (autoload-ensure-default-file): Function split into two. (autoload-ensure-file-writeable): New function from split. (Bug#23203)
This commit is contained in:
parent
9344612d3c
commit
c23c965bb9
1 changed files with 28 additions and 14 deletions
|
@ -234,9 +234,22 @@ If a buffer is visiting the desired autoload file, return it."
|
||||||
(enable-local-eval nil))
|
(enable-local-eval nil))
|
||||||
;; We used to use `raw-text' to read this file, but this causes
|
;; We used to use `raw-text' to read this file, but this causes
|
||||||
;; problems when the file contains non-ASCII characters.
|
;; problems when the file contains non-ASCII characters.
|
||||||
(let ((delay-mode-hooks t))
|
(let* ((delay-mode-hooks t)
|
||||||
(find-file-noselect
|
(file (autoload-generated-file))
|
||||||
(autoload-ensure-default-file (autoload-generated-file))))))
|
(file-missing (not (file-exists-p file))))
|
||||||
|
(when file-missing
|
||||||
|
(autoload-ensure-default-file file))
|
||||||
|
(with-current-buffer
|
||||||
|
(find-file-noselect
|
||||||
|
(autoload-ensure-file-writeable
|
||||||
|
file))
|
||||||
|
;; block backups when the file has just been created, since
|
||||||
|
;; the backups will just be the auto-generated headers.
|
||||||
|
;; bug#23203
|
||||||
|
(when file-missing
|
||||||
|
(setq buffer-backed-up t)
|
||||||
|
(save-buffer))
|
||||||
|
(current-buffer)))))
|
||||||
|
|
||||||
(defun autoload-generated-file ()
|
(defun autoload-generated-file ()
|
||||||
(expand-file-name generated-autoload-file
|
(expand-file-name generated-autoload-file
|
||||||
|
@ -357,21 +370,22 @@ not be relied upon."
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(put 'autoload-ensure-writable 'risky-local-variable t)
|
(put 'autoload-ensure-writable 'risky-local-variable t)
|
||||||
|
|
||||||
|
(defun autoload-ensure-file-writeable (file)
|
||||||
|
;; Probably pointless, but replaces the old AUTOGEN_VCS in lisp/Makefile,
|
||||||
|
;; which was designed to handle CVSREAD=1 and equivalent.
|
||||||
|
(and autoload-ensure-writable
|
||||||
|
(let ((modes (file-modes file)))
|
||||||
|
(if (zerop (logand modes #o0200))
|
||||||
|
;; Ignore any errors here, and let subsequent attempts
|
||||||
|
;; to write the file raise any real error.
|
||||||
|
(ignore-errors (set-file-modes file (logior modes #o0200))))))
|
||||||
|
file)
|
||||||
|
|
||||||
(defun autoload-ensure-default-file (file)
|
(defun autoload-ensure-default-file (file)
|
||||||
"Make sure that the autoload file FILE exists, creating it if needed.
|
"Make sure that the autoload file FILE exists, creating it if needed.
|
||||||
If the file already exists and `autoload-ensure-writable' is non-nil,
|
If the file already exists and `autoload-ensure-writable' is non-nil,
|
||||||
make it writable."
|
make it writable."
|
||||||
(if (file-exists-p file)
|
(write-region (autoload-rubric file) nil file))
|
||||||
;; Probably pointless, but replaces the old AUTOGEN_VCS in lisp/Makefile,
|
|
||||||
;; which was designed to handle CVSREAD=1 and equivalent.
|
|
||||||
(and autoload-ensure-writable
|
|
||||||
(let ((modes (file-modes file)))
|
|
||||||
(if (zerop (logand modes #o0200))
|
|
||||||
;; Ignore any errors here, and let subsequent attempts
|
|
||||||
;; to write the file raise any real error.
|
|
||||||
(ignore-errors (set-file-modes file (logior modes #o0200))))))
|
|
||||||
(write-region (autoload-rubric file) nil file))
|
|
||||||
file)
|
|
||||||
|
|
||||||
(defun autoload-insert-section-header (outbuf autoloads load-name file time)
|
(defun autoload-insert-section-header (outbuf autoloads load-name file time)
|
||||||
"Insert the section-header line,
|
"Insert the section-header line,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue