(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"
- "\f\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\f\n"
+ (concat
+ ;; This is used outside of autoload.el, eg cus-dep, finder.
+ "\f\n"
+ "(provide '"
+ (if (stringp feature)
+ feature
+ (file-name-sans-extension basename))
+ ")\n"))
";; Local Variables:\n"
";; version-control: never\n"
";; no-byte-compile: t\n"
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"
- "\f\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)