(package-obsolete-list): Rename from package-obsolete-alist, and make
it into a simple list of package-desc.
(package-strip-version): Remove.
(package-built-in-p): Use package--builtin-versions.
(package-mark-obsolete): Simplify.
(package-process-define-package): Mark it obsolete if older than the
builtin version.
(package-handle-response): Use line-end-position.
(package-read-archive-contents, package--download-one-archive):
Simplify.
(package--add-to-archive-contents): Skip if older than the builtin or
installed version.
(package-menu-describe-package): Fix last change.
(package-list-unversioned): New var.
(package-menu--generate): Use it.
* lisp/Makefile.in (autoloads): Set autoload-builtin-package-versions.
* lisp/startup.el (package--builtin-versions): New var.
(package-subdirectory-regexp): Remove.
(package--description-file): Hard code its value instead.
* lisp/emacs-lisp/autoload.el: Manage package--builtin-versions.
(autoload--insert-text, autoload--insert-cookie-text): New functions.
(autoload-builtin-package-versions): New variable.
(autoload-generate-file-autoloads): Use them.
Remove the list of autoloaded functions/macros from the
(autoload...) comments.
* lisp/emacs-lisp/package.el: Use defstruct.
(package-desc): New, main struct.
(package--bi-desc, package--ac-desc): New structs, used to describe the
format in external files.
(package-desc-vers): Replace with package-desc-version accessor.
(package-desc-doc): Replace with package-desc-summary accessor.
(package-activate-1): Remove `package' arg since the pkg-vec now
includes the name.
(define-package): Use package-desc-from-define.
(package-unpack-single): Change file-name arg to be a symbol.
(package--add-to-archive-contents): Use package-desc-create and new
accessor functions to package--ac-desc.
(package-buffer-info, package-tar-file-info): Return a package-desc.
(package-install-from-buffer): Remove `type' argument. Change pkg-info
arg to be a package-desc.
(package-install-file): Adjust accordingly. Use \' to match EOS.
(package--from-builtin): New function.
(describe-package-1, package-menu--generate): Use it.
(package--make-autoloads-and-compile): Change name arg to be a symbol.
(package-generate-autoloads): Idem and return the name of the file.
* lisp/emacs-lisp/package-x.el (package-upload-buffer-internal):
Change pkg-info arg to be a package-desc.
Use package-make-ac-desc.
(package-upload-file): Use \' to match EOS.
* lisp/finder.el (finder-compile-keywords): Use package-make-builtin.
* finder.el: Load finder-inf using `require'.
(finder-list-matches): Sorting by status is now the default.
(finder-compile-keywords): Simpify printing.
* emacs-lisp/package.el (package--read-archive-file): Just use
`read', to avoid copying an additional string.
(package-menu-mode): Set header-line-format here.
(package-menu-refresh, package-menu-revert): Signal an error if
not in the Package Menu.
(package-menu-package-list): New var.
(package--generate-package-list): Operate on the current buffer;
don't assume that it is *Packages*, since the user may rename it.
Allow persistent package listings and sort keys using
package-menu-package-list and package-menu-package-sort-key.
(package-menu--version-predicate): Fix version calculation.
(package-menu-sort-by-column): Don't select the window.
(package--list-packages): Create the *Packages* buffer. Set
package-menu-package-list-key.
(list-packages): Sorting by status is now the default.
(package-buffer-info): Use match-string-no-properties.
(define-package): Add a &rest argument for future proofing, but
don't use it yet.
(package-install-from-buffer, package-install-buffer-internal):
Merged into a single function, package-install-from-buffer.
(package-install-file): Caller changed.
Also, fix headers for hfy-cmap.el and ps-print.el.
* lisp/finder.el: Require `package'.
(finder-known-keywords): Tweak descriptions. Retire `oop' keyword.
(finder-package-info): Var deleted.
(finder-keywords-hash, finder--builtins-alist): New vars.
(finder-compile-keywords): Compute package--builtins and
finder-keywords-hash instead of finder-keywords-hash, respecting
the "Package" header.
(finder-unknown-keywords, finder-list-matches): Use
finder-keywords-hash and package--list-packages.
(finder-mode): Don't set font-lock-defaults.
(finder-exit): We don't use "*Finder-package*" and "*Finder
Category*" buffers anymore.
* lisp/info.el (Info-finder-find-node): Search package-alist instead of
finder-package-info.
* lisp/emacs-lisp/package.el (package--builtins-base): Var deleted.
(package--builtins): Set default value to nil.
(package-initialize): Load precomputed value of package--builtins
from finder-inf.el.
(package-alist, package-compute-transaction)
(package-download-transaction): Improve docstring.
(package-read-all-archive-contents): Do not change
package--builtins here.
(list-packages): Make package-list-packages an alias for this.
Sort by status by default.
(package--list-packages): Add optional PACKAGES arg.
(describe-package-1): Use font-lock-face property. For built-in
packages, insert file commentary.
(package--generate-package-list): Rename from
package-list-packages-internal; all callers changed. Add optional
PACKAGES arg. Add alphabetical sort fallbacks.
(package-menu--version-predicate, package-menu--status-predicate)
(package-menu--description-predicate)
(package-menu--name-predicate): New functions.
* info.el (Info-finder-find-node): Add node "all"
with all package info. Handle a list of multiple keywords
separated by comma.
(info-finder): In interactive use with a prefix argument,
use `completing-read-multiple' to read a list of keywords
separated by comma.
* finder.el (finder-unknown-keywords): New function.
* info.el (Info-finder-find-node): Use `finder-unknown-keywords'
to create a Finder node with unknown keywords.
* finder.el (finder-compile-keywords): Replace `princ' with
`prin1' on a list of symbols interned from keyword strings.
* emacs-lisp/lisp-mnt.el (lm-keywords-list): If `keywords' contains
a comma, then split keywords using a comma and optional whitespace.
Otherwise, split by whitespace.
* complete.el:
* face-remap.el:
* log-view.el:
* net/hmac-def.el:
* net/hmac-md5.el:
* net/netrc.el:
* progmodes/mixal-mode.el: Fix keywords.
(finder-compile-keywords): Move let to where needed.
(finder-mouse-face-on-line): Go back one more line if needed.
(finder-list-matches): Use cadr.
(finder-goto-xref): New function.
(finder-commentary): Add buttons to jump to foo.el libraries.
(generated-finder-keywords-file): Doc fix.
(finder-no-scan-regexp): New variable.
(finder-compile-keywords): Use a single let binding. Disable undo in
the output buffer. Use autoload-rubric. Use mapc rather than mapcar.
Don't scan files matching finder-no-scan-regexp. Use
with-temp-buffer. Use expand-file-name rather than concat. Use
directory-files to do regexp matching. No need to require jka-compr.
(finder-list-keywords): Remove un-needed set-buffer. Disable undo.
(finder-list-matches): Disable undo.
(finder-commentary): Use let rather than let*. Disable undo.
(finder-current-item): Use zerop.
(finder-mode): Use define-derived-mode.
(finder-exit): Doc fix. Use dolist.
(finder-mode): Use finder-mode-syntax-table. Set font-lock-defaults.
(finder-exit): Ignore errors rather than avoiding them.
Kill *Finder-package* buffer also.