]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix automatic filling of docstring in cl-defstruct
authorStefan Kangas <stefan@marxist.se>
Mon, 27 Sep 2021 09:26:31 +0000 (11:26 +0200)
committerStefan Kangas <stefan@marxist.se>
Mon, 27 Sep 2021 09:47:55 +0000 (11:47 +0200)
* 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.

lisp/emacs-lisp/cl-macs.el
test/lisp/subr-tests.el

index 833c1d19737cfe584d6a1326a053f7514745b198..4e0e323cfa1aa07a8a17124f4931f7a5859a1984 100644 (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)
index 695da10408ef1f3be5dc6a92c41d4ee06f5b631d..ed9a3d01498bd72377255f4ee4b5278c4af61a24 100644 (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)))