X-Git-Url: http://cgit.sxemacs.org/?p=riece;a=blobdiff_plain;f=lisp%2Friece-ignore.el;h=1bff32a2fe982c284224ff1f540a08b9cfc4e67a;hp=75f2ba576c6d1b52bdf76928c15650aa624a66e4;hb=c5b3e5f95254ee082408ed6c4a1b340b50300371;hpb=0082eb0326335a2d208ed93331d86228aaea233c diff --git a/lisp/riece-ignore.el b/lisp/riece-ignore.el index 75f2ba5..1bff32a 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)) @@ -98,7 +101,7 @@ Otherwise, they are not removed from IRC buffers, but are hidden with (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 @@ -109,8 +112,7 @@ Otherwise, they are not removed from IRC buffers, but are hidden with riece-ignore-buffer-name 'riece-dialogue-mode)) (riece-dialogue-mode))) - (save-excursion - (set-buffer riece-ignore-buffer) + (with-current-buffer riece-ignore-buffer (goto-char (point-max)) (let ((inhibit-read-only t) buffer-read-only) @@ -124,17 +126,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)