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