Mercurial > emacs
changeset 70215:90d76f24753a
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-247
Rcirc patch from Ryan Yeske
2006-04-25 Ryan Yeske <rcyeske@gmail.com>
* lisp/net/rcirc.el (rcirc-print): Revert last change with ignored nicks.
(rcirc-toggle-low-priority): Doc fix.
(rcirc-handler-NOTICE): Remove beginning of line anchor in
ChanServ regexp.
(rcirc-startup-channels-alist): Connect to #rcirc by default, not
#emacs.
(rcirc-bright-nick-regexp, rcirc-dim-nick-regexp): Add variables.
(rcirc-decode-coding-system): Use utf-8 as the default.
(rcirc-multiline-minor-mode): Set the fill-column.
(rcirc-format-response-string): Display bright and dim nicks.
(rcirc-browse-url): Update interactive spec to fill ARG.
(rcirc-bright-nick, rcirc-dim-nick): Add faces.
(rcirc-print): Ignore dim-nick messages wrt modeline-activity.
author | Miles Bader <miles@gnu.org> |
---|---|
date | Wed, 26 Apr 2006 03:09:31 +0000 |
parents | da7bc97733d6 |
children | 0bf240af6e61 |
files | lisp/ChangeLog lisp/net/rcirc.el |
diffstat | 2 files changed, 77 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Tue Apr 25 21:41:13 2006 +0000 +++ b/lisp/ChangeLog Wed Apr 26 03:09:31 2006 +0000 @@ -1,3 +1,19 @@ +2006-04-25 Ryan Yeske <rcyeske@gmail.com> + + * net/rcirc.el (rcirc-print): Revert last change with ignored nicks. + (rcirc-toggle-low-priority): Doc fix. + (rcirc-handler-NOTICE): Remove beginning of line anchor in + ChanServ regexp. + (rcirc-startup-channels-alist): Connect to #rcirc by default, not + #emacs. + (rcirc-bright-nick-regexp, rcirc-dim-nick-regexp): Add variables. + (rcirc-decode-coding-system): Use utf-8 as the default. + (rcirc-multiline-minor-mode): Set the fill-column. + (rcirc-format-response-string): Display bright and dim nicks. + (rcirc-browse-url): Update interactive spec to fill ARG. + (rcirc-bright-nick, rcirc-dim-nick): Add faces. + (rcirc-print): Ignore dim-nick messages wrt modeline-activity. + 2006-04-24 J.D. Smith <jdsmith@as.arizona.edu> * textmodes/bibtex.el (bibtex-find-entry): Don't demand matching
--- a/lisp/net/rcirc.el Tue Apr 25 21:41:13 2006 +0000 +++ b/lisp/net/rcirc.el Wed Apr 26 03:09:31 2006 +0000 @@ -74,13 +74,13 @@ :group 'rcirc) (defcustom rcirc-default-user-full-name (if (string= (user-full-name) "") - rcirc-user-name - (user-full-name)) + rcirc-user-name + (user-full-name)) "The full name sent to the server when connecting." :type 'string :group 'rcirc) -(defcustom rcirc-startup-channels-alist '(("^irc.freenode.net$" "#emacs")) +(defcustom rcirc-startup-channels-alist '(("^irc.freenode.net$" "#rcirc")) "Alist of channels to join at startup. Each element looks like (SERVER-REGEXP . CHANNEL-LIST)." :type '(alist :key-type string :value-type (repeat string)) @@ -206,6 +206,18 @@ Nicks will be removed from the automatic list on follow-up renamings or parts.") +(defcustom rcirc-bright-nick-regexp nil + "Regexp matching nicks to be emphasized. +See `rcirc-bright-nick' face." + :type 'regexp + :group 'rcirc) + +(defcustom rcirc-dim-nick-regexp nil + "Regexp matching nicks to be deemphasized. +See `rcirc-dim-nick' face." + :type 'regexp + :group 'rcirc) + (defcustom rcirc-print-hooks nil "Hook run after text is printed. Called with 5 arguments, PROCESS, SENDER, RESPONSE, TARGET and TEXT." @@ -217,7 +229,7 @@ :type 'boolean :group 'rcirc) -(defcustom rcirc-decode-coding-system 'undecided +(defcustom rcirc-decode-coding-system 'utf-8 "Coding system used to decode incoming irc messages." :type 'coding-system :group 'rcirc) @@ -546,7 +558,7 @@ (with-current-buffer rcirc-server-buffer (or rcirc-nick rcirc-default-nick)))) -(defvar rcirc-max-message-length 450 +(defvar rcirc-max-message-length 420 "Messages longer than this value will be split.") (defun rcirc-send-message (process target message &optional noticep) @@ -955,7 +967,8 @@ :global nil :group 'rcirc (make-local-variable 'rcirc-parent-buffer) - (put 'rcirc-parent-buffer 'permanent-local t)) + (put 'rcirc-parent-buffer 'permanent-local t) + (setq fill-column rcirc-max-message-length)) (defun rcirc-multiline-minor-submit () "Send the text in buffer back to parent buffer." @@ -1029,6 +1042,7 @@ (split-string (or (cdr (assoc response rcirc-response-formats)) (cdr (assq t rcirc-response-formats))) "%")) + (sender (or sender "")) (result "") (face nil) key face-key repl) @@ -1054,9 +1068,16 @@ (rcirc-facify nick (if (eq key ?n) face - (if (string= sender (rcirc-nick process)) - 'rcirc-my-nick - 'rcirc-other-nick))))) + (cond ((string= sender (rcirc-nick process)) + 'rcirc-my-nick) + ((and rcirc-bright-nick-regexp + (string-match rcirc-bright-nick-regexp sender)) + 'rcirc-bright-nick) + ((and rcirc-dim-nick-regexp + (string-match rcirc-dim-nick-regexp sender)) + 'rcirc-dim-nick) + (t + 'rcirc-other-nick)))))) ((eq key ?T) ;; %T -- timestamp (rcirc-facify @@ -1130,8 +1151,9 @@ (or text (setq text "")) (unless (or (member sender rcirc-ignore-list) (member (with-syntax-table rcirc-nick-syntax-table - (when (string-match "^\\([^/]\\w*\\)\\b" text) - (match-string 1 text))) rcirc-ignore-list)) + (when (string-match "^\\([^/]\\w*\\)[:,]" text) + (match-string 1 text))) + rcirc-ignore-list)) (let* ((buffer (rcirc-target-buffer process sender response target text)) (inhibit-read-only t)) (with-current-buffer buffer @@ -1222,10 +1244,12 @@ (regexp-quote (rcirc-nick process)) "\\b") text))) - (when (or (not rcirc-ignore-buffer-activity-flag) - ;; always notice when our nick is mentioned, even - ;; if ignoring channel activity - nick-match) + (when (if rcirc-ignore-buffer-activity-flag + ;; - Always notice when our nick is mentioned + nick-match + ;; - Never bother us if a dim-nick spoke + (not (and rcirc-dim-nick-regexp sender + (string-match rcirc-dim-nick-regexp sender)))) (rcirc-record-activity (current-buffer) (when (or nick-match (and (not (rcirc-channel-p rcirc-target)) @@ -1375,7 +1399,7 @@ (force-mode-line-update)) (defun rcirc-toggle-low-priority () - "Toggle the value of `rcirc-ignore-buffer-activity-flag'." + "Toggle the value of `rcirc-low-priority-flag'." (interactive) (setq rcirc-low-priority-flag (not rcirc-low-priority-flag)) @@ -1788,7 +1812,7 @@ (defun rcirc-browse-url (&optional arg) "Prompt for URL to browse based on URLs in buffer." - (interactive) + (interactive "P") (let ((completions (mapcar (lambda (x) (cons x nil)) rcirc-urls)) (initial-input (car rcirc-urls)) (history (cdr rcirc-urls))) @@ -1910,7 +1934,7 @@ (cond ((rcirc-channel-p target) target) ;;; -ChanServ- [#gnu] Welcome... - ((string-match "^\\[\\(#[^ ]+\\)\\]" message) + ((string-match "\\[\\(#[^\] ]+\\)\\]" message) (match-string 1 message)) (sender (if (string= sender (rcirc-server-name process)) @@ -2211,6 +2235,25 @@ "The face used to highlight other messages." :group 'rcirc-faces) +(defface rcirc-bright-nick + '((((class grayscale) (background light)) + (:foreground "LightGray" :weight bold :underline t)) + (((class grayscale) (background dark)) + (:foreground "Gray50" :weight bold :underline t)) + (((class color) (min-colors 88) (background light)) (:foreground "CadetBlue")) + (((class color) (min-colors 88) (background dark)) (:foreground "Aquamarine")) + (((class color) (min-colors 16) (background light)) (:foreground "CadetBlue")) + (((class color) (min-colors 16) (background dark)) (:foreground "Aquamarine")) + (((class color) (min-colors 8)) (:foreground "magenta")) + (t (:weight bold :underline t))) + "Face used for nicks matched by `rcirc-bright-nick-regexp'." + :group 'rcirc-faces) + +(defface rcirc-dim-nick + '((t :inherit default)) + "Face used for nicks matched by `rcirc-dim-nick-regexp'." + :group 'rcirc-faces) + (defface rcirc-server ; font-lock-comment-face '((((class grayscale) (background light)) (:foreground "DimGray" :weight bold :slant italic))