Fix quoting of help for functions with odd names
commitb2205626370071bc85dc07b043c833bc50c0baec
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 11 Jun 2015 17:23:46 +0000 (11 10:23 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 11 Jun 2015 17:24:38 +0000 (11 10:24 -0700)
tree9f317202483e1a28bd75cd4faddb521d708006d2
parenteda386fc71419a6ec33f2f5fe73d7cb7ce51c028
Fix quoting of help for functions with odd names

While investigating Bug#20759, I discovered other quoting problems:
C-h f mishandled characters like backslash and quote in function names.
This fix changes the behavior so that 'C-h f pcase RET' now
generates "... (\` QPAT) ..." instead of "... (` QPAT) ...",
because '(format "%S" '(` FOO))' returns "(\\` FOO)".  A comment
in src/lread.c's read1 function says that the backslash will be
needed starting in Emacs 25, which implies that 'format' is
correct and the old pcase documention was wrong to omit the backslash.
* lisp/emacs-lisp/nadvice.el (advice--make-docstring):
* lisp/help-fns.el (help-fns--signature):
* lisp/help.el (help-add-fundoc-usage):
* lisp/progmodes/elisp-mode.el (elisp-function-argstring):
Use help--make-usage-docstring rather than formatting
help-make-usage.
* lisp/emacs-lisp/pcase.el (pcase--make-docstring):
Return raw docstring.
* lisp/help-fns.el (help-fns--signature): New arg RAW, to return
raw docstring.  Take more care to distinguish raw from cooked dstrings.
(describe-function-1): Let help-fns--signature substitute
command keys.
* lisp/help.el (help--docstring-quote): New function.
(help-split-fundoc): Use it, to quote funny characters more
systematically.
(help--make-usage): Rename from help-make-usage, since this
should be private.  Leave an obsolete alias for the old name.
(help--make-usage-docstring): New function.
* test/automated/help-fns.el (help-fns-test-funny-names): New test.
lisp/emacs-lisp/nadvice.el
lisp/emacs-lisp/pcase.el
lisp/help-fns.el
lisp/help.el
lisp/progmodes/elisp-mode.el
test/automated/help-fns.el