1 ERC NEWS -*- outline -*-
5 ** Make find-function and find-variable work in Emacs 22 for
6 names that are constructed by `define-erc-module'.
8 ** Fix bug introduced in ERC 5.1.3 that caused messages to go the
11 ** Changes and additions to modules
13 *** Highlighting (erc-match.el)
15 **** Don't activate view-mode.
17 *** Logging (erc-log.el)
19 **** When this module is activated, make sure logging is enabled on
20 already-opened buffers. Ditto for disabling logging when the module
23 **** Fix some errors that occur when exiting Emacs without first
24 quitting open IRC servers.
26 * Changes in ERC 5.1.3
28 ** Fix use of /quote command with no initial whitespace.
30 ** Make it possible to customize the colorization of the header line.
31 The `erc-header-line' face is used to color the header line.
32 The `erc-header-line-face-method' determines the method to use when
33 colorizing the header line.
35 ** Add the new function `erc-handle-irc-url', which is a suitable
36 candidate to use for `url-irc-function'. This permits some
37 integration of url.el and ERC.
39 ** Fix several errors that occur when server or channel buffers are killed
42 ** Fix toggling of flood control.
44 ** Match the patterns in `erc-encoding-coding-alist' as regexps,
45 instead of verbatim text. Also, match case-insensitively.
47 ** The /SMV command has been removed, since we no longer have
48 meaningful module-specific version information.
50 ** Fix a "(stringp nil)" error that can happen when doing /PART.
52 ** Use a better example in the `erc-part-reason-various-alist'
55 ** When using `erc-quit-reason-various' and `erc-part-reason-various'
56 and no matches are found, default to using the ERC version string
59 ** Add the `list' and `page' modules to the `erc-modules' customize
62 ** Changes to the ERC manual
64 *** Update the list of available modules.
66 *** Revise information about releases and development.
68 *** Provide a simpler example in the "Getting Started" chapter.
70 *** Fully document how to connect to an IRC server in the new
73 ** Changes and additions to modules
75 *** Autoaway (erc-autoaway.el)
77 **** Rename the `erc-autoaway-use-emacs-idle' option to
78 `erc-autoaway-idle-method'.
80 **** Add support for autoaway based on user idle time.
81 This is now the default.
83 **** If you set the AWAY status yourself, erc-autoaway will not
84 interfere by un-setting AWAY prematurely.
86 **** If you are set away while visiting a non-ERC buffer,
87 erc-autoaway used to fail in bringing the user back. This is now
90 *** BBDB (erc-bbdb.el)
92 **** Add new option `erc-bbdb-electric-p', which determines whether
93 to make the BBDB buffer electric. This defaults to not electric.
95 *** Button (erc-button.el)
97 **** Use <backtab> instead of <C-tab> for `erc-button-previous'.
99 *** Identd (erc-identd.el)
101 **** Fix a bug that involves starting the identd server.
103 **** Make this work with Emacs 22.
105 **** Provide a real ERC module named `identd'.
107 **** Don't create an extra buffer for the identd process.
109 *** Logging (erc-log.el)
111 **** By default, don't insert old logs when opening an ERC buffer.
112 This may be changed by customizing `erc-log-insert-log-on-open'.
114 **** New option `erc-log-write-after-send' determines whether the
115 log file will be written to after every sent message. The default is
118 **** New option `erc-log-write-after-insert' determines whether the
119 log file will be written to when new text is added to a logged ERC
120 buffer. The default is not to do this. With this option and the
121 previous option, logging should no longer slow down ERC as much.
123 **** Default to saving buffers and queries on quit.
124 This may be changed by customizing the `erc-save-buffer-on-quit' and
125 `erc-save-queries-on-quit' options, respectively.
127 **** Only perform logging when the `logging' module is added to
128 `erc-modules'. This prevents logging from being activated just by
129 loading the erc-log.el file, and makes logging act like other ERC
132 *** Programmable completion (erc-pcomplete.el)
134 **** Don't complete the user's current nickname.
136 * Changes in ERC 5.1.2
138 ** Fix compiler errors in erc-autojoin.el and erc-dcc.el.
140 ** Move to end of prompt when ERC reconnects to a server.
142 ** Changes and additions to modules
144 *** Spell-checking (erc-spelling.el)
146 **** Don't spell-check nicks or words that are prefixed with '/'.
148 **** Remove flyspell properties from words we shouldn't spell-check.
150 **** Fix an issue that caused the ispell process to reload every time
151 we switch to an ERC buffer.
153 *** Timestamps (erc-stamp.el)
155 **** Fix an inconsistency in calculating width of right timestamps.
157 **** Rename option `erc-timestamp-right-align-by-pixel' to
158 `erc-timestamp-use-align-to'. This controls whether to use the more
159 fail-proof method of aligning right timestamps, as mentioned below.
161 **** Fix a right timestamp spacing problem that used to occur when
162 erc-stamp.el was byte-compiled. Now that this is fixed, it is safe to
163 use the method that aligns right timestamps perfectly in Emacs22 with
164 X. If the current version of Emacs doesn't support this method, use
165 the simpler method, which is prone to alignment issues for math
166 symbols and other variable-width text.
168 A side effect of using this new method is that there will only be one
169 space before a right timestamp in any saved logs. If this is
170 unacceptable, set `erc-timestamp-use-align-to' to nil.
172 * Changes in ERC 5.1.1
174 ** Fix a requirement on cl.el.
176 ** Use tls.el for SSL connections, rather than ssl.el.
178 ** Changes and additions to modules
180 *** ibuffer integration (erc-ibuffer.el)
182 **** Update this to work with the version of ibuffer.el that comes with
183 recent Emacs variants.
185 *** Old completion (erc-complete.el)
187 **** Fix a few errors.
189 *** Speedbar (erc-speedbar.el)
191 **** Make this work with the version of speedbar.el that comes with
192 recent Emacs variants.
194 *** Timestamps (erc-stamp.el)
196 **** By default, use a more failsafe method of displaying right timestamps.
197 To get right timestamps to align perfectly in Emacs22 using X, set the
198 new `erc-timestamp-right-align-by-pixel' option to non-nil.
200 *** Viper compatibility (erc-viper.el)
202 **** Since most of these changes are now merged into Emacs22, detect
203 whether we need these changes and install them only if necessary.
207 ** Improve XEmacs compatibility.
211 *** Now ERC doesn't use global variable space.
212 Renamed all variables that didn't start with "erc-".
214 o `away' is now `erc-away'
216 o `current-nick' is now `erc-server-current-nick'
218 o `last-peers' is now `erc-server-last-peers'
220 o `last-ping-time' is now `erc-server-last-ping-time'
222 o `last-sent-time' is now `erc-server-last-sent-time'
224 o `lines-sent' is now `erc-server-lines-sent'
226 o `quitting' is now `erc-server-quitting'
228 *** Remove the `with-erc-channel-buffer' function.
232 *** Don't inadvertently destroy face properties.
234 *** Load erc scripts in a safer way.
236 *** Don't insert a timestamp if text at point is invisible.
238 *** Don't hide messages from those in `erc-fools' by default.
239 Color their nicks instead.
241 *** Use a more foolproof method of encoding and decoding strings
242 before sending to a channel.
246 *** Renamed some server-specific variables
248 o `erc-announced-server-name' is now `erc-server-announced-name'
250 o `erc-auto-reconnect' is now `erc-server-auto-reconnect'
252 o `erc-connect-function' is now `erc-server-connect-function'
254 o `erc-default-coding-system' is now `erc-server-coding-system'
256 o `erc-duplicate-timeout' is now `erc-server-duplicate-timeout'
258 o `erc-duplicates' is now `erc-server-duplicates'
260 o `erc-lag' is now `erc-server-lag'
262 o `erc-prevent-duplicates' is now `erc-server-prevent-duplicates'
264 o `erc-previous-read' is now `erc-server-filter-data'
266 o `erc-process' is now `erc-server-process'
268 o `erc-ping-handler' is now `erc-server-send-ping-handler'
270 o `erc-ping-interval' is now `erc-server-send-ping-interval'
272 *** Renamed some functions
274 o `erc-connect' is now `erc-server-connect'
276 o `erc-process-filter' is now `erc-server-filter-function'
278 o `erc-send-command' is now `erc-server-send'
280 o `erc-send-single-line' is now `erc-send-input'
282 o `erc-setup-periodical-server-ping' is now
283 `erc-server-setup-periodical-server-ping'
285 o `erc-split-command is now `erc-split-line'
289 o erc-server-flood-margin, erc-server-flood-penalty: New options
290 that allow tweaking of flood control.
292 o erc-split-line-length: The maximum line length of a single
297 o erc-server-flood-last-message, erc-server-flood-queue,
298 erc-server-flood-timer: Flood control.
300 o erc-server-processing-p: Indicate when we're currently processing
303 *** Remove some options
308 ** New customization group `erc-server' for dealing with IRC servers.
310 ** ERC can now be installed by doing `make install' from the command line.
312 ** ERC now has a manual in erc.texi.
313 Type `make doc' to generate HTML and Info versions of it.
315 ** ERC no longer depends on cl.el.
316 Only the macros in cl-macs.el are used.
318 ** Fix an edge case when quitting as new messages come in.
320 ** Make flood protection toggle-able as on/off, removing the 'strict option.
322 ** If possible, re-use channel buffers when reconnecting to a server.
324 ** Text in ERC buffers is now read-only by default.
325 To get the previous behavior,
327 ** Changes and additions to modules
329 *** Auto-join (erc-autojoin.el)
331 **** Recognize the Azzurra server.
333 *** BBDB (erc-bbdb.el)
335 **** When the user types /WHOIS, ask for a record to merge to.
337 **** Store the displayed name of a BitlBee contact.
338 The new `erc-bbdb-bitlbee-name-field' option specifies the field to use
339 to store this information.
341 **** Don't prompt for a name on /JOIN or /NICK.
343 *** Button (erc-button.el)
345 **** Fix customization of `erc-button-alist'
347 **** New option `erc-button-nickname-face' determines the face to use
348 when coloring ERC nicknames.
350 *** Channel tracking (erc-track.el)
352 **** Remove channels from the modified channels list if not currently
353 connected. This should remove residue from the mode line after
356 **** Recognize buttonized text
358 *** Highlighting (erc-match.el)
360 **** Highlight current nickname by default.
362 **** Added the option of beeping when certain matches occur.
363 Add `erc-beep-on-match' to `erc-text-matched-hook' to enable
364 beeping. Set the new variable `erc-beep-match-types' which match
365 types that make beeps.
367 *** Nicklist (erc-nicklist.el)
369 **** Fix a couple of errors.
371 **** Make sure a stray mouse click doesn't trigger an error.
373 **** Insert icons from the /images directory next to nicks.
374 This indicates their away status. The location is customizable via
375 the new `erc-nicklist-icons-directory' option.
377 If you do not want these icons, set `erc-nicklist-use-icons' to nil.
379 *** Nickserv identification (erc-nickserv.el)
381 **** Recognize Azzurra and OFTC networks.
383 *** Old completion (erc-complete.el)
385 **** Disable by default.
387 *** Programmable completion (erc-pcomplete.el)
389 **** Enable by default.
391 *** Timestamps (erc-stamp.el)
393 **** On Emacs22, align right timestamps perfectly, even if variable-width
394 characters are used. If we aren't using Emacs22, move text farther
395 away from the right margin when variable-width characters are used.
396 It is considered better to misalign the stamp by a bit than to go past
399 **** Enable by default
403 *** Spell-checking (erc-spelling.el)
405 **** Use flyspell in ERC.
407 *** Viper compatibility (erc-viper.el)
409 **** Helps ERC work correctly in viper-mode.
411 * Changes in ERC 5.0.4
413 ** Fix a problem with undo in channels.
415 * Changes in ERC 5.0.3
417 ** Fix typo in the `ctcp-request-to' entry of the English catalog.
419 ** Debugging with edegug has been made easier in all of the
420 erc-with-* and with-erc* macros.
422 ** Non-ASCII character sets should be better supported when sending
423 and processing messages.
425 ** A load failure with erc-autoaway.el and Emacs21 has been fixed.
427 ** A few XEmacs warnings were fixed.
429 ** Changes and additions to modules
431 *** Backend (erc-backend.el)
433 **** Move the check for hidden messages into `erc-display-message'
434 so there isn't so much replicated code.
436 **** Add `definition-name' property to constructed symbols so that
437 `find-function' and `find-variable' will be able to locate them.
439 **** Make sure logs are inserted info the correct channel buffers.
440 There was previously an error when using `erc-insert-log-on-open' in
441 combination with autojoin to multiple channels.
443 *** Button (erc-button.el)
445 **** The layering of `erc-button-face' on other faces in ERC buffers
448 *** Channel tracking (erc-track.el)
450 **** Use optimal amount of whitespace around modified channels
451 indicator. Previously, there was an additional unnecessary space.
453 **** Fix an error that occurred when unchecked buffers existed when
456 * Changes in ERC 5.0.2
458 ** If a channel key is required for a certain channel, ERC will prompt
459 for one if `erc-prompt-for-channel-key' is non-nil.
461 ** ERC doesn't try to reconnect if the network connection is refused
462 when using `open-network-stream-nowait' as the `erc-connect-function'.
464 ** Messages from multiple servers will not go to the currently active
465 buffer. The messages from each server will be contained in the most
466 recently active channel/server buffer that corresponds with the
469 ** Some text messages were cleaned up slightly.
471 ** Button faces should no longer "cover" other faces.
473 ** Made some XEmacs compatibility fixes.
475 ** Nicknames containing a backslash are now correctly highlighted as
476 current-nick and buttonized as nicks.
478 ** `erc-server-select' doesn't offer networks without servers as a
481 ** Non-ASCII character support has been improved.
483 ** Changes and additions to modules
485 *** Menu (erc-menu.el)
487 **** You can now save logs and truncate buffers from the menu-bar.
489 * Changes in ERC 5.0.1
491 ** Narrowing in ERC buffers no longer causes formatting errors.
493 ** The BBDB module now loads correctly when customizing `erc-modules'.
495 ** The value of `erc-button-face' is now respected.
497 ** Fixed a bug which caused a read-only error during connection.
499 ** Server buffers are now tracked correctly.
500 This means that `erc-track-priority-faces-only', `erc-track-exclude',
501 and `erc-track-exclude-types' now work with server buffers.
505 ** Channel members are now stored as a hash-table.
506 `erc-server-users' and `erc-channel-users' are now hash-tables, rather
507 than alists. This significantly increases performance, especially in
508 large channels. Each channel member is stored as an `erc-server-user'
509 struct, with additional information about the channels they are on
510 stored in an `erc-channel-user' struct. Code using old alist-style
511 channel members needs to be updated to work with hash-tables.
512 This new code also removes the need for erc-members.el, which has been
515 ** The way ERC deals with input from the server has changed.
516 All server response code is now in a new file, erc-backend.el. There
517 should be no real user visible changes. There are, however, a few
518 major changes for implementers, and module writers:
520 *** The PARSED response that all handlers get called with is
521 no longer a vector, but an `erc-response' struct.
523 This means LESS MAGIC NUMBERS in the ERC source code, but a few
524 changes in how you get at parsed responses.
526 The sender is accessed via `erc-response.sender'.
528 The command is accessed via `erc-response.command'.
530 The arguments to the command (everything after the command and
531 before the colon) are accessed via `erc-response.command-args'.
532 This is a /list/ of arguments in the order they appear in the
535 The contents of the response is accessed via
536 `erc-response.contents'.
538 Should, for some reason, you want to do something with the
539 /unparsed/ response, you can get it via `erc-response.unparsed'.
541 *** The `erc-server-hook-list' mechanism is gone.
543 All server response handlers should be defined with
544 `define-erc-response-handler'. This defines functions and
545 corresponding hook variables.
547 The mapping of server commands to hook variables is no longer
548 done via `erc-event-to-hook', but through an #'equal hashtable,
549 `erc-server-responses'. In order to find a hook you do:
551 (erc-get-hook command)
553 See the docstring of `define-erc-response-handler' for more
556 *** ALL hook variables have been renamed.
558 In accordance with recommendations in the Emacs Lisp manual,
559 the hook variables are no longer called `erc-server-FOO-hook',
560 but rather `erc-server-FOO-functions'. This is to indicate
561 that the functions they call take arguments.
563 All the modules in ERC have been updated to reflect this change,
564 but external module authors should beware.
566 ** The values of `erc-mode-line-format' and `erc-header-line-format'
567 are now defined as strings to be formatted using `format-spec'.
568 `erc-mode-line-format' does not replace the whole mode-line anymore,
569 only `mode-line-buffer-identification' is set. This way, personal
570 mode-line configurations are not modified and all key bindings work as
571 expected. The process status (connecting, closed) is now shown in
574 ** Customization of ERC variables has been made easier. Variables
575 have been split into more groups for better organization.
579 o `erc-send-whitespace-lines' - Set this to send lines even if they
582 o `erc-manual-set-nick-on-bad-nick-p' - If the nickname you chose is
583 already taken or not allowed, your nick is not changed and you can
584 try again manually if this is non-nil.
586 o `erc-mode-line-away-status-format' - You can now set what is shown
587 in the mode-line when you are away.
589 o `erc-header-line-uses-help-echo-p' - The header-line now uses the
590 help-echo property. You can set this to nil to disable it.
592 o `erc-format-query-as-channel-p' - Set this to nil to have messages
593 in the query buffer formatted like private messages.
595 o `erc-show-channel-key-p' - The channel key is now shown with the
596 other channel modes in the header line. Set this to nil if you
599 o `erc-prompt-for-channel-key' - Set this if you want to be prompted
600 for the channel key (channel's mode is +k) when you call
601 `erc-join-channel' interactively.
603 o `erc-kill-server-buffer-on-quit' - If non-nil, kill the server
604 buffer automatically when you quit.
608 o `erc-join-hook' - Called when you join a channel.
610 o `erc-kick-hook' - Called when you are kicked from a channel. The
611 channel's buffer is sent as an argument to functions called from
614 o `erc-nick-changed-functions' - Whenever your nickname changes
615 successfully, the functions in this hook are run with the
616 arguments NEW-NICK and OLD-NICK.
618 ** New command /WHOAMI - Do a /WHOIS on your current nickname.
620 ** The key binding for changing channel modes is now C-c C-o.
624 o `erc-echo-notices-in-minibuffer-flag' and
625 `erc-echo-notices-in-current-buffer' - You should use
626 `erc-echo-notice-hook' and `erc-echo-notice-always-hook' instead.
628 o `erc-prompt-interactive-input' has been removed (commented out)
629 because nickname completion does not work with it.
631 o All INFO buffer-related variables and functions have been removed.
633 ** You can now disable modules by setting `erc-modules' with the
634 customization interface.
636 ** Changes and additions to modules
638 *** Autoaway (erc-autoaway.el)
640 **** New variable `erc-autoaway-no-auto-back-regexp' - Add text which,
641 when you type anything matching it, will not automatically discard
642 your away status when `erc-auto-discard-away' is non-nil.
644 *** Filling (erc-fill.el)
646 **** New variable `erc-fill-variable-maximum-indentation' - Don't
647 indent more than this many characters when indenting a message from a
648 user with a long nickname.
650 *** Goodies (erc-goodies.el)
652 **** Miscellaneous small modules have been moved from erc.el.
653 The functions erc-add-scroll-to-bottom, erc-make-read-only,
654 erc-send-distinguish-noncommands, erc-interpret-controls, erc-unmorse,
655 erc-smiley, and erc-occur, which were defined in the main erc.el file
656 have been moved to erc-goodies.el and have mostly been translated to
657 the modules scrolltobottom, readonly, noncommands, irccontrols, smiley
662 o `erc-input-line-position' - The line number to use with
663 `erc-scroll-to-bottom'.
665 o `erc-beep-p' - Beep if there is a \C-g control character in a
668 *** Channel lists (erc-list.el)
670 **** New variable `erc-chanlist-highlight-face' - A face used for
671 highlighting the current line.
673 *** Highlighting (erc-match.el)
675 **** `erc-current-nick-highlight-type' has new options: 'keyword and
678 *** Menu (erc-menu.el)
680 **** The `IRC' menu is now automatically added to `erc-mode' buffers.
682 *** Networks (erc-nets.el)
684 **** The functions for determining current network are in this file.
685 There were a couple of functions spread about in different files which
686 each had a different way of determining the current network. The
687 methods have been combined, and the big list of known networks
688 (`erc-networks-alist') is being put to use. You can access the
689 network's name by calling the new function `erc-network'. This
690 returns the name of the current network as a symbol or 'Unknown if it
691 could not determine which network it is.
693 *** Nicklist (erc-nicklist.el)
695 **** ERC has a new way of displaying nicknames in a channel.
696 The new file erc-nicklist.el defines a new command `erc-nicklist'
697 which pops up a small Emacs window showing the nicknames of all
698 members of the current channel. The implementation is not complete
699 and is rather proof-of-concept for now. The result is something a bit
700 like erc-speedbar, but not quite as invasive, and doesn't require use
703 *** Internet services / Nickserv (erc-nickserv.el)
705 **** Network detection is now taken care of by erc-nets.el.
706 The function `erc-current-network' is deprecated, use `erc-network'
707 instead. The variable `erc-networks' has been removed, use
708 `erc-networks-alist'. The network symbols used in
709 `erc-nickserv-alist' now match those in `erc-networks-alist'.
711 **** New variable `erc-nickserv-identify-mode' - Choose which method
712 to use for automatic identification: you can wait for Nickserv to ask
713 you to identify (the default), or send an identify message
714 automatically after you change your nickname.
716 *** Speedbar (erc-speedbar.el)
718 **** New variable `erc-speedbar-sort-users-type' - Sort users in a
719 channel by activity, alphabetically, or not at all.
721 *** Timestamps (erc-stamp.el)
723 **** `erc-timestamp-only-if-changed-flag' now works when
724 `erc-insert-timestamp-function' is set to 'erc-insert-timestamp-left.
726 **** New variable `erc-timestamp-intangible' - Set this to nil if
727 timestamps should not have the 'intangible property.
729 *** Channel tracking (erc-track.el)
731 **** Using faces to indicate channel activity in the modeline now works
736 o `erc-track-priority-faces-only' - Ignore changes in a channel
737 unless there is a face from the `erc-track-faces-priority-list' in
740 o `erc-track-exclude-server-buffer' - Ignore changes in the server
743 o `erc-track-position-in-mode-line' - Set the position in the
744 mode-line where modified channels are shown (only works in GNU
745 Emacs versions above 21.3).
749 ** The module system has again changed a lot. You can now customize
750 the variable `erc-modules' and define once and for all which
751 extension modules you want to use. This unfortunately may require
752 you to change your current erc initialisation code a bit, if you
753 have some existing customsations. On the other hand, this change
754 makes the configuration of extension modules a lot easier for new
755 users. In theory, you should be able to configure all aspects of
756 ERC by using the customize interface, you should no longer really
757 need to write Lisp code for trivial customizations.
759 By default, the following modules are now loaded: (pcomplete
760 netsplit fill track ring button autojoin)
762 Please use M-x customize-variable RET erc-modules RET to change the
763 default if it does not suite your needs.
765 ** THe symbol used in `erc-nickserv-passwords' for debian.org IRC servers
766 (formerly called OpenProjects, now FreeNode) has changed from
767 openprojects to freenode. You may need to update your configuration
768 for a successful automatic nickserv identification.
770 * Changes in ERC 3.0.cvs.20030119
772 ** New module erc-dcc:
774 This finally implements DCC. It requires server sockets to fully work
775 in both directions. This feature is currently only available in Emacs
776 21.3.50 (CVS). Here is a short list of what should work though.
779 * Emacs 21.2, DCC get, and accepting DCC chat offers.
780 * XEmacs 21, Only accepting DCC chat offers.
782 ** erc is switching to global-minor-modes for activation of submodules.
784 This allows you to customize such a mode and get automatic loading of
785 the module. No longer putting a lot of require statments in .emacs.
786 At least this is the long-term plan, not all modules are converted
789 ** The most important user visible change is that you now need to activate
790 erc-completion-mode, to get TAB completion. The new completion code
791 is based on pcomplete. To get the old code, manually load
792 erc-complete and bind TAB to erc-complete in erc-mode-map.
794 To activate completion on startup, put (erc-completion-mode 1) in your
797 Same applies to timestamps. You no longer need to (require
798 'erc-stamp), you can customize the variable `erc-timestamp-mode', and
799 the rest should be automatic.
801 arch-tag: 2b21b387-6cdc-4192-889c-6743cfffdcb1