Sync ERC 5.3 (devel) from upstream
[bpt/emacs.git] / etc / ERC-NEWS
CommitLineData
597993cf
MB
1ERC NEWS -*- outline -*-
2
c2e309f2 3Copyright (C) 2006, 2007 Free Software Foundation, Inc.
5b87ad55 4See the end of the file for license conditions.
c2e309f2 5
526dc846
MO
6* Changes in ERC 5.3
7
8** New function `erc-tls' is to be used for connecting to a server via TLS.
9The function `erc-ssl' should never be used for that purpose any
10longer, which was the case with the version of ERC that is included
11with Emacs.
12
13** Changes and additions to modules
14
15*** Channel tracking (erc-track.el)
16
17If erc-track-position-in-mode-line is set to nil, the tracking
18information won't be shown in the mode line, which is a change
19from the previous behavior of showing it "After all other
20information".
21
ff59d266 22* Changes in ERC 5.2
83dc6995
MB
23
24** M-x erc RET now starts ERC.
25`erc-select' has been changed to `erc'. `erc-select' still remains as
26an alias of `erc'. Likewise, `erc-select-ssl' has been renamed to
27`erc-ssl' with `erc-select-ssl' as its alias. The function that was
28known as `erc' is now `erc-open'.
29
ff59d266
MB
30** Open query buffers by default when private messages are received.
31The default value of `erc-auto-query' has been changed to 'bury.
32
10dc9f9e
MB
33** New command: /RECONNECT
34This command tries to reconnect to the current IRC server exactly
35once. It does not work in server buffers (throws an error before the
36command is run), but works in query and channel buffers.
37
ff59d266
MB
38** In MS-DOS environments, look for _ercrc.el rather than .ercrc.el.
39
40** Fix buggy interaction with multi-tty Emacs.
41
42** After running /QUIT, make sure that the IRC process is killed within
434 seconds. Freenode, in particular, needs this at times.
44
45** If the IRC process has not responded to our PINGs within a certain
46time, kill it and restart the connection. See
47`erc-server-auto-reconnect', `erc-server-reconnect-attempts',
48`erc-server-reconnect-timeout', `erc-server-send-ping-interval', and
49`erc-server-send-ping-timeout' to fine-tune ERC's behavior.
50
51** Avoid getting into an infinite connection loop.
52Previously, this could happen if your nick was banned, you were using
53Tor, incorrect information was entered, or the connection was bad.
54
55** Make ban messages less confusing.
56
57** Restore the point correctly when reconnecting to an IRC server.
58
59** Make /IGNORE and /UNIGNORE prompt to determine whether their
60argument is a user or a regexp. This results in less-confusing
61behavior when trying to ignore someone who has a bracket in their
62nick.
63
64** Make the default port "6667" rather than "ircd", because some
65operating systems don't know what port "ircd" maps to.
66
67** Fix several bugs in erc-iswitchb (C-c C-b).
68
69** Clean up internal documentation.
70Special thanks go to Juanma Barranquero for the thorough vetting of
71ERC's internal documentation.
72
73** Display a more informative message when a module is not found.
74
75** Fix a bug where paths were being colored like IRC commands.
76
77** In the customize interface for `erc-modules', add the name of the module.
78This makes it easier to find modules by name.
79
80** erc-server-send-ping-interval: Change to use a default of 30 seconds.
81
82** Some files which are included with the release of ERC 5.2 will not
83appear in the version of ERC that is bundled with Emacs 22. These
84extras files may be found at:
85
86 o http://ftp.gnu.org/gnu/erc/erc-5.2-extras.tar.gz, or
87 o http://ftp.gnu.org/gnu/erc/erc-5.2-extras.zip.
88
89** Renamed files
90
91Several files were renamed so as to make them distinct to users of the
92MS-DOS operating system.
93
94 o erc-autojoin.el -> erc-join.el
95 o erc-complete.el -> erc-hecomplete.el
96 o erc-nickserv.el -> erc-services.el
97 o ChangeLog.NNNN -> ChangeLog.NN
98
99** Header line changes
100
101*** Remove "[IRC]" from the header line.
102
103*** Add the %l format character to `erc-header-line-format',
104
105*** Document how to remove the header line.
106Namely: (setq erc-header-line-format nil).
107
10dc9f9e
MB
108** New options
109
110*** erc-server-reconnect-attempts: Determines the number of
111reconnection attempts that ERC will make per server.
112
ff59d266
MB
113*** erc-server-reconnect-timeout: Determines the amount of time,
114in seconds, that ERC will wait between successive reconnect attempts.
115
116*** erc-server-send-ping-timeout: Determines when to consider a connection
117stalled and restart it. The default is after 120 seconds.
118
119*** erc-system-name: Determines the system name to use when logging in.
120The default is to figure this out by calling `system-name'.
10dc9f9e 121
6904f7fe
MB
122** New face: `erc-my-nick-face'
123This helps make it easier to distinguish messages sent by yourself
124from messages sent by other users when the value of the variable
125`erc-show-my-nick' is non-nil.
126
ff59d266
MB
127** Namespace changes
128
129*** New macro: `erc-with-server-buffer'
130Switches to the current ERC server buffer and runs some code. If no
131server buffer is available, return nil. This is a useful way to
132access variables in the server buffer.
133
134*** New function: `erc-open-server-buffer-p'
135Returns non-nil if the given buffer is an ERC server buffer that has
136an open IRC process.
137
138*** New function: `erc-format-lag-time'
139Returns the estimated lag time to server, `erc-server-lag'.
140
141*** Renamed items
142
143 o `erc-server-setup-periodical-server-ping' is now
144 `erc-server-setup-periodical-ping'
145
146 o `erc-away-p' is now `erc-away-time'
147
148** Changes to the ERC manual
149
150*** New section: Sample Session.
151Describes a sample ERC session for connecting to the #emacs channel on
152Freenode. Also mention the #erc channel.
153
154*** New section: Special Features.
155Describes some of the special features of ERC.
156
157*** Getting Started: Mention ~/.emacs.d/.ercrc.el and the Customize
158interface.
159
160*** Development: Mention ErcDevelopment page on emacswiki.org.
161
162*** Tips and Tricks: Remove empty section for now.
163
164*** Options: Mention how to see available ERC options.
165
166*** Sample Configuration: Add an example of how to configure ERC.
167
6904f7fe
MB
168** New modules
169
ff59d266
MB
170*** Autoaway (erc-autoaway.el)
171
172**** Make this much more reliable.
173
174**** Avoid duplicate messages when coming back from being away.
175
176**** Fix bug where autoaway was enabled just by loading the file.
177
178*** BBDB (erc-bbdb.el)
179
180**** Display information on how to cancel merging of info or how to
181create a new John Doe record.
182
183**** Make it so that information from /whois continues to come in, even
184while prompting for a record to merge.
185
186**** Make hitting C-g correctly abort merging the record.
187
6904f7fe
MB
188*** Capab identify (erc-capab.el)
189Mark users who haven't identified to NickServ on servers supporting
190CAPAB IDENTIFY-MSG.
191
83dc6995
MB
192** Changes and additions to modules
193
ff59d266 194*** Button (erc-button.el)
cb0a26d3 195
ff59d266 196**** Make <backtab> go to the previous button.
cb0a26d3 197
83dc6995
MB
198*** Channel tracking (erc-track.el)
199
200**** Use mouse-face and help-echo for channel names in the mode-line.
201This helps people using a mouse know that they are buttons and can be
202clicked on.
203
ff59d266
MB
204**** Fix issue where C-c C-SPC could conflict with user-defined keybindings.
205This is accomplished by moving these bindings to their own global
206minor mode. Now the default is to check whether the user has bound
207something to C-c C-SPC or C-c C-@. If they have, prompt them about
208whether to really override that binding. This also has the effect of
209preventing ERC from clobbering rcirc's keybinding, unless this is
210desired. See `erc-track-enable-keybindings' for more details.
211
212**** New option: erc-track-enable-keybindings.
213Determine whether or not to enable the C-c C-SPC and C-c C-@
214keybindings. The default is to ask whether to do this if a binding to
215these keys already exists. It can also be set to t or nil to always
216bind or never bind, respectively.
217
218**** Remove `track-when-inactive' module.
219See `erc-track-when-inactive' for further details.
220
221**** New option: erc-track-when-inactive.
222This option replaces the track-when-inactive module. Set it to
223non-nil to track activity even in visible buffers when inactive. The
224default is nil.
225
226**** Remove the `track-modified-channels' alias for the `track' module.
227
228*** DCC support (erc-dcc.el)
229
230**** Add Usage section to Commentary.
231
232**** Fix a bug in the server message output.
233
234*** Filling (erc-fill.el)
235
236**** Fix bug involving messages that start with one or more blank lines.
237
238*** Identd (erc-identd.el)
239
240**** New option `erc-identd-port'
241Specifies the port to use if none is given as an argument to
242`erc-identd-start'. This is placed in the new customization group
243`erc-identd'.
244
245**** New function: `erc-identd-quickstart'
246Ignores any arguments and calls `erc-identd-start'.
247
248*** Channel lists (erc-list.el)
249
250**** Enable by default, except in the version of ERC bundled with Emacs 22.
251
252*** Logging (erc-log.el)
253
254**** Make sure filenames are safe to use before writing to them.
255
256**** Save all log buffers when exiting Emacs.
257
258**** erc-generate-log-file-name-function: Add option for
259`erc-generate-log-file-name-network', which is a new function that
260uses the network name rather than the server name when possible.
261
262*** Menu (erc-menu.el)
263
264**** Name the menu "ERC" instead of "IRC" to avoid confusion with rcirc
265and other clients.
266
267**** Make this into a proper module and load it by default.
268
269**** Add "Current channel" submenu.
270
271*** Networks (erc-networks.el)
272
273**** Add support for Ars OpenIRC, LinuxChix, and OFTC networks.
274
275**** Escape periods in Konfido.Net and Kewl.Org.
276
277*** Internet services / Nickserv (erc-nickserv.el)
278
279**** Add new 'both method for the `erc-nickserv-identify-mode' option
280and make it the default. This tries to do the right thing both when a
281known nickserv message exists for an IRC network, and when it does
282not.
283
284**** Support nickserv authentication on OFTC, Azzurra, Ars, and QuakeNet.
285
286**** Support authentication on BitlBee.
287
288**** Make source code easier to understand by using accessor functions.
289
290*** Sound support (erc-sound.el)
291
292**** Make this work with both Emacs 21 and Emacs 22.
293
294*** Timestamps (erc-stamp.el)
295
296**** Exclude the newline from the erc-timestamp field.
297
298**** New function: `erc-toggle-timestamps'.
299Toggles display of timestamps.
300
2e3ef421
MB
301* Changes in ERC 5.1.4
302
303** Make find-function and find-variable work in Emacs 22 for
304names that are constructed by `define-erc-module'.
305
306** Fix bug introduced in ERC 5.1.3 that caused messages to go the
307wrong buffer.
308
309** Changes and additions to modules
310
311*** Highlighting (erc-match.el)
312
313**** Don't activate view-mode.
314
315*** Logging (erc-log.el)
316
317**** When this module is activated, make sure logging is enabled on
318already-opened buffers. Ditto for disabling logging when the module
319is deactivated.
320
321**** Fix some errors that occur when exiting Emacs without first
322quitting open IRC servers.
d8bd1ad4 323
0b6bb130
MB
324* Changes in ERC 5.1.3
325
326** Fix use of /quote command with no initial whitespace.
327
328** Make it possible to customize the colorization of the header line.
329The `erc-header-line' face is used to color the header line.
330The `erc-header-line-face-method' determines the method to use when
331colorizing the header line.
332
333** Add the new function `erc-handle-irc-url', which is a suitable
334candidate to use for `url-irc-function'. This permits some
335integration of url.el and ERC.
336
337** Fix several errors that occur when server or channel buffers are killed
338prematurely.
339
340** Fix toggling of flood control.
341
342** Match the patterns in `erc-encoding-coding-alist' as regexps,
343instead of verbatim text. Also, match case-insensitively.
344
345** The /SMV command has been removed, since we no longer have
346meaningful module-specific version information.
347
348** Fix a "(stringp nil)" error that can happen when doing /PART.
349
350** Use a better example in the `erc-part-reason-various-alist'
351documentation.
352
353** When using `erc-quit-reason-various' and `erc-part-reason-various'
354and no matches are found, default to using the ERC version string
355rather than "nil".
356
357** Add the `list' and `page' modules to the `erc-modules' customize
358interface.
359
360** Changes to the ERC manual
361
362*** Update the list of available modules.
363
364*** Revise information about releases and development.
365
366*** Provide a simpler example in the "Getting Started" chapter.
367
368*** Fully document how to connect to an IRC server in the new
369"Connecting" chapter.
370
371** Changes and additions to modules
372
373*** Autoaway (erc-autoaway.el)
374
375**** Rename the `erc-autoaway-use-emacs-idle' option to
376`erc-autoaway-idle-method'.
377
378**** Add support for autoaway based on user idle time.
379This is now the default.
380
381**** If you set the AWAY status yourself, erc-autoaway will not
382interfere by un-setting AWAY prematurely.
383
384**** If you are set away while visiting a non-ERC buffer,
385erc-autoaway used to fail in bringing the user back. This is now
386fixed.
387
388*** BBDB (erc-bbdb.el)
389
390**** Add new option `erc-bbdb-electric-p', which determines whether
391to make the BBDB buffer electric. This defaults to not electric.
392
393*** Button (erc-button.el)
394
395**** Use <backtab> instead of <C-tab> for `erc-button-previous'.
396
397*** Identd (erc-identd.el)
398
399**** Fix a bug that involves starting the identd server.
400
401**** Make this work with Emacs 22.
402
403**** Provide a real ERC module named `identd'.
404
405**** Don't create an extra buffer for the identd process.
406
ff59d266
MB
407*** Channel lists (erc-list.el)
408
409**** Enable by default, except in the version of ERC bundled with Emacs 22.
410
0b6bb130
MB
411*** Logging (erc-log.el)
412
413**** By default, don't insert old logs when opening an ERC buffer.
414This may be changed by customizing `erc-log-insert-log-on-open'.
415
416**** New option `erc-log-write-after-send' determines whether the
417log file will be written to after every sent message. The default is
418not to do this.
419
420**** New option `erc-log-write-after-insert' determines whether the
421log file will be written to when new text is added to a logged ERC
422buffer. The default is not to do this. With this option and the
423previous option, logging should no longer slow down ERC as much.
424
425**** Default to saving buffers and queries on quit.
426This may be changed by customizing the `erc-save-buffer-on-quit' and
427`erc-save-queries-on-quit' options, respectively.
428
429**** Only perform logging when the `logging' module is added to
430`erc-modules'. This prevents logging from being activated just by
431loading the erc-log.el file, and makes logging act like other ERC
432modules.
433
434*** Programmable completion (erc-pcomplete.el)
435
436**** Don't complete the user's current nickname.
437
d8bd1ad4 438* Changes in ERC 5.1.2
e7559e30
MB
439
440** Fix compiler errors in erc-autojoin.el and erc-dcc.el.
441
442** Move to end of prompt when ERC reconnects to a server.
443
444** Changes and additions to modules
445
446*** Spell-checking (erc-spelling.el)
447
448**** Don't spell-check nicks or words that are prefixed with '/'.
449
450**** Remove flyspell properties from words we shouldn't spell-check.
451
452**** Fix an issue that caused the ispell process to reload every time
453we switch to an ERC buffer.
454
455*** Timestamps (erc-stamp.el)
456
457**** Fix an inconsistency in calculating width of right timestamps.
458
459**** Rename option `erc-timestamp-right-align-by-pixel' to
460`erc-timestamp-use-align-to'. This controls whether to use the more
461fail-proof method of aligning right timestamps, as mentioned below.
462
463**** Fix a right timestamp spacing problem that used to occur when
464erc-stamp.el was byte-compiled. Now that this is fixed, it is safe to
465use the method that aligns right timestamps perfectly in Emacs22 with
466X. If the current version of Emacs doesn't support this method, use
467the simpler method, which is prone to alignment issues for math
468symbols and other variable-width text.
469
470A side effect of using this new method is that there will only be one
471space before a right timestamp in any saved logs. If this is
472unacceptable, set `erc-timestamp-use-align-to' to nil.
473
8508e990
MB
474* Changes in ERC 5.1.1
475
476** Fix a requirement on cl.el.
477
478** Use tls.el for SSL connections, rather than ssl.el.
479
480** Changes and additions to modules
481
482*** ibuffer integration (erc-ibuffer.el)
483
484**** Update this to work with the version of ibuffer.el that comes with
485recent Emacs variants.
486
487*** Old completion (erc-complete.el)
488
489**** Fix a few errors.
490
491*** Speedbar (erc-speedbar.el)
492
493**** Make this work with the version of speedbar.el that comes with
494recent Emacs variants.
495
496*** Timestamps (erc-stamp.el)
497
498**** By default, use a more failsafe method of displaying right timestamps.
499To get right timestamps to align perfectly in Emacs22 using X, set the
500new `erc-timestamp-right-align-by-pixel' option to non-nil.
501
502*** Viper compatibility (erc-viper.el)
503
504**** Since most of these changes are now merged into Emacs22, detect
505whether we need these changes and install them only if necessary.
506
507* Changes in ERC 5.1
597993cf
MB
508
509** Improve XEmacs compatibility.
510
511** Namespace changes
512
513*** Now ERC doesn't use global variable space.
514Renamed all variables that didn't start with "erc-".
515
516 o `away' is now `erc-away'
517
518 o `current-nick' is now `erc-server-current-nick'
519
520 o `last-peers' is now `erc-server-last-peers'
521
522 o `last-ping-time' is now `erc-server-last-ping-time'
523
524 o `last-sent-time' is now `erc-server-last-sent-time'
525
526 o `lines-sent' is now `erc-server-lines-sent'
527
528 o `quitting' is now `erc-server-quitting'
529
530*** Remove the `with-erc-channel-buffer' function.
531
532** Bugfixes
533
534*** Don't inadvertently destroy face properties.
535
536*** Load erc scripts in a safer way.
537
538*** Don't insert a timestamp if text at point is invisible.
539
540*** Don't hide messages from those in `erc-fools' by default.
541Color their nicks instead.
542
543*** Use a more foolproof method of encoding and decoding strings
544before sending to a channel.
545
546** Backend changes
547
548*** Renamed some server-specific variables
549
550 o `erc-announced-server-name' is now `erc-server-announced-name'
551
552 o `erc-auto-reconnect' is now `erc-server-auto-reconnect'
553
554 o `erc-connect-function' is now `erc-server-connect-function'
555
556 o `erc-default-coding-system' is now `erc-server-coding-system'
557
558 o `erc-duplicate-timeout' is now `erc-server-duplicate-timeout'
559
560 o `erc-duplicates' is now `erc-server-duplicates'
561
562 o `erc-lag' is now `erc-server-lag'
563
564 o `erc-prevent-duplicates' is now `erc-server-prevent-duplicates'
565
566 o `erc-previous-read' is now `erc-server-filter-data'
567
568 o `erc-process' is now `erc-server-process'
569
570 o `erc-ping-handler' is now `erc-server-send-ping-handler'
571
572 o `erc-ping-interval' is now `erc-server-send-ping-interval'
573
574*** Renamed some functions
575
576 o `erc-connect' is now `erc-server-connect'
577
578 o `erc-process-filter' is now `erc-server-filter-function'
579
580 o `erc-send-command' is now `erc-server-send'
581
582 o `erc-send-single-line' is now `erc-send-input'
583
584 o `erc-setup-periodical-server-ping' is now
585 `erc-server-setup-periodical-server-ping'
586
587 o `erc-split-command is now `erc-split-line'
588
589*** New options
590
591 o erc-server-flood-margin, erc-server-flood-penalty: New options
592 that allow tweaking of flood control.
593
594 o erc-split-line-length: The maximum line length of a single
595 message.
596
597*** New variables
598
599 o erc-server-flood-last-message, erc-server-flood-queue,
600 erc-server-flood-timer: Flood control.
601
602 o erc-server-processing-p: Indicate when we're currently processing
603 a message.
604
605*** Remove some options
606
607 o `erc-flood-limit'
608 o `erc-flood-limit2'
609
610** New customization group `erc-server' for dealing with IRC servers.
611
612** ERC can now be installed by doing `make install' from the command line.
613
614** ERC now has a manual in erc.texi.
615Type `make doc' to generate HTML and Info versions of it.
616
617** ERC no longer depends on cl.el.
618Only the macros in cl-macs.el are used.
619
620** Fix an edge case when quitting as new messages come in.
621
622** Make flood protection toggle-able as on/off, removing the 'strict option.
623
624** If possible, re-use channel buffers when reconnecting to a server.
625
626** Text in ERC buffers is now read-only by default.
627To get the previous behavior,
628
629** Changes and additions to modules
630
631*** Auto-join (erc-autojoin.el)
632
633**** Recognize the Azzurra server.
634
635*** BBDB (erc-bbdb.el)
636
637**** When the user types /WHOIS, ask for a record to merge to.
638
639**** Store the displayed name of a BitlBee contact.
640The new `erc-bbdb-bitlbee-name-field' option specifies the field to use
641to store this information.
642
643**** Don't prompt for a name on /JOIN or /NICK.
644
645*** Button (erc-button.el)
646
647**** Fix customization of `erc-button-alist'
648
649**** New option `erc-button-nickname-face' determines the face to use
650when coloring ERC nicknames.
651
652*** Channel tracking (erc-track.el)
653
654**** Remove channels from the modified channels list if not currently
655connected. This should remove residue from the mode line after
656quitting ERC.
657
658**** Recognize buttonized text
659
660*** Highlighting (erc-match.el)
661
662**** Highlight current nickname by default.
663
664**** Added the option of beeping when certain matches occur.
665Add `erc-beep-on-match' to `erc-text-matched-hook' to enable
666beeping. Set the new variable `erc-beep-match-types' which match
667types that make beeps.
668
669*** Nicklist (erc-nicklist.el)
670
671**** Fix a couple of errors.
672
673**** Make sure a stray mouse click doesn't trigger an error.
674
675**** Insert icons from the /images directory next to nicks.
676This indicates their away status. The location is customizable via
677the new `erc-nicklist-icons-directory' option.
678
679If you do not want these icons, set `erc-nicklist-use-icons' to nil.
680
681*** Nickserv identification (erc-nickserv.el)
682
683**** Recognize Azzurra and OFTC networks.
684
685*** Old completion (erc-complete.el)
686
687**** Disable by default.
688
689*** Programmable completion (erc-pcomplete.el)
690
691**** Enable by default.
692
693*** Timestamps (erc-stamp.el)
694
695**** On Emacs22, align right timestamps perfectly, even if variable-width
696characters are used. If we aren't using Emacs22, move text farther
697away from the right margin when variable-width characters are used.
698It is considered better to misalign the stamp by a bit than to go past
699the right margin.
700
701**** Enable by default
702
703** New modules
704
705*** Spell-checking (erc-spelling.el)
706
707**** Use flyspell in ERC.
708
709*** Viper compatibility (erc-viper.el)
710
711**** Helps ERC work correctly in viper-mode.
712
8508e990 713* Changes in ERC 5.0.4
597993cf
MB
714
715** Fix a problem with undo in channels.
716
8508e990 717* Changes in ERC 5.0.3
597993cf
MB
718
719** Fix typo in the `ctcp-request-to' entry of the English catalog.
720
721** Debugging with edegug has been made easier in all of the
722erc-with-* and with-erc* macros.
723
724** Non-ASCII character sets should be better supported when sending
725and processing messages.
726
727** A load failure with erc-autoaway.el and Emacs21 has been fixed.
728
729** A few XEmacs warnings were fixed.
730
731** Changes and additions to modules
732
733*** Backend (erc-backend.el)
734
735**** Move the check for hidden messages into `erc-display-message'
736so there isn't so much replicated code.
737
738**** Add `definition-name' property to constructed symbols so that
739`find-function' and `find-variable' will be able to locate them.
740
741**** Make sure logs are inserted info the correct channel buffers.
742There was previously an error when using `erc-insert-log-on-open' in
743combination with autojoin to multiple channels.
744
745*** Button (erc-button.el)
746
747**** The layering of `erc-button-face' on other faces in ERC buffers
748has been improved.
749
750*** Channel tracking (erc-track.el)
751
752**** Use optimal amount of whitespace around modified channels
753indicator. Previously, there was an additional unnecessary space.
754
755**** Fix an error that occurred when unchecked buffers existed when
756invoking /QUIT.
757
8508e990 758* Changes in ERC 5.0.2
597993cf
MB
759
760** If a channel key is required for a certain channel, ERC will prompt
761for one if `erc-prompt-for-channel-key' is non-nil.
762
763** ERC doesn't try to reconnect if the network connection is refused
764when using `open-network-stream-nowait' as the `erc-connect-function'.
765
766** Messages from multiple servers will not go to the currently active
767buffer. The messages from each server will be contained in the most
768recently active channel/server buffer that corresponds with the
769server.
770
771** Some text messages were cleaned up slightly.
772
773** Button faces should no longer "cover" other faces.
774
775** Made some XEmacs compatibility fixes.
776
777** Nicknames containing a backslash are now correctly highlighted as
778current-nick and buttonized as nicks.
779
780** `erc-server-select' doesn't offer networks without servers as a
781choice anymore.
782
783** Non-ASCII character support has been improved.
784
785** Changes and additions to modules
786
787*** Menu (erc-menu.el)
788
789**** You can now save logs and truncate buffers from the menu-bar.
790
8508e990 791* Changes in ERC 5.0.1
597993cf
MB
792
793** Narrowing in ERC buffers no longer causes formatting errors.
794
795** The BBDB module now loads correctly when customizing `erc-modules'.
796
797** The value of `erc-button-face' is now respected.
798
799** Fixed a bug which caused a read-only error during connection.
800
801** Server buffers are now tracked correctly.
802This means that `erc-track-priority-faces-only', `erc-track-exclude',
803and `erc-track-exclude-types' now work with server buffers.
804
8508e990 805* Changes in ERC 5.0
597993cf
MB
806
807** Channel members are now stored as a hash-table.
808`erc-server-users' and `erc-channel-users' are now hash-tables, rather
809than alists. This significantly increases performance, especially in
810large channels. Each channel member is stored as an `erc-server-user'
811struct, with additional information about the channels they are on
812stored in an `erc-channel-user' struct. Code using old alist-style
813channel members needs to be updated to work with hash-tables.
814This new code also removes the need for erc-members.el, which has been
815removed.
816
817** The way ERC deals with input from the server has changed.
818All server response code is now in a new file, erc-backend.el. There
819should be no real user visible changes. There are, however, a few
820major changes for implementers, and module writers:
821
822*** The PARSED response that all handlers get called with is
823 no longer a vector, but an `erc-response' struct.
824
825 This means LESS MAGIC NUMBERS in the ERC source code, but a few
826 changes in how you get at parsed responses.
827
828 The sender is accessed via `erc-response.sender'.
829
830 The command is accessed via `erc-response.command'.
831
832 The arguments to the command (everything after the command and
833 before the colon) are accessed via `erc-response.command-args'.
834 This is a /list/ of arguments in the order they appear in the
835 unparsed response.
836
837 The contents of the response is accessed via
838 `erc-response.contents'.
839
840 Should, for some reason, you want to do something with the
841 /unparsed/ response, you can get it via `erc-response.unparsed'.
842
843*** The `erc-server-hook-list' mechanism is gone.
844
845 All server response handlers should be defined with
846 `define-erc-response-handler'. This defines functions and
847 corresponding hook variables.
848
849 The mapping of server commands to hook variables is no longer
850 done via `erc-event-to-hook', but through an #'equal hashtable,
851 `erc-server-responses'. In order to find a hook you do:
852
853 (erc-get-hook command)
854
855 See the docstring of `define-erc-response-handler' for more
856 information.
857
858*** ALL hook variables have been renamed.
859
860 In accordance with recommendations in the Emacs Lisp manual,
861 the hook variables are no longer called `erc-server-FOO-hook',
862 but rather `erc-server-FOO-functions'. This is to indicate
863 that the functions they call take arguments.
864
865 All the modules in ERC have been updated to reflect this change,
866 but external module authors should beware.
867
868** The values of `erc-mode-line-format' and `erc-header-line-format'
869are now defined as strings to be formatted using `format-spec'.
870`erc-mode-line-format' does not replace the whole mode-line anymore,
871only `mode-line-buffer-identification' is set. This way, personal
872mode-line configurations are not modified and all key bindings work as
873expected. The process status (connecting, closed) is now shown in
874`mode-line-process'.
875
876** Customization of ERC variables has been made easier. Variables
877have been split into more groups for better organization.
878
879** New variables
880
881 o `erc-send-whitespace-lines' - Set this to send lines even if they
882 are empty.
883
884 o `erc-manual-set-nick-on-bad-nick-p' - If the nickname you chose is
885 already taken or not allowed, your nick is not changed and you can
886 try again manually if this is non-nil.
887
888 o `erc-mode-line-away-status-format' - You can now set what is shown
889 in the mode-line when you are away.
890
891 o `erc-header-line-uses-help-echo-p' - The header-line now uses the
892 help-echo property. You can set this to nil to disable it.
893
894 o `erc-format-query-as-channel-p' - Set this to nil to have messages
895 in the query buffer formatted like private messages.
896
897 o `erc-show-channel-key-p' - The channel key is now shown with the
898 other channel modes in the header line. Set this to nil if you
899 want it hidden.
900
901 o `erc-prompt-for-channel-key' - Set this if you want to be prompted
902 for the channel key (channel's mode is +k) when you call
903 `erc-join-channel' interactively.
904
905 o `erc-kill-server-buffer-on-quit' - If non-nil, kill the server
906 buffer automatically when you quit.
907
908** New hooks
909
910 o `erc-join-hook' - Called when you join a channel.
911
912 o `erc-kick-hook' - Called when you are kicked from a channel. The
913 channel's buffer is sent as an argument to functions called from
914 this hook.
915
916 o `erc-nick-changed-functions' - Whenever your nickname changes
917 successfully, the functions in this hook are run with the
918 arguments NEW-NICK and OLD-NICK.
919
920** New command /WHOAMI - Do a /WHOIS on your current nickname.
921
922** The key binding for changing channel modes is now C-c C-o.
923
924** Removed variables
925
926 o `erc-echo-notices-in-minibuffer-flag' and
927 `erc-echo-notices-in-current-buffer' - You should use
928 `erc-echo-notice-hook' and `erc-echo-notice-always-hook' instead.
929
930 o `erc-prompt-interactive-input' has been removed (commented out)
931 because nickname completion does not work with it.
932
933 o All INFO buffer-related variables and functions have been removed.
934
935** You can now disable modules by setting `erc-modules' with the
936customization interface.
937
938** Changes and additions to modules
939
940*** Autoaway (erc-autoaway.el)
941
942**** New variable `erc-autoaway-no-auto-back-regexp' - Add text which,
943when you type anything matching it, will not automatically discard
944your away status when `erc-auto-discard-away' is non-nil.
945
946*** Filling (erc-fill.el)
947
948**** New variable `erc-fill-variable-maximum-indentation' - Don't
949indent more than this many characters when indenting a message from a
950user with a long nickname.
951
952*** Goodies (erc-goodies.el)
953
954**** Miscellaneous small modules have been moved from erc.el.
955The functions erc-add-scroll-to-bottom, erc-make-read-only,
956erc-send-distinguish-noncommands, erc-interpret-controls, erc-unmorse,
957erc-smiley, and erc-occur, which were defined in the main erc.el file
958have been moved to erc-goodies.el and have mostly been translated to
959the modules scrolltobottom, readonly, noncommands, irccontrols, smiley
960and unmorse.
961
962**** New variables
963
964 o `erc-input-line-position' - The line number to use with
965 `erc-scroll-to-bottom'.
966
967 o `erc-beep-p' - Beep if there is a \C-g control character in a
968 message.
969
970*** Channel lists (erc-list.el)
971
972**** New variable `erc-chanlist-highlight-face' - A face used for
973highlighting the current line.
974
975*** Highlighting (erc-match.el)
976
977**** `erc-current-nick-highlight-type' has new options: 'keyword and
978'nick-or-keyword.
979
980*** Menu (erc-menu.el)
981
982**** The `IRC' menu is now automatically added to `erc-mode' buffers.
983
984*** Networks (erc-nets.el)
985
986**** The functions for determining current network are in this file.
987There were a couple of functions spread about in different files which
988each had a different way of determining the current network. The
989methods have been combined, and the big list of known networks
990(`erc-networks-alist') is being put to use. You can access the
991network's name by calling the new function `erc-network'. This
992returns the name of the current network as a symbol or 'Unknown if it
993could not determine which network it is.
994
995*** Nicklist (erc-nicklist.el)
996
997**** ERC has a new way of displaying nicknames in a channel.
998The new file erc-nicklist.el defines a new command `erc-nicklist'
999which pops up a small Emacs window showing the nicknames of all
1000members of the current channel. The implementation is not complete
1001and is rather proof-of-concept for now. The result is something a bit
1002like erc-speedbar, but not quite as invasive, and doesn't require use
1003of a new frame.
1004
1005*** Internet services / Nickserv (erc-nickserv.el)
1006
1007**** Network detection is now taken care of by erc-nets.el.
1008The function `erc-current-network' is deprecated, use `erc-network'
1009instead. The variable `erc-networks' has been removed, use
1010`erc-networks-alist'. The network symbols used in
1011`erc-nickserv-alist' now match those in `erc-networks-alist'.
1012
1013**** New variable `erc-nickserv-identify-mode' - Choose which method
1014to use for automatic identification: you can wait for Nickserv to ask
1015you to identify (the default), or send an identify message
1016automatically after you change your nickname.
1017
1018*** Speedbar (erc-speedbar.el)
1019
1020**** New variable `erc-speedbar-sort-users-type' - Sort users in a
1021channel by activity, alphabetically, or not at all.
1022
1023*** Timestamps (erc-stamp.el)
1024
1025**** `erc-timestamp-only-if-changed-flag' now works when
1026`erc-insert-timestamp-function' is set to 'erc-insert-timestamp-left.
1027
1028**** New variable `erc-timestamp-intangible' - Set this to nil if
1029timestamps should not have the 'intangible property.
1030
1031*** Channel tracking (erc-track.el)
1032
1033**** Using faces to indicate channel activity in the modeline now works
1034in XEmacs.
1035
1036**** New variables
1037
1038 o `erc-track-priority-faces-only' - Ignore changes in a channel
1039 unless there is a face from the `erc-track-faces-priority-list' in
1040 the message.
1041
1042 o `erc-track-exclude-server-buffer' - Ignore changes in the server
1043 buffer.
1044
1045 o `erc-track-position-in-mode-line' - Set the position in the
1046 mode-line where modified channels are shown (only works in GNU
1047 Emacs versions above 21.3).
1048
8508e990 1049* Changes in ERC 4.0
597993cf
MB
1050
1051** The module system has again changed a lot. You can now customize
1052 the variable `erc-modules' and define once and for all which
1053 extension modules you want to use. This unfortunately may require
1054 you to change your current erc initialisation code a bit, if you
1055 have some existing customsations. On the other hand, this change
1056 makes the configuration of extension modules a lot easier for new
1057 users. In theory, you should be able to configure all aspects of
1058 ERC by using the customize interface, you should no longer really
1059 need to write Lisp code for trivial customizations.
1060
1061 By default, the following modules are now loaded: (pcomplete
1062 netsplit fill track ring button autojoin)
1063
1064 Please use M-x customize-variable RET erc-modules RET to change the
1065 default if it does not suite your needs.
1066
1067** THe symbol used in `erc-nickserv-passwords' for debian.org IRC servers
1068 (formerly called OpenProjects, now FreeNode) has changed from
1069 openprojects to freenode. You may need to update your configuration
1070 for a successful automatic nickserv identification.
1071
8508e990 1072* Changes in ERC 3.0.cvs.20030119
597993cf
MB
1073
1074** New module erc-dcc:
1075
1076This finally implements DCC. It requires server sockets to fully work
1077in both directions. This feature is currently only available in Emacs
107821.3.50 (CVS). Here is a short list of what should work though.
1079
1080** Compatibility:
1081 * Emacs 21.2, DCC get, and accepting DCC chat offers.
1082 * XEmacs 21, Only accepting DCC chat offers.
1083
1084** erc is switching to global-minor-modes for activation of submodules.
1085
1086This allows you to customize such a mode and get automatic loading of
1087the module. No longer putting a lot of require statments in .emacs.
1088At least this is the long-term plan, not all modules are converted
1089yet.
1090
1091** The most important user visible change is that you now need to activate
1092erc-completion-mode, to get TAB completion. The new completion code
1093is based on pcomplete. To get the old code, manually load
1094erc-complete and bind TAB to erc-complete in erc-mode-map.
1095
1096To activate completion on startup, put (erc-completion-mode 1) in your
1097.emacs file.
1098
1099Same applies to timestamps. You no longer need to (require
1100'erc-stamp), you can customize the variable `erc-timestamp-mode', and
1101the rest should be automatic.
1102
5b87ad55
GM
1103\f
1104This file is part of GNU Emacs.
1105
1106GNU Emacs is free software; you can redistribute it and/or modify
1107it under the terms of the GNU General Public License as published by
fca4a5de 1108the Free Software Foundation; either version 3, or (at your option)
5b87ad55
GM
1109any later version.
1110
1111GNU Emacs is distributed in the hope that it will be useful,
1112but WITHOUT ANY WARRANTY; without even the implied warranty of
1113MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1114GNU General Public License for more details.
1115
1116You should have received a copy of the GNU General Public License
1117along with GNU Emacs; see the file COPYING. If not, write to the
1118Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
1119Boston, MA 02110-1301, USA.
1120
597993cf 1121arch-tag: 2b21b387-6cdc-4192-889c-6743cfffdcb1