X-Git-Url: http://cgit.sxemacs.org/?p=riece;a=blobdiff_plain;f=lisp%2Friece-ctlseq.el;h=bf3d4b36d8a284b0934b01902e133ac88f4d061c;hp=70dc7973e89da95026d3e6cd215444b03452a0de;hb=95b883e8b5a04061f08263f9d5214b0ddbe92134;hpb=1593ebc6a65fd3189e4d1f7b5e3719bc203d63ed diff --git a/lisp/riece-ctlseq.el b/lisp/riece-ctlseq.el index 70dc797..bf3d4b3 100644 --- a/lisp/riece-ctlseq.el +++ b/lisp/riece-ctlseq.el @@ -1,4 +1,4 @@ -;;; riece-ctlseq.el --- highlight control sequences in channel buffers +;;; riece-ctlseq.el --- mark up control sequences in IRC buffers ;; 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-ctlseq) +;; NOTE: This is an add-on module for Riece. ;;; Code: @@ -33,7 +32,8 @@ (require 'riece-misc) (defgroup riece-ctlseq nil - "Highlight control sequences in IRC buffer." + "Mark up control sequences in IRC buffer." + :prefix "riece-" :group 'riece) (defcustom riece-ctlseq-colors @@ -57,6 +57,9 @@ (defvar riece-ctlseq-face-cache nil) (defvar riece-ctlseq-face-counter 0) +(defconst riece-ctlseq-description + "Mark up control sequences in IRC buffers.") + (defun riece-ctlseq-compatible-attributes-p (this other) (let ((pointer this)) (catch 'mismatched @@ -151,28 +154,29 @@ attrs))) (defun riece-ctlseq-message-filter (message) - (let ((start 0) - (end (length (riece-message-text message))) - attrs) - (while (string-match - "[\x2\xF\x16\x1F]\\|\x3\\([0-9]+\\)?\\(,[0-9]+\\)?" - (riece-message-text message) start) - (if riece-ctlseq-hide-controls - (put-text-property (match-beginning 0) (match-end 0) - 'invisible 'riece-ctlseq - (riece-message-text message))) - (if attrs - (put-text-property start (match-beginning 0) - 'riece-ctlseq-attributes (copy-sequence attrs) - (riece-message-text message))) - (setq start (match-end 0) - attrs (riece-ctlseq-update-attributes - (match-string 0 (riece-message-text message)) attrs))) - (if (and (< start end) attrs) - (put-text-property start end - 'riece-overlay-face - (riece-ctlseq-face-from-cache attrs) - (riece-message-text message)))) + (if (get 'riece-ctlseq 'riece-addon-enabled) + (let ((start 0) + (end (length (riece-message-text message))) + attrs) + (while (string-match + "[\x2\xF\x16\x1F]\\|\x3\\([0-9]+\\)?\\(,[0-9]+\\)?" + (riece-message-text message) start) + (if riece-ctlseq-hide-controls + (put-text-property (match-beginning 0) (match-end 0) + 'invisible 'riece-ctlseq + (riece-message-text message))) + (if attrs + (put-text-property start (match-beginning 0) + 'riece-ctlseq-attributes (copy-sequence attrs) + (riece-message-text message))) + (setq start (match-end 0) + attrs (riece-ctlseq-update-attributes + (match-string 0 (riece-message-text message)) attrs))) + (if (and (< start end) attrs) + (put-text-property start end + 'riece-overlay-face + (riece-ctlseq-face-from-cache attrs) + (riece-message-text message))))) message) (defun riece-ctlseq-requires () @@ -181,6 +185,9 @@ (defun riece-ctlseq-insinuate () (add-hook 'riece-message-filter-functions 'riece-ctlseq-message-filter)) +(defun riece-ctlseq-uninstall () + (remove-hook 'riece-message-filter-functions 'riece-ctlseq-message-filter)) + (provide 'riece-ctlseq) ;;; riece-ctlseq.el ends here