emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master b27a8f1: Signal error on newline in internal--format-docstring-li


From: Stefan Kangas
Subject: master b27a8f1: Signal error on newline in internal--format-docstring-line
Date: Tue, 28 Sep 2021 08:15:07 -0400 (EDT)

branch: master
commit b27a8f15549f12b363acfde8101849af10e9b401
Author: Stefan Kangas <stefan@marxist.se>
Commit: Stefan Kangas <stefan@marxist.se>

    Signal error on newline in internal--format-docstring-line
    
    * lisp/subr.el (internal--format-docstring-line): Signal error
    when trying to fill a line containing a newline.
    
    * lisp/cedet/semantic/decorate/mode.el
    (define-semantic-decoration-style):
    * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
    Don't pass newlines to 'internal--format-docstring-line'.
---
 lisp/cedet/semantic/decorate/mode.el | 8 +++++---
 lisp/emacs-lisp/easy-mmode.el        | 8 +++++---
 lisp/subr.el                         | 5 ++++-
 3 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/lisp/cedet/semantic/decorate/mode.el 
b/lisp/cedet/semantic/decorate/mode.el
index 2763410..6271fb1 100644
--- a/lisp/cedet/semantic/decorate/mode.el
+++ b/lisp/cedet/semantic/decorate/mode.el
@@ -409,9 +409,11 @@ decoration API found in this library."
        ;; Create an override method to specify if a given tag belongs
        ;; to this type of decoration
        (define-overloadable-function ,predicate (tag)
-         ,(internal--format-docstring-line
-           "Return non-nil to decorate TAG with `%s' style.\n%s"
-           name doc))
+         ,(concat
+           (internal--format-docstring-line
+            "Return non-nil to decorate TAG with `%s' style."
+            name)
+           "\n" doc))
        ;; Create an override method that will perform the highlight
        ;; operation if the -p method returns non-nil.
        (define-overloadable-function ,highlighter (tag)
diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el
index 0e4d6ee..d37bca2 100644
--- a/lisp/emacs-lisp/easy-mmode.el
+++ b/lisp/emacs-lisp/easy-mmode.el
@@ -496,15 +496,17 @@ on if the hook has explicitly disabled it.
        (define-minor-mode ,global-mode
          ,(concat (format "Toggle %s in all buffers.\n" pretty-name)
                   (internal--format-docstring-line
-                   "With prefix ARG, enable %s if ARG is positive; otherwise, \
-disable it.\n\n"
+                   (concat "With prefix ARG, enable %s if ARG is positive; "
+                           "otherwise, disable it.")
                    pretty-global-name)
+                  "\n\n"
                   "If called from Lisp, toggle the mode if ARG is `toggle'.
 Enable the mode if ARG is nil, omitted, or is a positive number.
 Disable the mode if ARG is a negative number.\n\n"
                   (internal--format-docstring-line
-                   "%s is enabled in all buffers where `%s' would do it.\n\n"
+                   "%s is enabled in all buffers where `%s' would do it."
                    pretty-name turn-on)
+                  "\n\n"
                   (internal--format-docstring-line
                    "See `%s' for more information on %s."
                    mode pretty-name)
diff --git a/lisp/subr.el b/lisp/subr.el
index 8cb79b2..1d298080 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -6435,8 +6435,11 @@ of fill.el (for example `fill-region')."
       (concat fst (internal--fill-string-single-line lst)))))
 
 (defun internal--format-docstring-line (string &rest objects)
-  "Format a documentation string out of STRING and OBJECTS.
+  "Format a single line from a documentation string out of STRING and OBJECTS.
+Signal an error if STRING contains a newline.
 This is intended for internal use only."
+  (when (string-match "\n" string)
+    (error "Unable to fill string containing newline: %S" string))
   (internal--fill-string-single-line (apply #'format string objects)))
 
 (defun json-available-p ()



reply via email to

[Prev in Thread] Current Thread [Next in Thread]