* riece-keepalive.el (riece-keepalive-after-login-hook): Suppress
[riece] / lisp / riece-keepalive.el
index a3148b3..c0c25a6 100644 (file)
 
 ;; You should have received a copy of the GNU General Public License
 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
 
 ;;; Commentary:
 
-;; To use, add the following line to your ~/.riece/init.el:
-;; (add-to-list 'riece-addons 'riece-keepalive)
+;; NOTE: This is an add-on module for Riece.
 
 ;;; Code:
 
-(defvar riece-keepalive-ping-repeat 120)
+(require 'riece-options)
+(require 'riece-server)
+
+(defgroup riece-keepalive nil
+  "Keep an IRC connection."
+  :prefix "riece-"
+  :group 'riece)
+
+(defcustom riece-keepalive-ping-repeat 120
+  "Interval for sending PING to server."
+  :type 'integer
+  :group 'riece-keepalive)
+
 (defvar riece-keepalive-timer nil)
 
+(defconst riece-keepalive-description
+  "Keep an IRC connection.")
+
 (defun riece-keepalive-after-login-hook ()
   (make-local-variable 'riece-keepalive-timer)
   (unless riece-keepalive-timer
@@ -39,8 +53,7 @@
          (riece-run-at-time
           riece-keepalive-ping-repeat riece-keepalive-ping-repeat
           (lambda (buffer)
-            (save-excursion
-              (set-buffer buffer)
+            (with-current-buffer buffer
               (riece-send-string "PING riece-keepalive\r\n")))
           (current-buffer)))))
 
     (setq riece-keepalive-timer nil)))
 
 (defun riece-keepalive-insinuate ()
-  (add-hook 'riece-after-login-hook #'riece-keepalive-after-login-hook)
-  (add-hook 'riece-after-close-hook #'riece-keepalive-after-close-hook))
+  (add-hook 'riece-after-login-hook 'riece-keepalive-after-login-hook)
+  (add-hook 'riece-after-close-hook 'riece-keepalive-after-close-hook))
+
+(defun riece-keepalive-uninstall ()
+  (remove-hook 'riece-after-login-hook 'riece-keepalive-after-login-hook)
+  (remove-hook 'riece-after-close-hook 'riece-keepalive-after-close-hook))
 
 (provide 'riece-keepalive)