diff options
author | Glenn Morris <rgm@gnu.org> | 2014-06-30 14:26:34 -0400 |
---|---|---|
committer | Glenn Morris <rgm@gnu.org> | 2014-06-30 14:26:34 -0400 |
commit | 0224bf74b28fea8cc64e80390b0210e3909dd81b (patch) | |
tree | d8a4e409562bfbc95b5173a8261599639c39981b | |
parent | c6ecf7f23d99a7c51a9372fefb261ddca89a1db2 (diff) | |
download | emacs-0224bf74b28fea8cc64e80390b0210e3909dd81b.tar.gz |
Get rid of the AUTOGEN_VCS variable in lisp/Makefile
* lisp/emacs-lisp/autoload.el (autoload-ensure-writable): New variable.
(autoload-ensure-default-file): Maybe make existing output writable.
* lisp/Makefile.in (AUTOGEN_VCS): Remove.
(autoloads): Use autoload-ensure-writable rather than AUTOGEN_VCS.
-rw-r--r-- | lisp/ChangeLog | 7 | ||||
-rw-r--r-- | lisp/Makefile.in | 14 | ||||
-rw-r--r-- | lisp/emacs-lisp/autoload.el | 21 |
3 files changed, 27 insertions, 15 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index cbf8329d583..877560e5f62 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2014-06-30 Glenn Morris <rgm@gnu.org> + + * emacs-lisp/autoload.el (autoload-ensure-writable): New variable. + (autoload-ensure-default-file): Maybe make existing output writable. + * Makefile.in (AUTOGEN_VCS): Remove. + (autoloads): Use autoload-ensure-writable rather than AUTOGEN_VCS. + 2014-06-30 Fabián Ezequiel Gallina <fgallina@gnu.org> * emacs-lisp/subr-x.el (string-reverse): Use `reverse'. diff --git a/lisp/Makefile.in b/lisp/Makefile.in index 45a964b0d70..eba63666ddb 100644 --- a/lisp/Makefile.in +++ b/lisp/Makefile.in @@ -70,17 +70,6 @@ AUTOGENEL = loaddefs.el \ cedet/srecode/loaddefs.el \ org/org-loaddefs.el -# Versioned files that are the value of someone's `generated-autoload-file'. -AUTOGEN_VCS = \ - ps-print.el \ - obsolete/tpu-edt.el \ - mail/rmail.el \ - dired.el \ - ibuffer.el \ - htmlfontify.el \ - emacs-lisp/eieio.el \ - textmodes/reftex.el - # Value of max-lisp-eval-depth when compiling initially. # During bootstrapping the byte-compiler is run interpreted when compiling # itself, and uses more stack than usual. @@ -182,7 +171,6 @@ finder-data: --eval '(setq generated-finder-keywords-file (unmsys--file-name "$(srcdir)/finder-inf.el"))' \ -f finder-compile-keywords-make-dist $$wins -# The chmod +w is to handle env var CVSREAD=1. # Use expand-file-name rather than $abs_scrdir so that Emacs does not # get confused when it compares file-names for equality. # @@ -190,10 +178,10 @@ finder-data: # If you want to allow autoloads in such files, remove that, # and make this depend on leim. autoloads: $(LOADDEFS) - cd $(lisp) && chmod +w $(AUTOGEN_VCS) $(setwins_almost); \ echo Directories: $$wins; \ $(emacs) -l autoload \ + --eval '(setq autoload-ensure-writable t)' \ --eval '(setq autoload-builtin-package-versions t)' \ --eval '(setq generated-autoload-file (expand-file-name (unmsys--file-name "$(srcdir)/loaddefs.el")))' \ -f batch-update-autoloads $$wins diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el index 361e8fa7c68..38956df66de 100644 --- a/lisp/emacs-lisp/autoload.el +++ b/lisp/emacs-lisp/autoload.el @@ -351,9 +351,26 @@ not be relied upon." ";;; " basename " ends here\n"))) +(defvar autoload-ensure-writable nil + "Non-nil means `autoload-ensure-default-file' makes existing file writable.") +;; Just in case someone tries to get you to overwrite a file that you +;; don't want to. +;;;###autoload +(put 'autoload-ensure-writable 'risky-local-variable t) + (defun autoload-ensure-default-file (file) - "Make sure that the autoload file FILE exists and if not create it." - (unless (file-exists-p file) + "Make sure that the autoload file FILE exists, creating it if needed. +If the file already exists and `autoload-ensure-writable' is non-nil, +make it writable." + (if (file-exists-p 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) |