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