X-Git-Url: http://cgit.sxemacs.org/?p=riece;a=blobdiff_plain;f=lisp%2Friece-ignore.el;h=4a7af89bc1dd461bcdc50622395e2bdae8dd563e;hp=42a3396eca6f6ba7fd2095cf2c7b8cc4426d6008;hb=4078e29a9780cbfecc432dd4954c63fbeebd4a8d;hpb=e181f1a7f1ea36733e4604ffb97814d50c4e2295 diff --git a/lisp/riece-ignore.el b/lisp/riece-ignore.el index 42a3396..4a7af89 100644 --- a/lisp/riece-ignore.el +++ b/lisp/riece-ignore.el @@ -1,4 +1,4 @@ -;;; riece-ignore.el --- ignore user +;;; riece-ignore.el --- ignore messages from some users ;; Copyright (C) 1998-2004 Daiki Ueno ;; Author: Daiki Ueno @@ -19,13 +19,12 @@ ;; 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-ignore) +;; NOTE: This is an add-on module for Riece. ;;; Code: @@ -34,7 +33,8 @@ (require 'riece-message) (defgroup riece-ignore nil - "Ignore messages in IRC buffers." + "Ignore messages from some users." + :prefix "riece-" :group 'riece) (defcustom riece-ignore-discard-message 'log @@ -53,13 +53,16 @@ Otherwise, they are not removed from IRC buffers, but are hidden with :group 'riece-ignore :type 'string) -(defvar riece-ignore-buffer nil) -(defvar riece-ignored-user-list nil) +(defcustom riece-startup-ignored-user-list nil + "List of user names whose messages are ignored." + :group 'riece-ignore + :type '(repeat string)) -(defvar riece-ignore-enabled nil) +(defvar riece-ignore-buffer nil) (defconst riece-ignore-description - "Ignore users") + "Ignore messages from some users.") +(defvar riece-ignored-user-list nil) (defun riece-ignore-user-rename-signal-function (signal handback) (let ((pointer (riece-identity-member (car (riece-signal-args signal)) @@ -95,8 +98,10 @@ Otherwise, they are not removed from IRC buffers, but are hidden with 'user-renamed #'riece-ignore-user-rename-signal-function)))) +(eval-when-compile + (autoload 'riece-dialogue-mode "riece")) (defun riece-ignore-message-filter (message) - (if (and riece-ignore-enabled + (if (and (get 'riece-ignore 'riece-addon-enabled) (riece-identity-member (riece-message-speaker message) riece-ignored-user-list)) (if riece-ignore-discard-message @@ -122,17 +127,21 @@ Otherwise, they are not removed from IRC buffers, but are hidden with (defvar riece-command-mode-map) (defun riece-ignore-insinuate () + (setq riece-ignored-user-list + (mapcar #'riece-parse-identity riece-startup-ignored-user-list)) (add-hook 'riece-message-filter-functions 'riece-ignore-message-filter)) +(defun riece-ignore-uninstall () + (setq riece-ignored-user-list nil) + (remove-hook 'riece-message-filter-functions 'riece-ignore-message-filter)) + (defun riece-ignore-enable () (define-key riece-command-mode-map - "\C-ck" 'riece-ignore-user) - (setq riece-ignore-enabled t)) + "\C-ck" 'riece-ignore-user)) (defun riece-ignore-disable () (define-key riece-command-mode-map - "\C-ck" nil) - (setq riece-ignore-enabled nil)) + "\C-ck" nil)) (provide 'riece-ignore)