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