X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Friece-ctlseq.el;h=987e4cac52a8780ecdcfee72b6edf0ce3b04ab71;hb=dd2c976135cefa739cf397bcc9f7aff7dce3bbaa;hp=70dc7973e89da95026d3e6cd215444b03452a0de;hpb=feb2337af03836619a29847a6a5638278f7209c9;p=elisp%2Friece.git diff --git a/lisp/riece-ctlseq.el b/lisp/riece-ctlseq.el index 70dc797..987e4ca 100644 --- a/lisp/riece-ctlseq.el +++ b/lisp/riece-ctlseq.el @@ -57,6 +57,11 @@ (defvar riece-ctlseq-face-cache nil) (defvar riece-ctlseq-face-counter 0) +(defvar riece-ctlseq-enabled nil) + +(defvar riece-ctlseq-description + "Highlight control sequences in IRC buffers") + (defun riece-ctlseq-compatible-attributes-p (this other) (let ((pointer this)) (catch 'mismatched @@ -151,28 +156,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 riece-ctlseq-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 +187,12 @@ (defun riece-ctlseq-insinuate () (add-hook 'riece-message-filter-functions 'riece-ctlseq-message-filter)) +(defun riece-ctlseq-enable () + (setq riece-ctlseq-enabled t)) + +(defun riece-ctlseq-disable () + (setq riece-ctlseq-enabled nil)) + (provide 'riece-ctlseq) ;;; riece-ctlseq.el ends here