diff options
| -rw-r--r-- | lisp/erc/erc-backend.el | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el index b52c8f5454f..daaa1b0428a 100644 --- a/lisp/erc/erc-backend.el +++ b/lisp/erc/erc-backend.el | |||
| @@ -493,9 +493,19 @@ The current buffer is given by BUFFER." | |||
| 493 | 4 erc-server-send-ping-interval | 493 | 4 erc-server-send-ping-interval |
| 494 | #'erc-server-send-ping | 494 | #'erc-server-send-ping |
| 495 | buffer)) | 495 | buffer)) |
| 496 | (setq erc-server-ping-timer-alist (cons (cons buffer | 496 | |
| 497 | erc-server-ping-handler) | 497 | ;; I check the timer alist for an existing timer. If one exists, |
| 498 | erc-server-ping-timer-alist))))) | 498 | ;; I get rid of it |
| 499 | (let ((timer-tuple (assq buffer erc-server-ping-timer-alist))) | ||
| 500 | (if timer-tuple | ||
| 501 | ;; this buffer already has a timer. Cancel it and set the new one | ||
| 502 | (progn | ||
| 503 | (erc-cancel-timer (cdr timer-tuple)) | ||
| 504 | (setf (cdr (assq buffer erc-server-ping-timer-alist)) erc-server-ping-handler)) | ||
| 505 | |||
| 506 | ;; no existing timer for this buffer. Add new one | ||
| 507 | (add-to-list 'erc-server-ping-timer-alist | ||
| 508 | (cons buffer erc-server-ping-handler))))))) | ||
| 499 | 509 | ||
| 500 | (defun erc-server-process-alive (&optional buffer) | 510 | (defun erc-server-process-alive (&optional buffer) |
| 501 | "Return non-nil when BUFFER has an `erc-server-process' open or running." | 511 | "Return non-nil when BUFFER has an `erc-server-process' open or running." |