]> git.eshelyaron.com Git - emacs.git/commit
(apropos-documentation): Don't try to parse .elc files
authorStefan Monnier <monnier@iro.umontreal.ca>
Sat, 14 Jan 2023 14:26:17 +0000 (09:26 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sat, 14 Jan 2023 14:26:17 +0000 (09:26 -0500)
commit48bd17923a98f49a30bdce2f3a52e03fe45d63f0
treefe8d2172a193c0c68a3fafab5909b66fb58d4869
parentad6d8f7df180a9563d3f064f29c6366f114b8de0
(apropos-documentation): Don't try to parse .elc files

The old code scanned for #@ in .elc files, assuming they're
docstrings and then looking around them to try and guess to which
definition that docstring belongs, making many assumptions about how
the code happens to be layed out by bytecomp.
Replace that with code which relies on the (FILE . POS) info to
extract the docstring knowing already where they are and what def they
belong to.

* lisp/apropos.el (apropos-documentation-check-elc-file): Delete function.
(apropos--documentation-add-from-elc): New function to replace it.
(apropos--documentation-add): New function, extracted from
`apropos-documentation`.
(apropos-documentation): Use them.  Let-bind `apropos-accumulator` and
`apropos-files-scanned`.
(apropos-documentation-internal): Don't handle the `cons` case any more.
(apropos-item): Don't declare as global var.
(apropos-documentation-check-doc-file): Use `apropos-item` as a local
var rather than a global var.
(apropos-print-doc): Receive `apropos-item` as arg rather than refer to
it as a global variable.
(apropos-print): Adjust calls accordingly.
lisp/apropos.el