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