• Paul Eggert's avatar
    Fix quoting of help for functions with odd names · b2205626
    Paul Eggert authored
    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.
    b2205626
help.el 58 KB