From: Mattias EngdegÄrd Date: Wed, 18 Jan 2023 17:41:39 +0000 (+0100) Subject: Improved docstring single quote warning X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=efb9ec11bbee3871d77dc4e9217bd9293d525d5d;p=emacs.git Improved docstring single quote warning * lisp/emacs-lisp/bytecomp.el (byte-compile-docstring-style-warn): More robust regexp. More explicit warning message. --- diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index fb4b73b1c14..aa9521e5a65 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -1772,10 +1772,16 @@ It is too wide if it has any lines longer than the largest of kind name col)) ;; There's a "naked" ' character before a symbol/list, so it ;; should probably be quoted with \=. - (when (string-match-p "\\( [\"#]\\|[ \t]\\|^\\)'[a-z(]" docs) + (when (string-match-p (rx (| (in " \t") bol) + (? (in "\"#")) + "'" + (in "A-Za-z" "(")) + docs) (byte-compile-warn-x - name "%s%sdocstring has wrong usage of unescaped single quotes (use \\= or different quoting)" - kind name)) + name + (concat "%s%sdocstring has wrong usage of unescaped single quotes" + " (use \\=%c or different quoting such as %c...%c)") + kind name ?' ?` ?')) ;; There's a "Unicode quote" in the string -- it should probably ;; be an ASCII one instead. (when (byte-compile-warning-enabled-p 'docstrings-non-ascii-quotes)