Bind cross-buffer buffer-local variable correctly.

This fixes bug#68200.

* lisp/emacs-lisp/bytecomp.el (byte-compile-output-docform):
Note that let-binding a buffer local variable leaves it buffer
local, hence to transfer the binding of
byte-compile-dynamic-docstrings to the output buffer, an
intermediate variable is needed.  Implement this.
This commit is contained in:
Alan Mackenzie 2024-01-11 17:54:47 +00:00
parent fbc4a3c7de
commit 07bb8dc0af

View file

@ -2605,9 +2605,10 @@ list that represents a doc string reference.
`defvaralias', `autoload' and `custom-declare-variable' need that."
;; We need to examine byte-compile-dynamic-docstrings
;; in the input buffer (now current), not in the output buffer.
(let ((byte-compile-dynamic-docstrings byte-compile-dynamic-docstrings))
(let ((dynamic-docstrings byte-compile-dynamic-docstrings))
(with-current-buffer byte-compile--outbuffer
(let ((position (point))
(let ((byte-compile-dynamic-docstrings dynamic-docstrings)
(position (point))
(print-continuous-numbering t)
print-number-table
;; FIXME: The bindings below are only needed for when we're