declare smobs in alloc.c
[bpt/emacs.git] / etc / ERC-NEWS
1 ERC NEWS -*- outline -*-
2
3 Copyright (C) 2006-2014 Free Software Foundation, Inc.
4 See the end of the file for license conditions.
5
6 * For changes after ERC 5.3, see the main Emacs NEWS file
7
8 * Changes in ERC 5.3
9
10 ** New function `erc-tls' is to be used for connecting to a server via TLS.
11 It requires the tls.el library.
12
13 ** The function `erc-ssl' will now always use ssl.el, even in the version
14 of ERC that comes with Emacs.
15
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
18 when channels are protected by keywords.
19
20 ** ERC will now automatically determine which nick prefixes are valid
21 when 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
25 usually ~/.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.
30 This includes /CLEAR, /COUNTRY, /HELP, /LASTLOG, /QUIT, /GQUIT,
31 /RECONNECT, /SERVER, and /SET.
32
33 ** Make /RECONNECT work better when the server connection is dead.
34 Also, handle case where the server buffer has been killed.
35
36 ** Better handle interaction with /RECONNECT and indefinite reconnect
37 attempts. Display message which tells the user that they can stop the
38 reconnect attempts by killing the server buffer.
39
40 ** New option `erc-reuse-frames' determines whether new frames are always
41 created. It defaults to not creating a new frame for an ERC buffer if
42 there is already a window displaying it. This only has an effect when
43 the `erc-join-buffer' option is set to 'frame.
44
45 ** New command /ME'S handles the case where someone types "/me's" in an
46 ERC buffer. It concatenates the text " 's" to the beginning of the
47 input 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.
50 In the past, this may have resulted in strange problems like seeing
51 the connection attempt stall, which may have especially affected
52 spotty 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
61 unselected window. This may be changed by customizing the
62 `erc-auto-query' option. This should make ERC more friendly to new
63 users.
64
65 ** New option `erc-query-display' indicates how to display a query buffer
66 that is made using the /QUERY command. The default is to display the
67 query in a new selected window.
68
69 ** By default, display network name rather than server name in the modeline.
70 This should ERC use less space in the modeline. To get the old
71 behavior back, set `erc-mode-line-format' to "%s %a".
72
73 ** New option `erc-remove-parsed-property' determines whether to remove
74 the 'erc-parsed property. This should save some memory in channels
75 with 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
90 the `target' argument as the first and only argument to the function
91 named by these options.
92
93 *** In `erc-track-faces-priority-list', permit list entries to be lists of
94 faces. This can be used to differentiate between, for example,
95 buttons in default text and buttons in notices.
96
97 *** The `erc-assert' function has been removed in favor of using `assert'
98 from cl-macs.el.
99
100 *** If your application uses the 'erc-parsed text property outside of
101 the insert hooks, you will need to set `erc-remove-parsed-property'
102 to nil.
103
104 ** Changes and additions to modules
105
106 *** BBDB (erc-bbdb.el)
107
108 **** Work around bug in XEmacs 21.4 that causes an error to be thrown when
109 the 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
120 easily enabled.
121
122 **** New option `erc-dcc-listen-host' determines which IP address to listen
123 on for outside connection attempts.
124
125 **** New option `erc-dcc-public-host' determines which IP address to advertise
126 when sending a file. This is useful for people who are on a local
127 subnet. Together, these two options replace the `erc-dcc-host'
128 option.
129
130 **** New option `erc-dcc-receive-cache' indicates how much of a received
131 file to store in an Emacs buffer before flushing it to disk. The
132 default is 0.5 MB.
133
134 **** Save only parts of received files in buffers, writing repeatedly to
135 disk after we get at least `erc-dcc-receive-cache' bytes. This allows
136 users to receive very large files without running out of memory.
137
138 **** Rename `erc-verbose-dcc' option to `erc-dcc-verbose' and also
139 default 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
144 file buffer.
145
146 *** Goodies (erc-goodies.el)
147
148 **** New module move-to-prompt causes the point to be moved to the prompt
149 if a user tries to type elsewhere in the buffer, and then inserts
150 their keystrokes after the prompt. It is enabled by default.
151
152 **** New module keep-place keeps your place in unvisited ERC buffers
153 when new messages arrive.
154
155 **** Enable scroll-to-bottom in all ERC buffers when the module is enabled,
156 rather 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
161 the 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
170 it with Emacs. The old version of erc-list.el has been renamed to
171 erc-list-old.el, and is available as the list-old module.
172
173 The 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
180 name. This makes it easier to write custom functions that determine
181 where log files should be placed.
182
183 **** New option `erc-log-filter-function' specifies the function to call
184 for filtering text before writing it to a log file. By default, no
185 filtering is performed.
186
187 *** Networks (erc-networks.el)
188
189 **** Turn this into the "networks" module for ERC, so that it can be more
190 easily 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
197 acknowledges 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.
204 The left timestamps appear once a day, and the right timestamps appear
205 once 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
209 *** Channel tracking (erc-track.el)
210
211 **** If `erc-track-position-in-mode-line' is set to nil, the tracking
212 information won't be shown in the mode line, which is a change from
213 the previous behavior of showing it "After all other information".
214
215 If this variable is set to t, then the information will be added to
216 the very end of the mode line.
217
218 **** New option `erc-track-remove-disconnected-buffers' controls whether
219 buffers associated with a server that is disconnected should be
220 removed from the modified buffers list. The default is to keep them
221 in the list.
222
223 **** New hook option `erc-track-list-changed-hook' is run whenever the
224 contents of the modified channels list changes. It is useful for
225 people who use a separate mechanism to provide notification of channel
226 activity.
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
230 order of importance, which is determined by the position of the
231 channel'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
238 switching between several normal conversation faces in the modeline.
239 This 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
243 users on the current channel. Customize the `erc-track-exclude-types'
244 option to indicate the types of messages to exclude. These two
245 message 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
250 easily enabled.
251
252 * Changes in ERC 5.2
253
254 ** M-x erc RET now starts ERC.
255 `erc-select' has been changed to `erc'. `erc-select' still remains as
256 an 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
258 known as `erc' is now `erc-open'.
259
260 ** Open query buffers by default when private messages are received.
261 The default value of `erc-auto-query' has been changed to 'bury.
262
263 ** New command: /RECONNECT
264 This command tries to reconnect to the current IRC server exactly
265 once. It does not work in server buffers (throws an error before the
266 command is run), but works in query and channel buffers.
267
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
273 4 seconds. Freenode, in particular, needs this at times.
274
275 ** If the IRC process has not responded to our PINGs within a certain
276 time, 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.
282 Previously, this could happen if your nick was banned, you were using
283 Tor, 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
290 argument is a user or a regexp. This results in less-confusing
291 behavior when trying to ignore someone who has a bracket in their
292 nick.
293
294 ** Make the default port "6667" rather than "ircd", because some
295 operating 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.
300 Special thanks go to Juanma Barranquero for the thorough vetting of
301 ERC'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.
308 This 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
313 appear in the version of ERC that is bundled with Emacs 22. These
314 extras 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
321 Several files were renamed so as to make them distinct to users of the
322 MS-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.
336 Namely: (setq erc-header-line-format nil).
337
338 ** New options
339
340 *** erc-server-reconnect-attempts: Determines the number of
341 reconnection attempts that ERC will make per server.
342
343 *** erc-server-reconnect-timeout: Determines the amount of time,
344 in seconds, that ERC will wait between successive reconnect attempts.
345
346 *** erc-server-send-ping-timeout: Determines when to consider a connection
347 stalled and restart it. The default is after 120 seconds.
348
349 *** erc-system-name: Determines the system name to use when logging in.
350 The default is to figure this out by calling `system-name'.
351
352 ** New face: `erc-my-nick-face'
353 This helps make it easier to distinguish messages sent by yourself
354 from messages sent by other users when the value of the variable
355 `erc-show-my-nick' is non-nil.
356
357 ** Namespace changes
358
359 *** New macro: `erc-with-server-buffer'
360 Switches to the current ERC server buffer and runs some code. If no
361 server buffer is available, return nil. This is a useful way to
362 access variables in the server buffer.
363
364 *** New function: `erc-open-server-buffer-p'
365 Returns non-nil if the given buffer is an ERC server buffer that has
366 an open IRC process.
367
368 *** New function: `erc-format-lag-time'
369 Returns 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.
381 Describes a sample ERC session for connecting to the #emacs channel on
382 Freenode. Also mention the #erc channel.
383
384 *** New section: Special Features.
385 Describes some of the special features of ERC.
386
387 *** Getting Started: Mention ~/.emacs.d/.ercrc.el and the Customize
388 interface.
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
398 ** New modules
399
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
411 create a new John Doe record.
412
413 **** Make it so that information from /whois continues to come in, even
414 while prompting for a record to merge.
415
416 **** Make hitting C-g correctly abort merging the record.
417
418 *** Capab identify (erc-capab.el)
419 Mark users who haven't identified to NickServ on servers supporting
420 CAPAB IDENTIFY-MSG.
421
422 ** Changes and additions to modules
423
424 *** Button (erc-button.el)
425
426 **** Make <backtab> go to the previous button.
427
428 *** Channel tracking (erc-track.el)
429
430 **** Use mouse-face and help-echo for channel names in the mode-line.
431 This helps people using a mouse know that they are buttons and can be
432 clicked on.
433
434 **** Fix issue where C-c C-SPC could conflict with user-defined keybindings.
435 This is accomplished by moving these bindings to their own global
436 minor mode. Now the default is to check whether the user has bound
437 something to C-c C-SPC or C-c C-@. If they have, prompt them about
438 whether to really override that binding. This also has the effect of
439 preventing ERC from clobbering rcirc's keybinding, unless this is
440 desired. See `erc-track-enable-keybindings' for more details.
441
442 **** New option: erc-track-enable-keybindings.
443 Determine whether or not to enable the C-c C-SPC and C-c C-@
444 keybindings. The default is to ask whether to do this if a binding to
445 these keys already exists. It can also be set to t or nil to always
446 bind or never bind, respectively.
447
448 **** Remove `track-when-inactive' module.
449 See `erc-track-when-inactive' for further details.
450
451 **** New option: erc-track-when-inactive.
452 This option replaces the track-when-inactive module. Set it to
453 non-nil to track activity even in visible buffers when inactive. The
454 default 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'
471 Specifies 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'
476 Ignores 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
490 uses 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
495 and 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
510 and make it the default. This tries to do the right thing both when a
511 known nickserv message exists for an IRC network, and when it does
512 not.
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'.
529 Toggles display of timestamps.
530
531 * Changes in ERC 5.1.4
532
533 ** Make find-function and find-variable work in Emacs 22 for
534 names that are constructed by `define-erc-module'.
535
536 ** Fix bug introduced in ERC 5.1.3 that caused messages to go the
537 wrong 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
548 already-opened buffers. Ditto for disabling logging when the module
549 is deactivated.
550
551 **** Fix some errors that occur when exiting Emacs without first
552 quitting open IRC servers.
553
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.
559 The `erc-header-line' face is used to color the header line.
560 The `erc-header-line-face-method' determines the method to use when
561 colorizing the header line.
562
563 ** Add the new function `erc-handle-irc-url', which is a suitable
564 candidate to use for `url-irc-function'. This permits some
565 integration of url.el and ERC.
566
567 ** Fix several errors that occur when server or channel buffers are killed
568 prematurely.
569
570 ** Fix toggling of flood control.
571
572 ** Match the patterns in `erc-encoding-coding-alist' as regexps,
573 instead of verbatim text. Also, match case-insensitively.
574
575 ** The /SMV command has been removed, since we no longer have
576 meaningful 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'
581 documentation.
582
583 ** When using `erc-quit-reason-various' and `erc-part-reason-various'
584 and no matches are found, default to using the ERC version string
585 rather than "nil".
586
587 ** Add the `list' and `page' modules to the `erc-modules' customize
588 interface.
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.
609 This is now the default.
610
611 **** If you set the AWAY status yourself, erc-autoaway will not
612 interfere by un-setting AWAY prematurely.
613
614 **** If you are set away while visiting a non-ERC buffer,
615 erc-autoaway used to fail in bringing the user back. This is now
616 fixed.
617
618 *** BBDB (erc-bbdb.el)
619
620 **** Add new option `erc-bbdb-electric-p', which determines whether
621 to 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
637 *** Channel lists (erc-list.el)
638
639 **** Enable by default, except in the version of ERC bundled with Emacs 22.
640
641 *** Logging (erc-log.el)
642
643 **** By default, don't insert old logs when opening an ERC buffer.
644 This may be changed by customizing `erc-log-insert-log-on-open'.
645
646 **** New option `erc-log-write-after-send' determines whether the
647 log file will be written to after every sent message. The default is
648 not to do this.
649
650 **** New option `erc-log-write-after-insert' determines whether the
651 log file will be written to when new text is added to a logged ERC
652 buffer. The default is not to do this. With this option and the
653 previous option, logging should no longer slow down ERC as much.
654
655 **** Default to saving buffers and queries on quit.
656 This 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
661 loading the erc-log.el file, and makes logging act like other ERC
662 modules.
663
664 *** Programmable completion (erc-pcomplete.el)
665
666 **** Don't complete the user's current nickname.
667
668 * Changes in ERC 5.1.2
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
683 we 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
691 fail-proof method of aligning right timestamps, as mentioned below.
692
693 **** Fix a right timestamp spacing problem that used to occur when
694 erc-stamp.el was byte-compiled. Now that this is fixed, it is safe to
695 use the method that aligns right timestamps perfectly in Emacs22 with
696 X. If the current version of Emacs doesn't support this method, use
697 the simpler method, which is prone to alignment issues for math
698 symbols and other variable-width text.
699
700 A side effect of using this new method is that there will only be one
701 space before a right timestamp in any saved logs. If this is
702 unacceptable, set `erc-timestamp-use-align-to' to nil.
703
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
715 recent 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
724 recent Emacs variants.
725
726 *** Timestamps (erc-stamp.el)
727
728 **** By default, use a more failsafe method of displaying right timestamps.
729 To get right timestamps to align perfectly in Emacs22 using X, set the
730 new `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
735 whether we need these changes and install them only if necessary.
736
737 * Changes in ERC 5.1
738
739 ** Improve XEmacs compatibility.
740
741 ** Namespace changes
742
743 *** Now ERC doesn't use global variable space.
744 Renamed 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.
771 Color their nicks instead.
772
773 *** Use a more foolproof method of encoding and decoding strings
774 before 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.
845 Type `make doc' to generate HTML and Info versions of it.
846
847 ** ERC no longer depends on cl.el.
848 Only 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.
857 To get the previous behavior,
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.
870 The new `erc-bbdb-bitlbee-name-field' option specifies the field to use
871 to 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
880 when coloring ERC nicknames.
881
882 *** Channel tracking (erc-track.el)
883
884 **** Remove channels from the modified channels list if not currently
885 connected. This should remove residue from the mode line after
886 quitting 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.
895 Add `erc-beep-on-match' to `erc-text-matched-hook' to enable
896 beeping. Set the new variable `erc-beep-match-types' which match
897 types 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.
906 This indicates their away status. The location is customizable via
907 the new `erc-nicklist-icons-directory' option.
908
909 If 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
926 characters are used. If we aren't using Emacs22, move text farther
927 away from the right margin when variable-width characters are used.
928 It is considered better to misalign the stamp by a bit than to go past
929 the 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
943 * Changes in ERC 5.0.4
944
945 ** Fix a problem with undo in channels.
946
947 * Changes in ERC 5.0.3
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
952 erc-with-* and with-erc* macros.
953
954 ** Non-ASCII character sets should be better supported when sending
955 and 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'
966 so 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.
972 There was previously an error when using `erc-insert-log-on-open' in
973 combination 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
978 has been improved.
979
980 *** Channel tracking (erc-track.el)
981
982 **** Use optimal amount of whitespace around modified channels
983 indicator. Previously, there was an additional unnecessary space.
984
985 **** Fix an error that occurred when unchecked buffers existed when
986 invoking /QUIT.
987
988 * Changes in ERC 5.0.2
989
990 ** If a channel key is required for a certain channel, ERC will prompt
991 for one if `erc-prompt-for-channel-key' is non-nil.
992
993 ** ERC doesn't try to reconnect if the network connection is refused
994 when using `open-network-stream-nowait' as the `erc-connect-function'.
995
996 ** Messages from multiple servers will not go to the currently active
997 buffer. The messages from each server will be contained in the most
998 recently active channel/server buffer that corresponds with the
999 server.
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
1008 current-nick and buttonized as nicks.
1009
1010 ** `erc-server-select' doesn't offer networks without servers as a
1011 choice 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
1021 * Changes in ERC 5.0.1
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.
1032 This means that `erc-track-priority-faces-only', `erc-track-exclude',
1033 and `erc-track-exclude-types' now work with server buffers.
1034
1035 * Changes in ERC 5.0
1036
1037 ** Channel members are now stored as a hash-table.
1038 `erc-server-users' and `erc-channel-users' are now hash-tables, rather
1039 than alists. This significantly increases performance, especially in
1040 large channels. Each channel member is stored as an `erc-server-user'
1041 struct, with additional information about the channels they are on
1042 stored in an `erc-channel-user' struct. Code using old alist-style
1043 channel members needs to be updated to work with hash-tables.
1044 This new code also removes the need for erc-members.el, which has been
1045 removed.
1046
1047 ** The way ERC deals with input from the server has changed.
1048 All server response code is now in a new file, erc-backend.el. There
1049 should be no real user visible changes. There are, however, a few
1050 major 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'
1099 are now defined as strings to be formatted using `format-spec'.
1100 `erc-mode-line-format' does not replace the whole mode-line anymore,
1101 only `mode-line-buffer-identification' is set. This way, personal
1102 mode-line configurations are not modified and all key bindings work as
1103 expected. The process status (connecting, closed) is now shown in
1104 `mode-line-process'.
1105
1106 ** Customization of ERC variables has been made easier. Variables
1107 have 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
1166 customization 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,
1173 when you type anything matching it, will not automatically discard
1174 your 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
1179 indent more than this many characters when indenting a message from a
1180 user with a long nickname.
1181
1182 *** Goodies (erc-goodies.el)
1183
1184 **** Miscellaneous small modules have been moved from erc.el.
1185 The functions erc-add-scroll-to-bottom, erc-make-read-only,
1186 erc-send-distinguish-noncommands, erc-interpret-controls, erc-unmorse,
1187 erc-smiley, and erc-occur, which were defined in the main erc.el file
1188 have been moved to erc-goodies.el and have mostly been translated to
1189 the modules scrolltobottom, readonly, noncommands, irccontrols, smiley
1190 and 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
1203 highlighting 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.
1217 There were a couple of functions spread about in different files which
1218 each had a different way of determining the current network. The
1219 methods have been combined, and the big list of known networks
1220 (`erc-networks-alist') is being put to use. You can access the
1221 network's name by calling the new function `erc-network'. This
1222 returns the name of the current network as a symbol or 'Unknown if it
1223 could 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.
1228 The new file erc-nicklist.el defines a new command `erc-nicklist'
1229 which pops up a small Emacs window showing the nicknames of all
1230 members of the current channel. The implementation is not complete
1231 and is rather proof-of-concept for now. The result is something a bit
1232 like erc-speedbar, but not quite as invasive, and doesn't require use
1233 of a new frame.
1234
1235 *** Internet services / Nickserv (erc-nickserv.el)
1236
1237 **** Network detection is now taken care of by erc-nets.el.
1238 The function `erc-current-network' is deprecated, use `erc-network'
1239 instead. 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
1244 to use for automatic identification: you can wait for Nickserv to ask
1245 you to identify (the default), or send an identify message
1246 automatically after you change your nickname.
1247
1248 *** Speedbar (erc-speedbar.el)
1249
1250 **** New variable `erc-speedbar-sort-users-type' - Sort users in a
1251 channel 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
1259 timestamps 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
1264 in 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
1279 * Changes in ERC 4.0
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
1284 you to change your current erc initialization code a bit, if you
1285 have some existing customizations. On the other hand, this change
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
1302 * Changes in ERC 3.0.cvs.20030119
1303
1304 ** New module erc-dcc:
1305
1306 This finally implements DCC. It requires server sockets to fully work
1307 in both directions. This feature is currently only available in Emacs
1308 21.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
1316 This allows you to customize such a mode and get automatic loading of
1317 the module. No longer putting a lot of require statements in .emacs.
1318 At least this is the long-term plan, not all modules are converted yet.
1319
1320 ** The most important user visible change is that you now need to activate
1321 erc-completion-mode, to get TAB completion. The new completion code
1322 is based on pcomplete. To get the old code, manually load
1323 erc-complete and bind TAB to erc-complete in erc-mode-map.
1324
1325 To activate completion on startup, put (erc-completion-mode 1) in your
1326 .emacs file.
1327
1328 Same applies to timestamps. You no longer need to (require
1329 'erc-stamp), you can customize the variable `erc-timestamp-mode', and
1330 the rest should be automatic.
1331
1332 \f
1333 This file is part of GNU Emacs.
1334
1335 GNU Emacs is free software: you can redistribute it and/or modify
1336 it under the terms of the GNU General Public License as published by
1337 the Free Software Foundation, either version 3 of the License, or
1338 (at your option) any later version.
1339
1340 GNU Emacs is distributed in the hope that it will be useful,
1341 but WITHOUT ANY WARRANTY; without even the implied warranty of
1342 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1343 GNU General Public License for more details.
1344
1345 You should have received a copy of the GNU General Public License
1346 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.