Function: erc-decode-parsed-server-response
erc-decode-parsed-server-response is a byte-compiled function defined
in erc-backend.el.gz.
Signature
(erc-decode-parsed-server-response PARSED-RESPONSE)
Documentation
Decode a pre-parsed PARSED-RESPONSE before it can be handled.
If there is a channel name in erc-response.command-args, decode
erc-response according to this channel name and
erc-encoding-coding-alist, or use erc-server-coding-system
for decoding.
Source Code
;; Defined in /usr/src/emacs/lisp/erc/erc-backend.el.gz
(defun erc-decode-parsed-server-response (parsed-response)
"Decode a pre-parsed PARSED-RESPONSE before it can be handled.
If there is a channel name in `erc-response.command-args', decode
`erc-response' according to this channel name and
`erc-encoding-coding-alist', or use `erc-server-coding-system'
for decoding."
(let ((args (erc-response.command-args parsed-response))
(decode-target nil)
(decoded-args ()))
;; FIXME this should stop after the first match.
(dolist (arg args nil)
(when (string-match "^[#&].*" arg)
(setq decode-target arg)))
(when (stringp decode-target)
;; FIXME `decode-target' should be passed as TARGET.
(setq decode-target (erc-decode-string-from-target decode-target nil)))
(setf (erc-response.unparsed parsed-response)
(erc-decode-string-from-target
(erc-response.unparsed parsed-response)
decode-target))
(setf (erc-response.sender parsed-response)
(erc-decode-string-from-target
(erc-response.sender parsed-response)
decode-target))
(setf (erc-response.command parsed-response)
(erc-decode-string-from-target
(erc-response.command parsed-response)
decode-target))
(dolist (arg (nreverse args) nil)
(push (erc-decode-string-from-target arg decode-target)
decoded-args))
(setf (erc-response.command-args parsed-response) decoded-args)
(setf (erc-response.contents parsed-response)
(erc-decode-string-from-target
(erc-response.contents parsed-response)
decode-target))))