]> code.delx.au - gnu-emacs/blob - etc/ERC-NEWS
(Program Modes): Replace inforef to emacs-xtra by conditional xref's, depending
[gnu-emacs] / etc / ERC-NEWS
1 ERC NEWS -*- outline -*-
2
3 * Changes in ERC 5.2 (unreleased)
4
5 * Changes in ERC 5.1.2
6
7 ** Fix compiler errors in erc-autojoin.el and erc-dcc.el.
8
9 ** Move to end of prompt when ERC reconnects to a server.
10
11 ** Changes and additions to modules
12
13 *** Spell-checking (erc-spelling.el)
14
15 **** Don't spell-check nicks or words that are prefixed with '/'.
16
17 **** Remove flyspell properties from words we shouldn't spell-check.
18
19 **** Fix an issue that caused the ispell process to reload every time
20 we switch to an ERC buffer.
21
22 *** Timestamps (erc-stamp.el)
23
24 **** Fix an inconsistency in calculating width of right timestamps.
25
26 **** Rename option `erc-timestamp-right-align-by-pixel' to
27 `erc-timestamp-use-align-to'. This controls whether to use the more
28 fail-proof method of aligning right timestamps, as mentioned below.
29
30 **** Fix a right timestamp spacing problem that used to occur when
31 erc-stamp.el was byte-compiled. Now that this is fixed, it is safe to
32 use the method that aligns right timestamps perfectly in Emacs22 with
33 X. If the current version of Emacs doesn't support this method, use
34 the simpler method, which is prone to alignment issues for math
35 symbols and other variable-width text.
36
37 A side effect of using this new method is that there will only be one
38 space before a right timestamp in any saved logs. If this is
39 unacceptable, set `erc-timestamp-use-align-to' to nil.
40
41 * Changes in ERC 5.1.1
42
43 ** Fix a requirement on cl.el.
44
45 ** Use tls.el for SSL connections, rather than ssl.el.
46
47 ** Changes and additions to modules
48
49 *** ibuffer integration (erc-ibuffer.el)
50
51 **** Update this to work with the version of ibuffer.el that comes with
52 recent Emacs variants.
53
54 *** Old completion (erc-complete.el)
55
56 **** Fix a few errors.
57
58 *** Speedbar (erc-speedbar.el)
59
60 **** Make this work with the version of speedbar.el that comes with
61 recent Emacs variants.
62
63 *** Timestamps (erc-stamp.el)
64
65 **** By default, use a more failsafe method of displaying right timestamps.
66 To get right timestamps to align perfectly in Emacs22 using X, set the
67 new `erc-timestamp-right-align-by-pixel' option to non-nil.
68
69 *** Viper compatibility (erc-viper.el)
70
71 **** Since most of these changes are now merged into Emacs22, detect
72 whether we need these changes and install them only if necessary.
73
74 * Changes in ERC 5.1
75
76 ** Improve XEmacs compatibility.
77
78 ** Namespace changes
79
80 *** Now ERC doesn't use global variable space.
81 Renamed all variables that didn't start with "erc-".
82
83 o `away' is now `erc-away'
84
85 o `current-nick' is now `erc-server-current-nick'
86
87 o `last-peers' is now `erc-server-last-peers'
88
89 o `last-ping-time' is now `erc-server-last-ping-time'
90
91 o `last-sent-time' is now `erc-server-last-sent-time'
92
93 o `lines-sent' is now `erc-server-lines-sent'
94
95 o `quitting' is now `erc-server-quitting'
96
97 *** Remove the `with-erc-channel-buffer' function.
98
99 ** Bugfixes
100
101 *** Don't inadvertently destroy face properties.
102
103 *** Load erc scripts in a safer way.
104
105 *** Don't insert a timestamp if text at point is invisible.
106
107 *** Don't hide messages from those in `erc-fools' by default.
108 Color their nicks instead.
109
110 *** Use a more foolproof method of encoding and decoding strings
111 before sending to a channel.
112
113 ** Backend changes
114
115 *** Renamed some server-specific variables
116
117 o `erc-announced-server-name' is now `erc-server-announced-name'
118
119 o `erc-auto-reconnect' is now `erc-server-auto-reconnect'
120
121 o `erc-connect-function' is now `erc-server-connect-function'
122
123 o `erc-default-coding-system' is now `erc-server-coding-system'
124
125 o `erc-duplicate-timeout' is now `erc-server-duplicate-timeout'
126
127 o `erc-duplicates' is now `erc-server-duplicates'
128
129 o `erc-lag' is now `erc-server-lag'
130
131 o `erc-prevent-duplicates' is now `erc-server-prevent-duplicates'
132
133 o `erc-previous-read' is now `erc-server-filter-data'
134
135 o `erc-process' is now `erc-server-process'
136
137 o `erc-ping-handler' is now `erc-server-send-ping-handler'
138
139 o `erc-ping-interval' is now `erc-server-send-ping-interval'
140
141 *** Renamed some functions
142
143 o `erc-connect' is now `erc-server-connect'
144
145 o `erc-process-filter' is now `erc-server-filter-function'
146
147 o `erc-send-command' is now `erc-server-send'
148
149 o `erc-send-single-line' is now `erc-send-input'
150
151 o `erc-setup-periodical-server-ping' is now
152 `erc-server-setup-periodical-server-ping'
153
154 o `erc-split-command is now `erc-split-line'
155
156 *** New options
157
158 o erc-server-flood-margin, erc-server-flood-penalty: New options
159 that allow tweaking of flood control.
160
161 o erc-split-line-length: The maximum line length of a single
162 message.
163
164 *** New variables
165
166 o erc-server-flood-last-message, erc-server-flood-queue,
167 erc-server-flood-timer: Flood control.
168
169 o erc-server-processing-p: Indicate when we're currently processing
170 a message.
171
172 *** Remove some options
173
174 o `erc-flood-limit'
175 o `erc-flood-limit2'
176
177 ** New customization group `erc-server' for dealing with IRC servers.
178
179 ** ERC can now be installed by doing `make install' from the command line.
180
181 ** ERC now has a manual in erc.texi.
182 Type `make doc' to generate HTML and Info versions of it.
183
184 ** ERC no longer depends on cl.el.
185 Only the macros in cl-macs.el are used.
186
187 ** Fix an edge case when quitting as new messages come in.
188
189 ** Make flood protection toggle-able as on/off, removing the 'strict option.
190
191 ** If possible, re-use channel buffers when reconnecting to a server.
192
193 ** Text in ERC buffers is now read-only by default.
194 To get the previous behavior,
195
196 ** Changes and additions to modules
197
198 *** Auto-join (erc-autojoin.el)
199
200 **** Recognize the Azzurra server.
201
202 *** BBDB (erc-bbdb.el)
203
204 **** When the user types /WHOIS, ask for a record to merge to.
205
206 **** Store the displayed name of a BitlBee contact.
207 The new `erc-bbdb-bitlbee-name-field' option specifies the field to use
208 to store this information.
209
210 **** Don't prompt for a name on /JOIN or /NICK.
211
212 *** Button (erc-button.el)
213
214 **** Fix customization of `erc-button-alist'
215
216 **** New option `erc-button-nickname-face' determines the face to use
217 when coloring ERC nicknames.
218
219 *** Channel tracking (erc-track.el)
220
221 **** Remove channels from the modified channels list if not currently
222 connected. This should remove residue from the mode line after
223 quitting ERC.
224
225 **** Recognize buttonized text
226
227 *** Highlighting (erc-match.el)
228
229 **** Highlight current nickname by default.
230
231 **** Added the option of beeping when certain matches occur.
232 Add `erc-beep-on-match' to `erc-text-matched-hook' to enable
233 beeping. Set the new variable `erc-beep-match-types' which match
234 types that make beeps.
235
236 *** Nicklist (erc-nicklist.el)
237
238 **** Fix a couple of errors.
239
240 **** Make sure a stray mouse click doesn't trigger an error.
241
242 **** Insert icons from the /images directory next to nicks.
243 This indicates their away status. The location is customizable via
244 the new `erc-nicklist-icons-directory' option.
245
246 If you do not want these icons, set `erc-nicklist-use-icons' to nil.
247
248 *** Nickserv identification (erc-nickserv.el)
249
250 **** Recognize Azzurra and OFTC networks.
251
252 *** Old completion (erc-complete.el)
253
254 **** Disable by default.
255
256 *** Programmable completion (erc-pcomplete.el)
257
258 **** Enable by default.
259
260 *** Timestamps (erc-stamp.el)
261
262 **** On Emacs22, align right timestamps perfectly, even if variable-width
263 characters are used. If we aren't using Emacs22, move text farther
264 away from the right margin when variable-width characters are used.
265 It is considered better to misalign the stamp by a bit than to go past
266 the right margin.
267
268 **** Enable by default
269
270 ** New modules
271
272 *** Spell-checking (erc-spelling.el)
273
274 **** Use flyspell in ERC.
275
276 *** Viper compatibility (erc-viper.el)
277
278 **** Helps ERC work correctly in viper-mode.
279
280 * Changes in ERC 5.0.4
281
282 ** Fix a problem with undo in channels.
283
284 * Changes in ERC 5.0.3
285
286 ** Fix typo in the `ctcp-request-to' entry of the English catalog.
287
288 ** Debugging with edegug has been made easier in all of the
289 erc-with-* and with-erc* macros.
290
291 ** Non-ASCII character sets should be better supported when sending
292 and processing messages.
293
294 ** A load failure with erc-autoaway.el and Emacs21 has been fixed.
295
296 ** A few XEmacs warnings were fixed.
297
298 ** Changes and additions to modules
299
300 *** Backend (erc-backend.el)
301
302 **** Move the check for hidden messages into `erc-display-message'
303 so there isn't so much replicated code.
304
305 **** Add `definition-name' property to constructed symbols so that
306 `find-function' and `find-variable' will be able to locate them.
307
308 **** Make sure logs are inserted info the correct channel buffers.
309 There was previously an error when using `erc-insert-log-on-open' in
310 combination with autojoin to multiple channels.
311
312 *** Button (erc-button.el)
313
314 **** The layering of `erc-button-face' on other faces in ERC buffers
315 has been improved.
316
317 *** Channel tracking (erc-track.el)
318
319 **** Use optimal amount of whitespace around modified channels
320 indicator. Previously, there was an additional unnecessary space.
321
322 **** Fix an error that occurred when unchecked buffers existed when
323 invoking /QUIT.
324
325 * Changes in ERC 5.0.2
326
327 ** If a channel key is required for a certain channel, ERC will prompt
328 for one if `erc-prompt-for-channel-key' is non-nil.
329
330 ** ERC doesn't try to reconnect if the network connection is refused
331 when using `open-network-stream-nowait' as the `erc-connect-function'.
332
333 ** Messages from multiple servers will not go to the currently active
334 buffer. The messages from each server will be contained in the most
335 recently active channel/server buffer that corresponds with the
336 server.
337
338 ** Some text messages were cleaned up slightly.
339
340 ** Button faces should no longer "cover" other faces.
341
342 ** Made some XEmacs compatibility fixes.
343
344 ** Nicknames containing a backslash are now correctly highlighted as
345 current-nick and buttonized as nicks.
346
347 ** `erc-server-select' doesn't offer networks without servers as a
348 choice anymore.
349
350 ** Non-ASCII character support has been improved.
351
352 ** Changes and additions to modules
353
354 *** Menu (erc-menu.el)
355
356 **** You can now save logs and truncate buffers from the menu-bar.
357
358 * Changes in ERC 5.0.1
359
360 ** Narrowing in ERC buffers no longer causes formatting errors.
361
362 ** The BBDB module now loads correctly when customizing `erc-modules'.
363
364 ** The value of `erc-button-face' is now respected.
365
366 ** Fixed a bug which caused a read-only error during connection.
367
368 ** Server buffers are now tracked correctly.
369 This means that `erc-track-priority-faces-only', `erc-track-exclude',
370 and `erc-track-exclude-types' now work with server buffers.
371
372 * Changes in ERC 5.0
373
374 ** Channel members are now stored as a hash-table.
375 `erc-server-users' and `erc-channel-users' are now hash-tables, rather
376 than alists. This significantly increases performance, especially in
377 large channels. Each channel member is stored as an `erc-server-user'
378 struct, with additional information about the channels they are on
379 stored in an `erc-channel-user' struct. Code using old alist-style
380 channel members needs to be updated to work with hash-tables.
381 This new code also removes the need for erc-members.el, which has been
382 removed.
383
384 ** The way ERC deals with input from the server has changed.
385 All server response code is now in a new file, erc-backend.el. There
386 should be no real user visible changes. There are, however, a few
387 major changes for implementers, and module writers:
388
389 *** The PARSED response that all handlers get called with is
390 no longer a vector, but an `erc-response' struct.
391
392 This means LESS MAGIC NUMBERS in the ERC source code, but a few
393 changes in how you get at parsed responses.
394
395 The sender is accessed via `erc-response.sender'.
396
397 The command is accessed via `erc-response.command'.
398
399 The arguments to the command (everything after the command and
400 before the colon) are accessed via `erc-response.command-args'.
401 This is a /list/ of arguments in the order they appear in the
402 unparsed response.
403
404 The contents of the response is accessed via
405 `erc-response.contents'.
406
407 Should, for some reason, you want to do something with the
408 /unparsed/ response, you can get it via `erc-response.unparsed'.
409
410 *** The `erc-server-hook-list' mechanism is gone.
411
412 All server response handlers should be defined with
413 `define-erc-response-handler'. This defines functions and
414 corresponding hook variables.
415
416 The mapping of server commands to hook variables is no longer
417 done via `erc-event-to-hook', but through an #'equal hashtable,
418 `erc-server-responses'. In order to find a hook you do:
419
420 (erc-get-hook command)
421
422 See the docstring of `define-erc-response-handler' for more
423 information.
424
425 *** ALL hook variables have been renamed.
426
427 In accordance with recommendations in the Emacs Lisp manual,
428 the hook variables are no longer called `erc-server-FOO-hook',
429 but rather `erc-server-FOO-functions'. This is to indicate
430 that the functions they call take arguments.
431
432 All the modules in ERC have been updated to reflect this change,
433 but external module authors should beware.
434
435 ** The values of `erc-mode-line-format' and `erc-header-line-format'
436 are now defined as strings to be formatted using `format-spec'.
437 `erc-mode-line-format' does not replace the whole mode-line anymore,
438 only `mode-line-buffer-identification' is set. This way, personal
439 mode-line configurations are not modified and all key bindings work as
440 expected. The process status (connecting, closed) is now shown in
441 `mode-line-process'.
442
443 ** Customization of ERC variables has been made easier. Variables
444 have been split into more groups for better organization.
445
446 ** New variables
447
448 o `erc-send-whitespace-lines' - Set this to send lines even if they
449 are empty.
450
451 o `erc-manual-set-nick-on-bad-nick-p' - If the nickname you chose is
452 already taken or not allowed, your nick is not changed and you can
453 try again manually if this is non-nil.
454
455 o `erc-mode-line-away-status-format' - You can now set what is shown
456 in the mode-line when you are away.
457
458 o `erc-header-line-uses-help-echo-p' - The header-line now uses the
459 help-echo property. You can set this to nil to disable it.
460
461 o `erc-format-query-as-channel-p' - Set this to nil to have messages
462 in the query buffer formatted like private messages.
463
464 o `erc-show-channel-key-p' - The channel key is now shown with the
465 other channel modes in the header line. Set this to nil if you
466 want it hidden.
467
468 o `erc-prompt-for-channel-key' - Set this if you want to be prompted
469 for the channel key (channel's mode is +k) when you call
470 `erc-join-channel' interactively.
471
472 o `erc-kill-server-buffer-on-quit' - If non-nil, kill the server
473 buffer automatically when you quit.
474
475 ** New hooks
476
477 o `erc-join-hook' - Called when you join a channel.
478
479 o `erc-kick-hook' - Called when you are kicked from a channel. The
480 channel's buffer is sent as an argument to functions called from
481 this hook.
482
483 o `erc-nick-changed-functions' - Whenever your nickname changes
484 successfully, the functions in this hook are run with the
485 arguments NEW-NICK and OLD-NICK.
486
487 ** New command /WHOAMI - Do a /WHOIS on your current nickname.
488
489 ** The key binding for changing channel modes is now C-c C-o.
490
491 ** Removed variables
492
493 o `erc-echo-notices-in-minibuffer-flag' and
494 `erc-echo-notices-in-current-buffer' - You should use
495 `erc-echo-notice-hook' and `erc-echo-notice-always-hook' instead.
496
497 o `erc-prompt-interactive-input' has been removed (commented out)
498 because nickname completion does not work with it.
499
500 o All INFO buffer-related variables and functions have been removed.
501
502 ** You can now disable modules by setting `erc-modules' with the
503 customization interface.
504
505 ** Changes and additions to modules
506
507 *** Autoaway (erc-autoaway.el)
508
509 **** New variable `erc-autoaway-no-auto-back-regexp' - Add text which,
510 when you type anything matching it, will not automatically discard
511 your away status when `erc-auto-discard-away' is non-nil.
512
513 *** Filling (erc-fill.el)
514
515 **** New variable `erc-fill-variable-maximum-indentation' - Don't
516 indent more than this many characters when indenting a message from a
517 user with a long nickname.
518
519 *** Goodies (erc-goodies.el)
520
521 **** Miscellaneous small modules have been moved from erc.el.
522 The functions erc-add-scroll-to-bottom, erc-make-read-only,
523 erc-send-distinguish-noncommands, erc-interpret-controls, erc-unmorse,
524 erc-smiley, and erc-occur, which were defined in the main erc.el file
525 have been moved to erc-goodies.el and have mostly been translated to
526 the modules scrolltobottom, readonly, noncommands, irccontrols, smiley
527 and unmorse.
528
529 **** New variables
530
531 o `erc-input-line-position' - The line number to use with
532 `erc-scroll-to-bottom'.
533
534 o `erc-beep-p' - Beep if there is a \C-g control character in a
535 message.
536
537 *** Channel lists (erc-list.el)
538
539 **** New variable `erc-chanlist-highlight-face' - A face used for
540 highlighting the current line.
541
542 *** Highlighting (erc-match.el)
543
544 **** `erc-current-nick-highlight-type' has new options: 'keyword and
545 'nick-or-keyword.
546
547 *** Menu (erc-menu.el)
548
549 **** The `IRC' menu is now automatically added to `erc-mode' buffers.
550
551 *** Networks (erc-nets.el)
552
553 **** The functions for determining current network are in this file.
554 There were a couple of functions spread about in different files which
555 each had a different way of determining the current network. The
556 methods have been combined, and the big list of known networks
557 (`erc-networks-alist') is being put to use. You can access the
558 network's name by calling the new function `erc-network'. This
559 returns the name of the current network as a symbol or 'Unknown if it
560 could not determine which network it is.
561
562 *** Nicklist (erc-nicklist.el)
563
564 **** ERC has a new way of displaying nicknames in a channel.
565 The new file erc-nicklist.el defines a new command `erc-nicklist'
566 which pops up a small Emacs window showing the nicknames of all
567 members of the current channel. The implementation is not complete
568 and is rather proof-of-concept for now. The result is something a bit
569 like erc-speedbar, but not quite as invasive, and doesn't require use
570 of a new frame.
571
572 *** Internet services / Nickserv (erc-nickserv.el)
573
574 **** Network detection is now taken care of by erc-nets.el.
575 The function `erc-current-network' is deprecated, use `erc-network'
576 instead. The variable `erc-networks' has been removed, use
577 `erc-networks-alist'. The network symbols used in
578 `erc-nickserv-alist' now match those in `erc-networks-alist'.
579
580 **** New variable `erc-nickserv-identify-mode' - Choose which method
581 to use for automatic identification: you can wait for Nickserv to ask
582 you to identify (the default), or send an identify message
583 automatically after you change your nickname.
584
585 *** Speedbar (erc-speedbar.el)
586
587 **** New variable `erc-speedbar-sort-users-type' - Sort users in a
588 channel by activity, alphabetically, or not at all.
589
590 *** Timestamps (erc-stamp.el)
591
592 **** `erc-timestamp-only-if-changed-flag' now works when
593 `erc-insert-timestamp-function' is set to 'erc-insert-timestamp-left.
594
595 **** New variable `erc-timestamp-intangible' - Set this to nil if
596 timestamps should not have the 'intangible property.
597
598 *** Channel tracking (erc-track.el)
599
600 **** Using faces to indicate channel activity in the modeline now works
601 in XEmacs.
602
603 **** New variables
604
605 o `erc-track-priority-faces-only' - Ignore changes in a channel
606 unless there is a face from the `erc-track-faces-priority-list' in
607 the message.
608
609 o `erc-track-exclude-server-buffer' - Ignore changes in the server
610 buffer.
611
612 o `erc-track-position-in-mode-line' - Set the position in the
613 mode-line where modified channels are shown (only works in GNU
614 Emacs versions above 21.3).
615
616 * Changes in ERC 4.0
617
618 ** The module system has again changed a lot. You can now customize
619 the variable `erc-modules' and define once and for all which
620 extension modules you want to use. This unfortunately may require
621 you to change your current erc initialisation code a bit, if you
622 have some existing customsations. On the other hand, this change
623 makes the configuration of extension modules a lot easier for new
624 users. In theory, you should be able to configure all aspects of
625 ERC by using the customize interface, you should no longer really
626 need to write Lisp code for trivial customizations.
627
628 By default, the following modules are now loaded: (pcomplete
629 netsplit fill track ring button autojoin)
630
631 Please use M-x customize-variable RET erc-modules RET to change the
632 default if it does not suite your needs.
633
634 ** THe symbol used in `erc-nickserv-passwords' for debian.org IRC servers
635 (formerly called OpenProjects, now FreeNode) has changed from
636 openprojects to freenode. You may need to update your configuration
637 for a successful automatic nickserv identification.
638
639 * Changes in ERC 3.0.cvs.20030119
640
641 ** New module erc-dcc:
642
643 This finally implements DCC. It requires server sockets to fully work
644 in both directions. This feature is currently only available in Emacs
645 21.3.50 (CVS). Here is a short list of what should work though.
646
647 ** Compatibility:
648 * Emacs 21.2, DCC get, and accepting DCC chat offers.
649 * XEmacs 21, Only accepting DCC chat offers.
650
651 ** erc is switching to global-minor-modes for activation of submodules.
652
653 This allows you to customize such a mode and get automatic loading of
654 the module. No longer putting a lot of require statments in .emacs.
655 At least this is the long-term plan, not all modules are converted
656 yet.
657
658 ** The most important user visible change is that you now need to activate
659 erc-completion-mode, to get TAB completion. The new completion code
660 is based on pcomplete. To get the old code, manually load
661 erc-complete and bind TAB to erc-complete in erc-mode-map.
662
663 To activate completion on startup, put (erc-completion-mode 1) in your
664 .emacs file.
665
666 Same applies to timestamps. You no longer need to (require
667 'erc-stamp), you can customize the variable `erc-timestamp-mode', and
668 the rest should be automatic.
669
670 arch-tag: 2b21b387-6cdc-4192-889c-6743cfffdcb1