[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/erc/erc.el,v
From: |
Miles Bader |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/erc/erc.el,v |
Date: |
Wed, 17 Jan 2007 18:17:35 +0000 |
CVSROOT: /cvsroot/emacs
Module name: emacs
Changes by: Miles Bader <miles> 07/01/17 18:17:35
Index: erc.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/erc/erc.el,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- erc.el 17 Jan 2007 18:17:25 -0000 1.24
+++ erc.el 17 Jan 2007 18:17:35 -0000 1.25
@@ -355,6 +355,17 @@
(cdr (assq (aref s (match-beginning 0)) c)))))
s))
+(defmacro erc-with-server-buffer (&rest body)
+ "Execute BODY in the current ERC server buffer.
+If no server buffer exists, return nil."
+ (let ((buffer (make-symbol "buffer")))
+ `(let ((,buffer (erc-server-buffer)))
+ (when (buffer-live-p ,buffer)
+ (with-current-buffer ,buffer
+ ,@body)))))
+(put 'erc-with-server-buffer 'lisp-indent-function 0)
+(put 'erc-with-server-buffer 'edebug-form-spec '(body))
+
(defstruct (erc-server-user (:type vector) :named)
;; User data
nickname host login full-name info
@@ -1339,6 +1350,14 @@
(and (eq major-mode 'erc-mode)
(null (erc-default-target)))))
+(defun erc-open-server-buffer-p (&optional buffer)
+ "Return non-nil if argument BUFFER is an ERC server buffer that
+has an open IRC process.
+
+If BUFFER is nil, the current buffer is used."
+ (and (erc-server-buffer-p)
+ (erc-server-process-alive)))
+
(defun erc-query-buffer-p (&optional buffer)
"Return non-nil if BUFFER is an ERC query buffer.
If BUFFER is nil, the current buffer is used."