From 2497a31646db4d255135c16f7b5b318421c5d845 Mon Sep 17 00:00:00 2001 From: Lars Ingebrigtsen Date: Wed, 9 Oct 2019 09:06:33 +0200 Subject: [PATCH] Upcase parameters in things like "&optional (arg 3)" * lisp/help.el (help--make-usage): Upcase cl-defgeneric (etc) parameter names (bug#23517). --- lisp/help.el | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lisp/help.el b/lisp/help.el index 1ae4b2c38d9..3b3d1f977e1 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -1469,13 +1469,22 @@ the same names as used in the original source code, when possible." (defun help--make-usage (function arglist) (cons (if (symbolp function) function 'anonymous) (mapcar (lambda (arg) - (if (not (symbolp arg)) arg + (cond + ;; Parameter name. + ((symbolp arg) (let ((name (symbol-name arg))) (cond ((string-match "\\`&" name) arg) ((string-match "\\`_." name) (intern (upcase (substring name 1)))) - (t (intern (upcase name))))))) + (t (intern (upcase name)))))) + ;; Parameter with a default value (from + ;; cl-defgeneric etc). + ((and (consp arg) + (symbolp (car arg))) + (cons (intern (upcase (symbol-name (car arg)))) (cdr arg))) + ;; Something else. + (t arg))) arglist))) (define-obsolete-function-alias 'help-make-usage 'help--make-usage "25.1")