1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-06 07:31:13 -08:00

Fix automatic filling of docstring in cl-defstruct

* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Fix bug where a paragraph
was filled as if it were a single line, which led to garbled
output in the docstring.  (Bug#50839)

* test/lisp/subr-tests.el
(subr-test-internal--format-docstring-line): New test.
This commit is contained in:
Stefan Kangas 2021-09-27 11:26:31 +02:00
parent 2403deca2b
commit 3d2d7e8ea2
2 changed files with 16 additions and 4 deletions

View file

@ -3080,12 +3080,12 @@ Supported keywords for slots are:
`(nth ,pos cl-x))))))
(push slot slots)
(push default-value defaults)
;; The arg "cl-x" is referenced by name in eg pred-form
;; The arg "cl-x" is referenced by name in e.g. pred-form
;; and pred-check, so changing it is not straightforward.
(push `(,defsym ,accessor (cl-x)
,(internal--format-docstring-line
"Access slot \"%s\" of `%s' struct CL-X.%s"
slot name
,(concat
(internal--format-docstring-line
"Access slot \"%s\" of `%s' struct CL-X." slot name)
(if doc (concat "\n" doc) ""))
(declare (side-effect-free t))
,access-body)

View file

@ -767,6 +767,18 @@ See https://debbugs.gnu.org/cgi/bugreport.cgi?bug=19350."
(should-not (equal dir default-directory))
(should (file-exists-p default-directory)))))
(ert-deftest subr-test-internal--format-docstring-line ()
(should
(string= (let ((fill-column 60))
(internal--format-docstring-line
"Emacs is the advanced, extensible, customizable, \
self-documenting editor. This manual describes how to edit with Emacs and \
some of the ways to customize it; it corresponds to GNU Emacs version 28.1."))
"Emacs is the advanced, extensible, customizable,
self-documenting editor. This manual describes how to edit
with Emacs and some of the ways to customize it; it
corresponds to GNU Emacs version 28.1.")))
(ert-deftest test-ensure-list ()
(should (equal (ensure-list nil) nil))
(should (equal (ensure-list :foo) '(:foo)))