]> git.eshelyaron.com Git - emacs.git/commitdiff
Add subcommand dispatch facility to erc-cmd-HELP
authorF. Jason Park <jp@neverwas.me>
Sat, 25 Mar 2023 16:13:40 +0000 (09:13 -0700)
committerF. Jason Park <jp@neverwas.me>
Sat, 8 Apr 2023 21:23:50 +0000 (14:23 -0700)
* lisp/erc/erc.el (erc-cmd-HELP): Change signature by adding &rest
parameter.  Look for symbol property `erc--cmd-help' and, if found,
assume it's a function and call it with &rest args after attempting to
autoload the primary command symbol.  (Bug#62444.)

lisp/erc/erc.el

index f0ea7510c65c52388b4fd1d3b1671cb623dbc0ba..f76c770f585613c42d56062609b5ab875c2ea6ac 100644 (file)
@@ -3204,7 +3204,7 @@ VERSION and so on.  It is called with ARGS."
     (erc-send-ctcp-message nick str)
     t))
 
-(defun erc-cmd-HELP (&optional func)
+(defun erc-cmd-HELP (&optional func &rest rest)
   "Popup help information.
 
 If FUNC contains a valid function or variable, help about that
@@ -3237,6 +3237,10 @@ For a list of user commands (/join /part, ...):
                           nil)))))
         (if sym
             (cond
+             ((get sym 'erc--cmd-help)
+              (when (autoloadp (symbol-function sym))
+                (autoload-do-load (symbol-function sym)))
+              (apply (get sym 'erc--cmd-help) rest))
              ((boundp sym) (describe-variable sym))
              ((fboundp sym) (describe-function sym))
              (t nil))