Mention new behavior with unreachable $DISPLAY.
[bpt/emacs.git] / etc / ERC-NEWS
CommitLineData
597993cf
MB
1ERC NEWS -*- outline -*-
2
d8bd1ad4
MB
3* Changes in ERC 5.2 (unreleased)
4
5* Changes in ERC 5.1.2
e7559e30
MB
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
20we 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
28fail-proof method of aligning right timestamps, as mentioned below.
29
30**** Fix a right timestamp spacing problem that used to occur when
31erc-stamp.el was byte-compiled. Now that this is fixed, it is safe to
32use the method that aligns right timestamps perfectly in Emacs22 with
33X. If the current version of Emacs doesn't support this method, use
34the simpler method, which is prone to alignment issues for math
35symbols and other variable-width text.
36
37A side effect of using this new method is that there will only be one
38space before a right timestamp in any saved logs. If this is
39unacceptable, set `erc-timestamp-use-align-to' to nil.
40
8508e990
MB
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
52recent 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
61recent Emacs variants.
62
63*** Timestamps (erc-stamp.el)
64
65**** By default, use a more failsafe method of displaying right timestamps.
66To get right timestamps to align perfectly in Emacs22 using X, set the
67new `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
72whether we need these changes and install them only if necessary.
73
74* Changes in ERC 5.1
597993cf
MB
75
76** Improve XEmacs compatibility.
77
78** Namespace changes
79
80*** Now ERC doesn't use global variable space.
81Renamed 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.
108Color their nicks instead.
109
110*** Use a more foolproof method of encoding and decoding strings
111before 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.
182Type `make doc' to generate HTML and Info versions of it.
183
184** ERC no longer depends on cl.el.
185Only 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.
194To 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.
207The new `erc-bbdb-bitlbee-name-field' option specifies the field to use
208to 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
217when coloring ERC nicknames.
218
219*** Channel tracking (erc-track.el)
220
221**** Remove channels from the modified channels list if not currently
222connected. This should remove residue from the mode line after
223quitting 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.
232Add `erc-beep-on-match' to `erc-text-matched-hook' to enable
233beeping. Set the new variable `erc-beep-match-types' which match
234types 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.
243This indicates their away status. The location is customizable via
244the new `erc-nicklist-icons-directory' option.
245
246If 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
263characters are used. If we aren't using Emacs22, move text farther
264away from the right margin when variable-width characters are used.
265It is considered better to misalign the stamp by a bit than to go past
266the 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
8508e990 280* Changes in ERC 5.0.4
597993cf
MB
281
282** Fix a problem with undo in channels.
283
8508e990 284* Changes in ERC 5.0.3
597993cf
MB
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
289erc-with-* and with-erc* macros.
290
291** Non-ASCII character sets should be better supported when sending
292and 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'
303so 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.
309There was previously an error when using `erc-insert-log-on-open' in
310combination 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
315has been improved.
316
317*** Channel tracking (erc-track.el)
318
319**** Use optimal amount of whitespace around modified channels
320indicator. Previously, there was an additional unnecessary space.
321
322**** Fix an error that occurred when unchecked buffers existed when
323invoking /QUIT.
324
8508e990 325* Changes in ERC 5.0.2
597993cf
MB
326
327** If a channel key is required for a certain channel, ERC will prompt
328for one if `erc-prompt-for-channel-key' is non-nil.
329
330** ERC doesn't try to reconnect if the network connection is refused
331when using `open-network-stream-nowait' as the `erc-connect-function'.
332
333** Messages from multiple servers will not go to the currently active
334buffer. The messages from each server will be contained in the most
335recently active channel/server buffer that corresponds with the
336server.
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
345current-nick and buttonized as nicks.
346
347** `erc-server-select' doesn't offer networks without servers as a
348choice 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
8508e990 358* Changes in ERC 5.0.1
597993cf
MB
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.
369This means that `erc-track-priority-faces-only', `erc-track-exclude',
370and `erc-track-exclude-types' now work with server buffers.
371
8508e990 372* Changes in ERC 5.0
597993cf
MB
373
374** Channel members are now stored as a hash-table.
375`erc-server-users' and `erc-channel-users' are now hash-tables, rather
376than alists. This significantly increases performance, especially in
377large channels. Each channel member is stored as an `erc-server-user'
378struct, with additional information about the channels they are on
379stored in an `erc-channel-user' struct. Code using old alist-style
380channel members needs to be updated to work with hash-tables.
381This new code also removes the need for erc-members.el, which has been
382removed.
383
384** The way ERC deals with input from the server has changed.
385All server response code is now in a new file, erc-backend.el. There
386should be no real user visible changes. There are, however, a few
387major 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'
436are now defined as strings to be formatted using `format-spec'.
437`erc-mode-line-format' does not replace the whole mode-line anymore,
438only `mode-line-buffer-identification' is set. This way, personal
439mode-line configurations are not modified and all key bindings work as
440expected. The process status (connecting, closed) is now shown in
441`mode-line-process'.
442
443** Customization of ERC variables has been made easier. Variables
444have 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
503customization 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,
510when you type anything matching it, will not automatically discard
511your 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
516indent more than this many characters when indenting a message from a
517user with a long nickname.
518
519*** Goodies (erc-goodies.el)
520
521**** Miscellaneous small modules have been moved from erc.el.
522The functions erc-add-scroll-to-bottom, erc-make-read-only,
523erc-send-distinguish-noncommands, erc-interpret-controls, erc-unmorse,
524erc-smiley, and erc-occur, which were defined in the main erc.el file
525have been moved to erc-goodies.el and have mostly been translated to
526the modules scrolltobottom, readonly, noncommands, irccontrols, smiley
527and 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
540highlighting 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.
554There were a couple of functions spread about in different files which
555each had a different way of determining the current network. The
556methods have been combined, and the big list of known networks
557(`erc-networks-alist') is being put to use. You can access the
558network's name by calling the new function `erc-network'. This
559returns the name of the current network as a symbol or 'Unknown if it
560could 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.
565The new file erc-nicklist.el defines a new command `erc-nicklist'
566which pops up a small Emacs window showing the nicknames of all
567members of the current channel. The implementation is not complete
568and is rather proof-of-concept for now. The result is something a bit
569like erc-speedbar, but not quite as invasive, and doesn't require use
570of a new frame.
571
572*** Internet services / Nickserv (erc-nickserv.el)
573
574**** Network detection is now taken care of by erc-nets.el.
575The function `erc-current-network' is deprecated, use `erc-network'
576instead. 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
581to use for automatic identification: you can wait for Nickserv to ask
582you to identify (the default), or send an identify message
583automatically after you change your nickname.
584
585*** Speedbar (erc-speedbar.el)
586
587**** New variable `erc-speedbar-sort-users-type' - Sort users in a
588channel 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
596timestamps 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
601in 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
8508e990 616* Changes in ERC 4.0
597993cf
MB
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
8508e990 639* Changes in ERC 3.0.cvs.20030119
597993cf
MB
640
641** New module erc-dcc:
642
643This finally implements DCC. It requires server sockets to fully work
644in both directions. This feature is currently only available in Emacs
64521.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
653This allows you to customize such a mode and get automatic loading of
654the module. No longer putting a lot of require statments in .emacs.
655At least this is the long-term plan, not all modules are converted
656yet.
657
658** The most important user visible change is that you now need to activate
659erc-completion-mode, to get TAB completion. The new completion code
660is based on pcomplete. To get the old code, manually load
661erc-complete and bind TAB to erc-complete in erc-mode-map.
662
663To activate completion on startup, put (erc-completion-mode 1) in your
664.emacs file.
665
666Same applies to timestamps. You no longer need to (require
667'erc-stamp), you can customize the variable `erc-timestamp-mode', and
668the rest should be automatic.
669
670arch-tag: 2b21b387-6cdc-4192-889c-6743cfffdcb1