[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master d6d5020: Don't duplicate autoload code in package.e
From: |
Glenn Morris |
Subject: |
[Emacs-diffs] master d6d5020: Don't duplicate autoload code in package.el |
Date: |
Tue, 9 May 2017 13:03:36 -0400 (EDT) |
branch: master
commit d6d5020c2593a1e8ac2fe7ef4f217cfbcacfd32d
Author: Glenn Morris <address@hidden>
Commit: Glenn Morris <address@hidden>
Don't duplicate autoload code in package.el
* lisp/emacs-lisp/autoload.el (autoload-rubric): Add a package option.
* lisp/emacs-lisp/package.el (autoload-rubric): Declare.
(package-autoload-ensure-default-file): Use autoload-rubric.
---
lisp/emacs-lisp/autoload.el | 30 +++++++++++++++++++-----------
lisp/emacs-lisp/package.el | 20 ++++----------------
2 files changed, 23 insertions(+), 27 deletions(-)
diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el
index 8ad5e6b..f6b09dc 100644
--- a/lisp/emacs-lisp/autoload.el
+++ b/lisp/emacs-lisp/autoload.el
@@ -355,24 +355,32 @@ put the output in."
(defun autoload-rubric (file &optional type feature)
"Return a string giving the appropriate autoload rubric for FILE.
TYPE (default \"autoloads\") is a string stating the type of
-information contained in FILE. If FEATURE is non-nil, FILE
-will provide a feature. FEATURE may be a string naming the
-feature, otherwise it will be based on FILE's name.
+information contained in FILE. TYPE \"package\" acts like the default,
+but adds an extra line to the output to modify `load-path'.
+
+If FEATURE is non-nil, FILE will provide a feature. FEATURE may
+be a string naming the feature, otherwise it will be based on
+FILE's name.
At present, a feature is in fact always provided, but this should
not be relied upon."
- (let ((basename (file-name-nondirectory file)))
+ (let ((basename (file-name-nondirectory file))
+ (lp (if (equal type "package") (setq type "autoloads"))))
(concat ";;; " basename
" --- automatically extracted " (or type "autoloads") "\n"
";;\n"
";;; Code:\n\n"
- "\n"
- ;; This is used outside of autoload.el, eg cus-dep, finder.
- "(provide '"
- (if (stringp feature)
- feature
- (file-name-sans-extension basename))
- ")\n"
+ (if lp
+ ;; `load-path' should contain only directory names.
+ "(add-to-list 'load-path (directory-file-name (or
(file-name-directory #$) (car load-path))))\n\n"
+ (concat
+ ;; This is used outside of autoload.el, eg cus-dep, finder.
+ "\n"
+ "(provide '"
+ (if (stringp feature)
+ feature
+ (file-name-sans-extension basename))
+ ")\n"))
";; Local Variables:\n"
";; version-control: never\n"
";; no-byte-compile: t\n"
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index 7ae7fff..c0ecb04 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -905,25 +905,13 @@ untar into a directory named DIR; otherwise, signal an
error."
nil pkg-file nil 'silent))))
;;;; Autoload
-;; From Emacs 22, but changed so it adds to load-path.
+(declare-function autoload-rubric "autoload" (file &optional type feature))
+
(defun package-autoload-ensure-default-file (file)
"Make sure that the autoload file FILE exists and if not create it."
(unless (file-exists-p file)
- (write-region
- (concat ";;; " (file-name-nondirectory file)
- " --- automatically extracted autoloads\n"
- ";;\n"
- ";;; Code:\n"
- ;; `load-path' should contain only directory names
- "(add-to-list 'load-path (directory-file-name (or
(file-name-directory #$) (car load-path))))\n"
- "\n;; Local Variables:\n"
- ";; version-control: never\n"
- ";; no-byte-compile: t\n"
- ";; no-update-autoloads: t\n"
- ";; End:\n"
- ";;; " (file-name-nondirectory file)
- " ends here\n")
- nil file nil 'silent))
+ (require 'autoload)
+ (write-region (autoload-rubric file "package" nil) nil file nil 'silent))
file)
(defvar generated-autoload-file)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master d6d5020: Don't duplicate autoload code in package.el,
Glenn Morris <=