Function: erc-server-filter-function
erc-server-filter-function is a byte-compiled function defined in
erc-backend.el.gz.
Signature
(erc-server-filter-function PROCESS STRING)
Documentation
The process filter for the ERC server.
Source Code
;; Defined in /usr/src/emacs/lisp/erc/erc-backend.el.gz
(defun erc-server-filter-function (process string)
"The process filter for the ERC server."
(with-current-buffer (process-buffer process)
(setq erc-server-last-received-time (erc-current-time))
;; If you think this is written in a weird way - please refer to the
;; docstring of `erc-server-processing-p'
(if erc-server-processing-p
(setq erc-server-filter-data
(if erc-server-filter-data
(concat erc-server-filter-data string)
string))
;; This will be true even if another process is spawned!
(let ((erc-server-processing-p t))
(setq erc-server-filter-data (if erc-server-filter-data
(concat erc-server-filter-data
string)
string))
(while (and erc-server-filter-data
(string-match "[\n\r]+" erc-server-filter-data))
(let ((line (substring erc-server-filter-data
0 (match-beginning 0))))
(setq erc-server-filter-data
(if (= (match-end 0)
(length erc-server-filter-data))
nil
(substring erc-server-filter-data
(match-end 0))))
(erc-log-irc-protocol line nil)
(erc-parse-server-response process line)))))))