emacs-diffs
[Top][All Lists]
Advanced

[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)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]