Avoid generating invalid usage info for pathological function
Fixes: debbugs:19645 * lisp/help.el (help-make-usage): Don't turn a "_" arg into an empty-string. * lisp/emacs-lisp/cl-generic.el (cl--generic-lambda): Don't confuse a string body with a docstring.
This commit is contained in:
parent
74244d239e
commit
938bca8e41
3 changed files with 11 additions and 3 deletions
|
@ -1,3 +1,10 @@
|
|||
2015-01-22 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* help.el (help-make-usage): Don't turn a "_" arg into an empty-string
|
||||
arg (bug#19645).
|
||||
* emacs-lisp/cl-generic.el (cl--generic-lambda): Don't confuse a string
|
||||
body with a docstring.
|
||||
|
||||
2015-01-22 Dmitry Gutov <dgutov@yandex.ru>
|
||||
|
||||
* progmodes/xref.el (xref-location-marker, xref-location-group):
|
||||
|
|
|
@ -228,7 +228,8 @@ This macro can only be used within the lexical scope of a cl-generic method."
|
|||
"Make the lambda expression for a method with ARGS and BODY."
|
||||
(let ((plain-args ())
|
||||
(specializers nil)
|
||||
(doc-string (if (stringp (car-safe body)) (pop body)))
|
||||
(doc-string (if (and (stringp (car-safe body)) (cdr body))
|
||||
(pop body)))
|
||||
(mandatory t))
|
||||
(dolist (arg args)
|
||||
(push (pcase arg
|
||||
|
@ -252,7 +253,7 @@ This macro can only be used within the lexical scope of a cl-generic method."
|
|||
;; destructuring args, `declare' and whatnot).
|
||||
(pcase (macroexpand fun macroenv)
|
||||
(`#'(lambda ,args . ,body)
|
||||
(let* ((doc-string (and doc-string (stringp (car body))
|
||||
(let* ((doc-string (and doc-string (stringp (car body)) (cdr body)
|
||||
(pop body)))
|
||||
(cnm (make-symbol "cl--cnm"))
|
||||
(nmp (make-symbol "cl--nmp"))
|
||||
|
|
|
@ -1445,7 +1445,7 @@ the same names as used in the original source code, when possible."
|
|||
(let ((name (symbol-name arg)))
|
||||
(cond
|
||||
((string-match "\\`&" name) arg)
|
||||
((string-match "\\`_" name)
|
||||
((string-match "\\`_." name)
|
||||
(intern (upcase (substring name 1))))
|
||||
(t (intern (upcase name)))))))
|
||||
arglist)))
|
||||
|
|
Loading…
Add table
Reference in a new issue