rcirc: Add flexible response formatting; Add nick abbrevs
2006-02-12 Miles Bader <miles@gnu.org>
* lisp/net/rcirc.el (rcirc-nick-abbrevs, rcirc-response-formats):
New variables.
(rcirc-abbrev-nick): New function.
(rcirc-format-response-string): Rewrite to use the formats in
`rcirc-response-formats' and expand escape sequences therein.
A text-property `rcirc-text' is added over the actual response
text to make easy to find inside the returned string.
(rcirc-print): When filling, just look for the `rcirc-text'
text-property to find the appropriate fill prefix, instead of
using hardwired patterns.
(rcirc-ignore-all-activity-flag): Remove variable.
(rcirc-authinfo): New variable.
(rcirc-authinfo-filename): Remove variable.
(rcirc-always-use-server-buffer-flag): New flag.
(rcirc): M-x rcirc will automatically connect without prompting.
C-u M-x rcirc will prompt. Use rcirc-connect to create a
connection in lisp.
(rcirc-process-server-response-1): Remove everything but the nick
portion of the sender so it doesn't need to be done everywhere
else. Update related code.
(global-map): Remove global keybindings.
(rcirc-get-buffer-create): Make sure rcirc-topic is set.
(rcirc-send-input): Split into several functions.
(rcirc-process-input-line, rcirc-process-message, rcirc-process-command):
New functions.
(rcirc-target-buffer): Add function to determine where to route messages.
(rcirc-user-nick): Save match data.
(rcirc-toggle-ignore-buffer-activity)
(rcirc-update-activity-string): Remove global ignore
functionality, which can be done now by toggling rcirc-track-minor-mode.
(rcirc-track-minor-mode-map): New keymap.
(rcirc-track-minor-mode): New minor-mode.
(ignore): Make the ignore output nicer. Always print it when adding or
removing nicks.
(rcirc-url-regexp): Improve.
(rcirc-mangle-text): Remove properties before using text in the modeline.
(rcirc-authenticate): Authentication data comes from rcirc-authinfo, not
the file pointed to by rcirc-authinfo-file.
(rcirc-server-prefix): Inherit from rcirc-server.
(wdired-get-filename): Massage.
(wdired-perm-mode-map): Don't copy bindings from wdired-mode-map.
(wdired-preprocess-perms, wdired-set-bit, wdired-toggle-bit): Use the
`keymap' property rather than `local-map'.
(nroff-mode-syntax-table): Remove spurious `1' in the syntax of \n.
(nroff-mode): Obey the global setting of nroff-electric-mode.
(nroff-electric-mode): Use define-minor-mode and derived-mode-p.