+(defcustom riece-ignore-discard-message 'log
+ "If t, messages from ignored user are completely discarded.
+If 'log, messages are removed from IRC buffers, but they are saved in
+`riece-ignore-buffer'.
+Otherwise, they are not removed from IRC buffers, but are hidden with
+'invisible text-property."
+ :group 'riece-ignore
+ :type '(choice (const :tag "Discard completely" t)
+ (const :tag "Discard but save logs" log)
+ (const :tag "Make messages invisible" nil)))
+
+(defcustom riece-ignore-buffer-name "*Ignore*"
+ "The name of buffer where ignored messages are stored."
+ :group 'riece-ignore
+ :type 'string)
+
+(defcustom riece-startup-ignored-user-list nil
+ "List of user names whose messages are ignored."
+ :group 'riece-ignore
+ :type '(repeat string))
+
+(defvar riece-ignore-buffer nil)
+
+(defconst riece-ignore-description
+ "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))
+ riece-ignored-user-list)))
+ (if pointer
+ (setcar pointer (nth 1 (riece-signal-args signal))))))
+
+(defun riece-ignore-user (user toggle)