(XPNTR) [!NO_UNION_TYPE && !HAVE_SHM && !DATA_SEG_BITS]: Cast bitfield
[bpt/emacs.git] / etc / ERC-NEWS
CommitLineData
597993cf
MB
1ERC 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.
10Renamed 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.
37Color their nicks instead.
38
39*** Use a more foolproof method of encoding and decoding strings
40before 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.
111Type `make doc' to generate HTML and Info versions of it.
112
113** ERC no longer depends on cl.el.
114Only 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.
123To 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.
136The new `erc-bbdb-bitlbee-name-field' option specifies the field to use
137to 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
146when coloring ERC nicknames.
147
148*** Channel tracking (erc-track.el)
149
150**** Remove channels from the modified channels list if not currently
151connected. This should remove residue from the mode line after
152quitting 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.
161Add `erc-beep-on-match' to `erc-text-matched-hook' to enable
162beeping. Set the new variable `erc-beep-match-types' which match
163types 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.
172This indicates their away status. The location is customizable via
173the new `erc-nicklist-icons-directory' option.
174
175If 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
192characters are used. If we aren't using Emacs22, move text farther
193away from the right margin when variable-width characters are used.
194It is considered better to misalign the stamp by a bit than to go past
195the 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
218erc-with-* and with-erc* macros.
219
220** Non-ASCII character sets should be better supported when sending
221and 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'
232so 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.
238There was previously an error when using `erc-insert-log-on-open' in
239combination 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
244has been improved.
245
246*** Channel tracking (erc-track.el)
247
248**** Use optimal amount of whitespace around modified channels
249indicator. Previously, there was an additional unnecessary space.
250
251**** Fix an error that occurred when unchecked buffers existed when
252invoking /QUIT.
253
254* Fixes since ERC 5.0.1
255
256** If a channel key is required for a certain channel, ERC will prompt
257for one if `erc-prompt-for-channel-key' is non-nil.
258
259** ERC doesn't try to reconnect if the network connection is refused
260when using `open-network-stream-nowait' as the `erc-connect-function'.
261
262** Messages from multiple servers will not go to the currently active
263buffer. The messages from each server will be contained in the most
264recently active channel/server buffer that corresponds with the
265server.
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
274current-nick and buttonized as nicks.
275
276** `erc-server-select' doesn't offer networks without servers as a
277choice 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.
298This means that `erc-track-priority-faces-only', `erc-track-exclude',
299and `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
305than alists. This significantly increases performance, especially in
306large channels. Each channel member is stored as an `erc-server-user'
307struct, with additional information about the channels they are on
308stored in an `erc-channel-user' struct. Code using old alist-style
309channel members needs to be updated to work with hash-tables.
310This new code also removes the need for erc-members.el, which has been
311removed.
312
313** The way ERC deals with input from the server has changed.
314All server response code is now in a new file, erc-backend.el. There
315should be no real user visible changes. There are, however, a few
316major 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'
365are now defined as strings to be formatted using `format-spec'.
366`erc-mode-line-format' does not replace the whole mode-line anymore,
367only `mode-line-buffer-identification' is set. This way, personal
368mode-line configurations are not modified and all key bindings work as
369expected. The process status (connecting, closed) is now shown in
370`mode-line-process'.
371
372** Customization of ERC variables has been made easier. Variables
373have 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
432customization 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,
439when you type anything matching it, will not automatically discard
440your 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
445indent more than this many characters when indenting a message from a
446user with a long nickname.
447
448*** Goodies (erc-goodies.el)
449
450**** Miscellaneous small modules have been moved from erc.el.
451The functions erc-add-scroll-to-bottom, erc-make-read-only,
452erc-send-distinguish-noncommands, erc-interpret-controls, erc-unmorse,
453erc-smiley, and erc-occur, which were defined in the main erc.el file
454have been moved to erc-goodies.el and have mostly been translated to
455the modules scrolltobottom, readonly, noncommands, irccontrols, smiley
456and 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
469highlighting 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.
483There were a couple of functions spread about in different files which
484each had a different way of determining the current network. The
485methods have been combined, and the big list of known networks
486(`erc-networks-alist') is being put to use. You can access the
487network's name by calling the new function `erc-network'. This
488returns the name of the current network as a symbol or 'Unknown if it
489could 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.
494The new file erc-nicklist.el defines a new command `erc-nicklist'
495which pops up a small Emacs window showing the nicknames of all
496members of the current channel. The implementation is not complete
497and is rather proof-of-concept for now. The result is something a bit
498like erc-speedbar, but not quite as invasive, and doesn't require use
499of a new frame.
500
501*** Internet services / Nickserv (erc-nickserv.el)
502
503**** Network detection is now taken care of by erc-nets.el.
504The function `erc-current-network' is deprecated, use `erc-network'
505instead. 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
510to use for automatic identification: you can wait for Nickserv to ask
511you to identify (the default), or send an identify message
512automatically after you change your nickname.
513
514*** Speedbar (erc-speedbar.el)
515
516**** New variable `erc-speedbar-sort-users-type' - Sort users in a
517channel 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
525timestamps 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
530in 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
572This finally implements DCC. It requires server sockets to fully work
573in both directions. This feature is currently only available in Emacs
57421.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
582This allows you to customize such a mode and get automatic loading of
583the module. No longer putting a lot of require statments in .emacs.
584At least this is the long-term plan, not all modules are converted
585yet.
586
587** The most important user visible change is that you now need to activate
588erc-completion-mode, to get TAB completion. The new completion code
589is based on pcomplete. To get the old code, manually load
590erc-complete and bind TAB to erc-complete in erc-mode-map.
591
592To activate completion on startup, put (erc-completion-mode 1) in your
593.emacs file.
594
595Same applies to timestamps. You no longer need to (require
596'erc-stamp), you can customize the variable `erc-timestamp-mode', and
597the rest should be automatic.
598
599arch-tag: 2b21b387-6cdc-4192-889c-6743cfffdcb1