mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-22 07:09:54 +00:00
Bind current erc-response around all handlers
* lisp/erc/erc-backend.el (erc--parsed-response): New variable to be the internal version of the ancient `erc-message-parsed', which is only available during `erc-display-message', and therefore of somewhat limited utility. (erc-call-hooks): Bind `erc--parsed-response' to the parsed `erc-response' object for the duration of its handling. Bind `erc--msg-prop-overrides' around all hooks to allow response handlers to influence inserted msg props for any `erc-display-message' calls. (Bug#72736)
This commit is contained in:
parent
b0ebb82076
commit
15545e15a3
@ -1534,11 +1534,15 @@ See also `erc-server-responses'."
|
||||
(gethash (format (if (numberp command) "%03i" "%s") command)
|
||||
erc-server-responses))
|
||||
|
||||
(defvar erc--parsed-response nil)
|
||||
|
||||
(defun erc-call-hooks (process message)
|
||||
"Call hooks associated with MESSAGE in PROCESS.
|
||||
|
||||
Finds hooks by looking in the `erc-server-responses' hash table."
|
||||
(let ((hook (or (erc-get-hook (erc-response.command message))
|
||||
(let ((erc--parsed-response message)
|
||||
(erc--msg-prop-overrides erc--msg-prop-overrides)
|
||||
(hook (or (erc-get-hook (erc-response.command message))
|
||||
'erc-default-server-functions)))
|
||||
(run-hook-with-args-until-success hook process message)
|
||||
;; Some handlers, like `erc-cmd-JOIN', open new targets without
|
||||
|
Loading…
Reference in New Issue
Block a user