(rcirc-log-filename-function): New variable.
(rcirc-log): Use `rcirc-log-filename-function' to generate the
log-file name. Don't log anything if it returns nil.
(rcirc-log-write): Use `expand-file-name' when merging the
log-file name from the alist with rcirc-log-directory; this does
the right thing if the name in the alist already an absolute
filename. Make the log-file directory if necessary.
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-976
(rcirc-last-quit-line, rcirc-last-line)
(rcirc-elapsed-lines): New argument PROCESS. Update callers.
(rcirc-print): Only update the line count when not marking the
line as ommittable.
(rcirc-log-write): Specify coding system when writing logfile.
(rcirc-markup-fill): Make sure ellipsis does not cause line to wrap.
(rcirc-server-alist): Use coloned symbols for parameter names.
(rcirc-recent-quit-alist): New function.
(rcirc): Print a better message when there is only one connected server.
(rcirc-complete-nick): Do not update the nick table here.
(rcirc-mode-map): Add M-o.
(rcirc-current-line): Add variable.
(rcirc-mode): Setup variables for line based omit.
(rcirc-edit-multiline): Strip text properties.
(rcirc-omit-responses): Add NICK.
(rcirc-omit-threshold): Add variable.
(rcirc-last-quit-line, rcirc-last-line, rcirc-elapsed-lines): Add functions.
(rcirc-print): Keep track of current line. Do not fill text if
`rcirc-fill-flag' is null. Only omit text if the last activity
from the sender is more than `rcirc-omit-threshold' lines ago.
(rcirc-put-nick-channel, rcirc-handler-PRIVMSG): Track line
numbers instead of time.
(rcirc-channel-nicks): Sort by line numbers instead of time.
(rcirc-omit-mode): Add `...' when omitting text and recenter.
(rcirc-handler-JOIN): Restore the joiners linestamp.
(rcirc-maybe-remember-nick-quit): Add function.
(rcirc-handler-QUIT): Record sender in table of recently quit nicks.
(rcirc-default-full-name): Rename from
rcirc-default-user-full-name.
(rcirc-clear-activity): Make sure RCIRC-ACTIVITY isn't modified.
(rcirc-print): Never ignore messages from ourself.
around bright and dim regexps. Make sure bright and dim matches
use word anchors. Send text through rcirc-markup functions.
(rcirc-url-regexp): Add single quote character.
(rcirc-connect): Write logs to disk on auto-save-hook.
Make server a non-optional argument.
(rcirc-log-alist): New variable.
(rcirc-log-directory): Make customizable.
(rcirc-log-flag): New customizable variable.
(rcirc-log): New function.
(rcirc-print): Use above function.
(rcirc-log-write): New function.
(rcirc-generate-new-buffer-name): Strip text properties.
(rcirc-switch-to-buffer-function): Remove variable.
(rcirc-last-non-irc-buffer): Remove variable.
(rcirc-non-irc-buffer): Add function.
(rcirc-next-active-buffer): Use above function.
(rcirc-keepalive): Send KEEPALIVE ctcp instead of a PING.
(rcirc-handler-ctcp-KEEPALIVE): Add handler.
(rcirc-handler-CTCP): Don't print KEEPALIVE responses.
(rcirc-omit-mode): Add minor-mode.
(rcirc-mode-map): Change C-c C-o binding.
(rcirc-mode): Clear mode-line-process. Use a custom
fill-paragraph-function. Set up buffer-invisibility-spec.
(rcirc-response-formats): Remove timestamp code.
(rcirc-omit-responses): Add variable.
(rcirc-print): Don't put the overlay arrow on potentially omitted
lines. Log line to disk. Record activity for private messages
from /dim nicks. Facify the fill-prefix with rcirc-timestamp face.
(rcirc-jump-to-first-unread-line): Print message if there is no
unread text.
(rcirc-clear-unread): New function.
(rcirc-markup-text-functions): Add variable.
(rcirc-markup-timestamp, rcirc-markup-fill): Add functions.
(rcirc-debug): Don't mess with window configuration.
(rcirc-send-message): Send message before printing locally.
Add SILENT argument, do not print message if non-nil.
(rcirc-visible-buffers): New function and variable.
(rcirc-window-configuration-change-1): Add function.
(rcirc-target-buffer): Make sure ACTIONs don't get sent to the
server buffer.
(rcirc-clean-up-buffer): Set rcirc-target to nil when finished.
(rcirc-fill-paragraph): Add function.
(rcirc-record-activity, rcirc-window-configuration-change-1):
Only update the activity string if it has actually changed.
(rcirc-update-activity-string): Remove padding characters from the
mode-line string.
(rcirc-disconnect-buffer): New function to be called when a
channel is parted or the user quits.
(rcirc-server-name): Warn when the server-name hasn't been set.
(rcirc-window-configuration-change): Postpone work until
post-command-hook.
(rcirc-window-configuration-change-1): Update mode-line and
overlay arrows here.
(rcirc-authenticate): Fix chanserv identification.
(rcirc-default-server): Remove variable.
(rcirc): Connect according to rcirc-connections.
(rcirc-connections): Add variable.
(rcirc-startup-channels-alist): Remove variable.
(rcirc-startup-channels): Remove function.
(rcirc-keepalive-seconds): Remove variable.
(rcirc-server-name, rcirc-timeout-timer, rcirc-connecting)
(rcirc-process, rcirc-user-disconnect): New variables.
(rcirc-connect): Initalize new variables.
(rcirc-keepalive): Don't send keepalive pings before connection is completed.
(rcirc-sentinel): Do mark all channels with activity when
connection is dropped. Run hook with process buffer local.
(rcirc-reschedule-timeout, rcirc-delete-process): New functions.
(rcirc-buffer-process): Return value of rcirc-process if rcirc-server-buffer
is nil.
(rcirc-server-name): Return the reported server name.
(rcirc-update-prompt): Simplify computation of the server name.
(rcirc-format-response-string): Likewise.
(rcirc-handler-001): Mark server as connected, record the reported server name,
and schedule a timeout.
(rcirc-track-nick): Add a spec for the tty class.
(rcirc-user-non-nick): Remove function.
(rcirc-nick-prefix-chars): Add variable.
(rcirc-user-nick): Use above variable.
rcirc-show-maximum-output.
(rcirc-mode): Remove window-scroll-function hook.
(rcirc-scroll-to-bottom): Remove function.
(rcirc-print): Recenter so point stays at the bottom of the window
if point was already there.
(rcirc-bright-nicks, rcirc-dim-nicks): New variables.
(rcirc-bright-nick-regexp, rcirc-dim-nick-regexp): Remove variables.
(rcirc-responses-no-activity): New function.
(rcirc-handler-generic): Check for responses in above.
(rcirc-process-command): Add ?: character to arguments of raw server commands.
(rcirc-format-response-string): Use `rcirc-bright-nicks' and `rcirc-dim-nicks'.
(rcirc-gray-toggle): Remove unused variable.
(rcirc-print): Remove some tracking logic, which is moved into markup functions.
(rcirc-activity-types): Was `rcirc-activity-type', now a list of types.
(rcirc-activity-string): Look for 'keyword in activity-types.
(rcirc-window-configuration-change): Don't erase overlay-arrow unnecessarily.
(rcirc-add-or-remove): New function.
(rcirc-cmd-ignore): Use it.
(rcirc-message-leader): Remove unused function.
(rcicr-cmd-bright, rcirc-cmd-dim, rcirc-cmd-keyword): New commands.
(rcirc-add-face): New function.
(rcirc-facify): Use rcirc-add-face.
(rcirc-url-regexp): Add parens.
(rcirc-map-regexp): Remove function.
(rcirc-mangle-regexp): Remove function.
(rcirc-markup-text-functions): New variable.
(rcirc-markup-text): New function (replaces `rcirc-mangle-text').
(rcirc-markup-body-text, rcirc-markup-attributes)
(rcirc-markup-my-nick, rcirc-markup-urls, rcirc-markup-keywords)
(rcirc-markup-bright-nicks): New markup handler functions.
(rcirc-nick-in-message-full-line): New face.
(rcirc-track-nick): Rename from `rcirc-mode-line-nick'.
(rcirc-track-keyword, rcirc-url, rcirc-keyword): New faces.
2006-08-20 Ryan Yeske <rcyeske@gmail.com>
* lisp/net/rcirc.el (rcirc-show-maximum-output): New var.
(rcirc-buffer-process): If no buffer argument is supplied, use
current-buffer.
(rcirc-complete-nick): Complete to the last completed nick first.
(rcirc-mode): Preserve the value of `rcirc-urls' across
connections. Setup scroll function.
(rcirc-scroll-to-bottom): New function.
(rcirc-print): Use nick syntax around regexp work. Notice
dim-nicks speaking only if they say our nick.
(rcirc-update-activity-string): Do not show the modeline indicator
if there are no live rcirc processes.
(rcirc-cmd-ignore): Ignore case.
(rcirc-browse-url-at-point): Fix off-by-one error.
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-403
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.
(rcirc-default-port): Rename from rcirc-port.
(rcirc-default-nick): Rename from rcirc-nick.
(rcirc-default-user-name): Rename from rcirc-user-name.
(rcirc-default-user-full-name): Rename from rcirc-user-full-name.
(rcirc-low-priority-flag): New variable.
(rcirc-decode-coding-system): New defcustom.
(rcirc-encode-coding-system): New defcustom.
(rcirc-coding-system-alist): New defcustom.
(rcirc-multiline-major-mode): New defcustom.
(rcirc-nick): New internal variable.
(rcirc-process): Remove variable.
(rcirc-server-buffer): New variable.
(rcirc): Update to use rcirc-default-* variables above.
(rcirc-connect): Do not add window-configuration-hook-here.
(rcirc-server): New internal variable.
(rcirc-connect): Do not send keepalive pings if rcirc-keepalive-seconds is nil.
(with-rcirc-server-buffer): New macro.
(rcirc-send-string): Encode with rcirc-encode-coding-system.
(rcirc-server-name): Rename from rcirc-server.
(rcirc-buffer-process): New function.
(rcirc-buffer-nick): New function.
(rcirc-buffer-target): Remove function.
(set-rcirc-decode-coding-system, set-rcirc-encode-coding-system): New commands.
(rcirc-mode-map): Change binding of C-c C-l to rcirc-toggle-low-priority.
(rcirc-mode): Initialize coding system based on rcirc-coding-system-alist.
New change-major-mode-hook to part the channel on a mode change.
Make kill-buffer-hook buffer-local.
(rcirc-change-major-mode-hook): New function.
(rcirc-clean-up-buffer): Rename from rcirc-kill-buffer-hook-1.
(rcirc-last-post-time): New variable.
(rcirc-process-message): Store the last time user posted a message to this
target.
(rcirc-multiline-minor-mode): New mode.
(rcirc-multiline-minor-mode-map): New mode map.
(rcirc-edit-multiline): Put multiline-edit buffer in
rcirc-multiline-major-mode along with rcirc-multiline-minor-mode.
(rcirc-print): Any line starting with an ignored nick will be ignored.
(rcirc-print): Decode using rcirc-decode-coding-system.
(rcirc-track-minor-mode): Update global-mode-string when disabling this mode.
(minor-mode-alist): add LowPri indicator.
(rcirc-toggle-low-priority): New function.
(rcirc-last-non-irc-buffer): Prefix arg now no means switch to next low priority
buffer with activity.
(rcirc-record-activity): Sort buffers in rcirc-activity by the last time the
user posted a message in to the target.
(rcirc-update-activity-string): New formatting for low priority buffers.
(rcirc-split-activity): New function.
(rcirc-handler-PART, rcirc-handler-KICK)
(rcirc-handler-PART-or-KICK): Kick responses are printed properly.
(rcirc-nick-away-alist): New variable.
(rcirc-handler-301): New handler. Away messages are printed once per change.
rcirc.el update from Ryan Yeske
2006-03-13 Ryan Yeske <rcyeske@gmail.com>
* lisp/net/rcirc.el (rcirc) <defgroup>: Add link to manual.
(rcirc-print): Mark the start of text at the end of the prompt.
(rcirc-track-minor-mode): Add autoload cookie.
(rcirc-update-activity-string): Add space to front of mode-line
indicator.
values for unsupplied args.
(rcirc-get-buffer-create): Fix bug with setting the target.
(rcirc-any-buffer): Rename from rcirc-get-any-buffer, and include test for
rcirc-always-use-server-buffer-flag here.
(rcirc-response-formats): Add %N, which is a facified nick. %n uses the
default face. Change the ACTION format string. If the "nick" is the server,
don't print anything for that field. Comment fixes.
(rcirc-target-buffer): Don't test rcirc-always-use-server-buffer-flag here.
(rcirc-print): Squeeze extra spaces out of the text before message.
(rcirc-put-nick-channel): Strip potential "@" char from nick before adding
them to nick table.
(rcirc-url-regexp): Improve to match address like "foo.com".
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.
(rcirc-ignore-list-automatic): New variable.
(rcirc-print): Take rcirc-ignore-list into account.
(rcirc-cmd-ignore): New command.
(rcirc-ignore-update-automatic): New function.
(rcirc-handler-PART, rcirc-handler-QUIT): Use it to maintain the
list if ignored nicks.
(rcirc-handler-NICK): Ditto, and also ignore the new nick.
properties.
(rcirc-my-nick, rcirc-other-nick, rcirc-server)
(rcirc-nick-in-message, rcirc-prompt): Use min-colors and remove tty specs.
(rcirc-server-prefix, rcirc-server): New faces.
(rcirc-url-regexp): Generate with rx macro.
(rcirc-last-server-message-time): New variable.
(rcirc-filter): Record time of last message.
(rcirc-keepalive): Kill processes that did not send a message
since the last ping.
(rcirc-mode): Give rcirc-topic a local binding here.
(rcirc-print): Force redisplay before running hooks. Do long
buffer truncation after making new text read-only. Deal with nil
text when decoding strings. If TARGET is nil, use either the
currently selected buffer, if it is an rcirc buffer and of the
same process or the process buffer.
(rcirc-mode): Remove header-line. Recompute short buffer names.
Initialize rcirc-buffer-alist here instead of rcirc-get-buffer-create.
(rcirc-short-buffer-name): Add variable.
(rcirc-kill-buffer-hook): Recompute short buffer names. Remove
nick from private channel.
(rcirc-send-input): Send command text to current-buffer. Don't
clear overlay arrow here.
(rcirc-short-buffer-name): Return a short buffer name.
(rcirc-update-short-buffer-names, rcirc-abbreviate)
(rcirc-rebuild-tree, rcirc-make-trees): Add functions to generate
buffer-name abbreviations.
(rcirc-kill-buffer-hook-1): Split to make debugging easier. Do
not touch nick-table when killing a parted channel.
(rcirc-window-configuration-change): Rename from
rcirc-update-activity. Clear arrow from current buffer if it is now hidden.
(rcirc-current-buffer): Add variable.
(rcirc-my-nick, rcirc-other-nick, rcirc-server)
(rcirc-nick-in-message, rcirc-prompt, rcirc-mode-line-nick):
Remove -face from names.
(rcirc-update-activity-string): Print "DND" when globally ignoring activity.
(rcirc-ignore-buffer-activity-flag): Rename from rcirc-ignore-channel-activity.
(rcirc-ignore-all-activity-flag): Doc fix.
(rcirc-channels): Remove variable.
(rcirc-kill-buffer-hook):
(rcirc-get-buffer-create): Add nick to private channel.
(rcirc-multiline-edit-submit): Remove tabs.
(rcirc-put-nick-channel, rcirc-channel-nicks): Look up nicks case folded.
(rcirc-remove-nick-channel): Bug fix.
(rcirc-toggle-ignore-buffer-activity): Rename from
rcirc-toggle-ignore-channel-activity.
(rcirc-record-activity): Add buffers to the front of the list.
(rcirc-update-activity): Remove killed buffers from list.
(rcirc-process-server-response-1): Remove last argument if it is
null before calling handler.
(rcirc): Add "rcirc" defcustom prefix.
(rcirc-prompt): Simplify default prompt. Use custom-initialize-default.
(rcirc-private-chats): Remove variable.
(rcirc-prompt): Change initialization.
(rcirc-version): Remove function.
(rcirc-id-string): Add constant.
(rcirc-last-buffer): Remove variable.
(rcirc-buffer-alist): Add variable.
(rcirc-connect): Update variable setup.
(rcirc-sentinel, rcirc-update-prompt): Use `rcirc-buffer-alist'.
(rcirc-trap-errors-flag): Rename from `rcirc-trap-errors' change default.
(rcirc-handler-generic): Trigger activity.
(rcirc-send-message): Create the buffor of the target.
(rcirc-generate-new-buffer-name): Rename from
`rcirc-get-buffer-name'.
(rcirc-get-buffer): Just return nil if there is no matching buffer.
(rcirc-multiline-edit-cancel): Remove function.
(rcirc-set-last-buffer): Remove function.
(rcirc-get-any-buffer): Add function.
(rcirc-join-channels): Don't print /join text.
(rcirc-toggle-ignore-channel-activity): Add and update echo area messages.
(rcirc-cmd-ctcp): Use rcirc-send-string to send request.
(rcirc-handler-NOTICE): Recognize CTCP responses.
(rcirc-handler-332, rcirc-handler-332): Use a temp buffer for
constructing TOPIC string for buffers we are not JOINed.
(rcirc-handler-CTCP-response): Add handler.
(rcirc-multiline-edit-submit): Restore the window-configuration
before adjusting point.
(rcirc): Add customization group.
(rcirc-server, rcirc-port, rcirc-nick, rcirc-user-name)
(rcirc-user-full-name, rcirc-startup-channels-alist)
(rcirc-fill-flag, rcirc-fill-column, rcirc-fill-prefix)
(rcirc-ignore-all-activity-flag, rcirc-time-format)
(rcirc-input-ring-size, rcirc-read-only-flag)
(rcirc-buffer-maximum-lines, rcirc-authinfo-file-name)
(rcirc-auto-authenticate-flag, rcirc-prompt, rcirc-print-hooks):
Change defvar to defcustom.
(rcirc-update-prompt): Add optional ALL arg, which will update
prompts in all rcirc buffers. Regexp quote replacement text.
(rcirc-fill-column): Accept 'frame-width as a value.
(rcirc-set-changed): Add function.
(rcirc-next-active-buffer): Write more meaningful messages.
(rcirc-faces): Add customization group.
(rcirc-my-nick-face, rcirc-other-nick-face, rcirc-server-face)
(rcirc-nick-in-message-face, rcirc-prompt-face)
(rcirc-mode-line-nick-face): Move into rcirc-faces group.
(with-rcirc-process-buffer): Move before first usage.
(rcirc-debug-buffer): Rename from `rcirc-log-buffer'.
(rcirc-debug-flag): Rename from `rcirc-log-p'.
(rcirc-debug): Rename from `rcirc-log'.
(rcirc-format-response-string): Do not print '-' chars for a
NOTICE with no sender. Simplify output of server responses.
(rcirc-browse-url-map, rcirc-browse-url-at-point)
(rcirc-browse-url-at-mouse, rcirc-mangle-text): Make urls
mouse and RET clickable.