X-Git-Url: http://git.chise.org/gitweb/?p=elisp%2Friece.git;a=blobdiff_plain;f=lisp%2Friece-keyword.el;fp=lisp%2Friece-keyword.el;h=9cb568d3d10f8befe21dc8b5c57e295ddf8992c3;hp=22acb0ea3664914aa2e5da28b43aedf5159327fe;hb=078ccecd21debb3db53e23f858ab231c52fb280e;hpb=12ccdd0a843e797a64c6b8a1e00d42f31b4263c5 diff --git a/lisp/riece-keyword.el b/lisp/riece-keyword.el index 22acb0e..9cb568d 100644 --- a/lisp/riece-keyword.el +++ b/lisp/riece-keyword.el @@ -91,19 +91,21 @@ and the matched message object." index) (while alist (setq index 0) - (while (string-match (car (car alist)) - (riece-message-text message) index) + (while (and (< index (length (riece-message-text message))) + (string-match (car (car alist)) + (riece-message-text message) index)) (put-text-property (match-beginning (cdr (car alist))) (match-end (cdr (car alist))) 'riece-overlay-face riece-keyword-face (riece-message-text message)) - (run-hook-with-args 'riece-notify-keyword-functions - (match-string (cdr (car alist)) - (riece-message-text message))) - (run-hook-with-args 'riece-keyword-notify-functions - (cdr (car alist)) - message) - (setq index (match-end (cdr (car alist))))) + (save-match-data + (run-hook-with-args 'riece-notify-keyword-functions + (match-string (cdr (car alist)) + (riece-message-text message))) + (run-hook-with-args 'riece-keyword-notify-functions + (cdr (car alist)) + message)) + (setq index (1+ (match-end (cdr (car alist)))))) (setq alist (cdr alist))))) message)