Source

erc / NEWS

Full commit
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
ERC NEWS                                                       -*- outline -*-

* Changes in ERC 5.1.2

** Go back to using ssl.el so that SSL connections work as expected.
Connecting with `open-tls-stream' only seems to work (if at all?) when
using the tls.el located in lisp/net/ in Emacs22.

** Fix compiler errors in erc-autojoin.el and erc-dcc.el.

** Move to end of prompt when ERC reconnects to a server.

** Changes and additions to modules

*** Spell-checking (erc-spelling.el)

**** Don't spell-check nicks or words that are prefixed with '/'.

**** Remove flyspell properties from words we shouldn't spell-check.

**** Fix an issue that caused the ispell process to reload every time
we switch to an ERC buffer.

*** Timestamps (erc-stamp.el)

**** Fix an inconsistency in calculating width of right timestamps.

**** Rename option `erc-timestamp-right-align-by-pixel' to
`erc-timestamp-use-align-to'.  This controls whether to use the more
fail-proof method of aligning right timestamps, as mentioned below.

**** Fix a right timestamp spacing problem that used to occur when
erc-stamp.el was byte-compiled.  Now that this is fixed, it is safe to
use the method that aligns right timestamps perfectly in Emacs22 with
X.  If the current version of Emacs doesn't support this method, use
the simpler method, which is prone to alignment issues for math
symbols and other variable-width text.

A side effect of using this new method is that there will only be one
space before a right timestamp in any saved logs.  If this is
unacceptable, set `erc-timestamp-use-align-to' to nil.

* Changes in ERC 5.1.1

** Fix a requirement on cl.el.

** Use tls.el for SSL connections, rather than ssl.el.

** Changes and additions to modules

*** ibuffer integration (erc-ibuffer.el)

**** Update this to work with the version of ibuffer.el that comes with
recent Emacs variants.

*** Old completion (erc-complete.el)

**** Fix a few errors.

*** Speedbar (erc-speedbar.el)

**** Make this work with the version of speedbar.el that comes with
recent Emacs variants.

*** Timestamps (erc-stamp.el)

**** By default, use a more failsafe method of displaying right timestamps.
To get right timestamps to align perfectly in Emacs22 using X, set the
new `erc-timestamp-right-align-by-pixel' option to non-nil.

*** Viper compatibility (erc-viper.el)

**** Since most of these changes are now merged into Emacs22, detect
whether we need these changes and install them only if necessary.

* Changes in ERC 5.1

** Improve XEmacs compatibility.

** Namespace changes

*** Now ERC doesn't use global variable space.
Renamed all variables that didn't start with "erc-".

  o `away' is now `erc-away'

  o `current-nick' is now `erc-server-current-nick'

  o `last-peers' is now `erc-server-last-peers'

  o `last-ping-time' is now `erc-server-last-ping-time'

  o `last-sent-time' is now `erc-server-last-sent-time'

  o `lines-sent' is now `erc-server-lines-sent'

  o `quitting' is now `erc-server-quitting'

*** Remove the `with-erc-channel-buffer' function.

** Bugfixes

*** Don't inadvertently destroy face properties.

*** Load erc scripts in a safer way.

*** Don't insert a timestamp if text at point is invisible.

*** Don't hide messages from those in `erc-fools' by default.
Color their nicks instead.

*** Use a more foolproof method of encoding and decoding strings
before sending to a channel.

** Backend changes

*** Renamed some server-specific variables

  o `erc-announced-server-name' is now `erc-server-announced-name'

  o `erc-auto-reconnect' is now `erc-server-auto-reconnect'

  o `erc-connect-function' is now `erc-server-connect-function'

  o `erc-default-coding-system' is now `erc-server-coding-system'

  o `erc-duplicate-timeout' is now `erc-server-duplicate-timeout'

  o `erc-duplicates' is now `erc-server-duplicates'

  o `erc-lag' is now `erc-server-lag'

  o `erc-prevent-duplicates' is now `erc-server-prevent-duplicates'

  o `erc-previous-read' is now `erc-server-filter-data'

  o `erc-process' is now `erc-server-process'

  o `erc-ping-handler' is now `erc-server-send-ping-handler'

  o `erc-ping-interval' is now `erc-server-send-ping-interval'

*** Renamed some functions

  o `erc-connect' is now `erc-server-connect'

  o `erc-process-filter' is now `erc-server-filter-function'

  o `erc-send-command' is now `erc-server-send'

  o `erc-send-single-line' is now `erc-send-input'

  o `erc-setup-periodical-server-ping' is now
    `erc-server-setup-periodical-server-ping'

  o `erc-split-command is now `erc-split-line'

*** New options

  o erc-server-flood-margin, erc-server-flood-penalty: New options
    that allow tweaking of flood control.

  o erc-split-line-length: The maximum line length of a single
    message.

*** New variables

  o erc-server-flood-last-message, erc-server-flood-queue,
    erc-server-flood-timer: Flood control.

  o erc-server-processing-p: Indicate when we're currently processing
    a message.

*** Remove some options

  o `erc-flood-limit'
  o `erc-flood-limit2'

** New customization group `erc-server' for dealing with IRC servers.

** ERC can now be installed by doing `make install' from the command line.

** ERC now has a manual in erc.texi.
Type `make doc' to generate HTML and Info versions of it.

** ERC no longer depends on cl.el.
Only the macros in cl-macs.el are used.

** Fix an edge case when quitting as new messages come in.

** Make flood protection toggle-able as on/off, removing the 'strict option.

** If possible, re-use channel buffers when reconnecting to a server.

** Text in ERC buffers is now read-only by default.
To get the previous behavior, 

** Changes and additions to modules

*** Auto-join (erc-autojoin.el)

**** Recognize the Azzurra server.

*** BBDB (erc-bbdb.el)

**** When the user types /WHOIS, ask for a record to merge to.

**** Store the displayed name of a BitlBee contact.
The new `erc-bbdb-bitlbee-name-field' option specifies the field to use
to store this information.

**** Don't prompt for a name on /JOIN or /NICK.

*** Button (erc-button.el)

**** Fix customization of `erc-button-alist'

**** New option `erc-button-nickname-face' determines the face to use
when coloring ERC nicknames.

*** Channel tracking (erc-track.el)

**** Remove channels from the modified channels list if not currently
connected.  This should remove residue from the mode line after
quitting ERC.

**** Recognize buttonized text

*** Highlighting (erc-match.el)

**** Highlight current nickname by default.

**** Added the option of beeping when certain matches occur.
Add `erc-beep-on-match' to `erc-text-matched-hook' to enable
beeping.  Set the new variable `erc-beep-match-types' which match
types that make beeps.

*** Nicklist (erc-nicklist.el)

**** Fix a couple of errors.

**** Make sure a stray mouse click doesn't trigger an error.

**** Insert icons from the /images directory next to nicks.
This indicates their away status.  The location is customizable via
the new `erc-nicklist-icons-directory' option.

If you do not want these icons, set `erc-nicklist-use-icons' to nil.

*** Nickserv identification (erc-nickserv.el)

**** Recognize Azzurra and OFTC networks.

*** Old completion (erc-complete.el)

**** Disable by default.

*** Programmable completion (erc-pcomplete.el)

**** Enable by default.

*** Timestamps (erc-stamp.el)

**** On Emacs22, align right timestamps perfectly, even if variable-width
characters are used.  If we aren't using Emacs22, move text farther
away from the right margin when variable-width characters are used.
It is considered better to misalign the stamp by a bit than to go past
the right margin.

**** Enable by default

** New modules

*** Spell-checking (erc-spelling.el)

**** Use flyspell in ERC.

*** Viper compatibility (erc-viper.el)

**** Helps ERC work correctly in viper-mode.

* Changes in ERC 5.0.4

** Fix a problem with undo in channels.

* Changes in ERC 5.0.3

** Fix typo in the `ctcp-request-to' entry of the English catalog.

** Debugging with edegug has been made easier in all of the
erc-with-* and with-erc* macros.

** Non-ASCII character sets should be better supported when sending
and processing messages.

** A load failure with erc-autoaway.el and Emacs21 has been fixed.

** A few XEmacs warnings were fixed.

** Changes and additions to modules

*** Backend (erc-backend.el)

**** Move the check for hidden messages into `erc-display-message'
so there isn't so much replicated code.

**** Add `definition-name' property to constructed symbols so that
`find-function' and `find-variable' will be able to locate them.

**** Make sure logs are inserted info the correct channel buffers.
There was previously an error when using `erc-insert-log-on-open' in
combination with autojoin to multiple channels.

*** Button (erc-button.el)

**** The layering of `erc-button-face' on other faces in ERC buffers
has been improved.

*** Channel tracking (erc-track.el)

**** Use optimal amount of whitespace around modified channels
indicator.  Previously, there was an additional unnecessary space.

**** Fix an error that occurred when unchecked buffers existed when
invoking /QUIT.

* Changes in ERC 5.0.2

** If a channel key is required for a certain channel, ERC will prompt
for one if `erc-prompt-for-channel-key' is non-nil.

** ERC doesn't try to reconnect if the network connection is refused
when using `open-network-stream-nowait' as the `erc-connect-function'.

** Messages from multiple servers will not go to the currently active
buffer.  The messages from each server will be contained in the most
recently active channel/server buffer that corresponds with the
server.

** Some text messages were cleaned up slightly.

** Button faces should no longer "cover" other faces.

** Made some XEmacs compatibility fixes.

** Nicknames containing a backslash are now correctly highlighted as
current-nick and buttonized as nicks.

** `erc-server-select' doesn't offer networks without servers as a
choice anymore.

** Non-ASCII character support has been improved.

** Changes and additions to modules

*** Menu (erc-menu.el)

**** You can now save logs and truncate buffers from the menu-bar.

* Changes in ERC 5.0.1

** Narrowing in ERC buffers no longer causes formatting errors.

** The BBDB module now loads correctly when customizing `erc-modules'.

** The value of `erc-button-face' is now respected.

** Fixed a bug which caused a read-only error during connection.

** Server buffers are now tracked correctly.
This means that `erc-track-priority-faces-only', `erc-track-exclude',
and `erc-track-exclude-types' now work with server buffers.

* Changes in ERC 5.0

** Channel members are now stored as a hash-table.
`erc-server-users' and `erc-channel-users' are now hash-tables, rather
than alists.  This significantly increases performance, especially in
large channels.  Each channel member is stored as an `erc-server-user'
struct, with additional information about the channels they are on
stored in an `erc-channel-user' struct.  Code using old alist-style
channel members needs to be updated to work with hash-tables.
This new code also removes the need for erc-members.el, which has been
removed.

** The way ERC deals with input from the server has changed.
All server response code is now in a new file, erc-backend.el.  There
should be no real user visible changes.  There are, however, a few
major changes for implementers, and module writers:

*** The PARSED response that all handlers get called with is
    no longer a vector, but an `erc-response' struct.

    This means LESS MAGIC NUMBERS in the ERC source code, but a few
    changes in how you get at parsed responses.

    The sender is accessed via `erc-response.sender'.

    The command is accessed via `erc-response.command'.

    The arguments to the command (everything after the command and
    before the colon) are accessed via `erc-response.command-args'.
    This is a /list/ of arguments in the order they appear in the
    unparsed response.

    The contents of the response is accessed via
    `erc-response.contents'.

    Should, for some reason, you want to do something with the
    /unparsed/ response, you can get it via `erc-response.unparsed'.

*** The `erc-server-hook-list' mechanism is gone.

    All server response handlers should be defined with
    `define-erc-response-handler'.  This defines functions and
    corresponding hook variables.

    The mapping of server commands to hook variables is no longer
    done via `erc-event-to-hook', but through an #'equal hashtable,
    `erc-server-responses'.  In order to find a hook you do:

    (erc-get-hook command)

    See the docstring of `define-erc-response-handler' for more
    information.

*** ALL hook variables have been renamed.

    In accordance with recommendations in the Emacs Lisp manual,
    the hook variables are no longer called `erc-server-FOO-hook',
    but rather `erc-server-FOO-functions'.  This is to indicate
    that the functions they call take arguments.

    All the modules in ERC have been updated to reflect this change,
    but external module authors should beware.

** The values of `erc-mode-line-format' and `erc-header-line-format'
are now defined as strings to be formatted using `format-spec'.
`erc-mode-line-format' does not replace the whole mode-line anymore,
only `mode-line-buffer-identification' is set.  This way, personal
mode-line configurations are not modified and all key bindings work as
expected.  The process status (connecting, closed) is now shown in
`mode-line-process'.

** Customization of ERC variables has been made easier.  Variables
have been split into more groups for better organization.

** New variables

  o `erc-send-whitespace-lines' - Set this to send lines even if they
    are empty.

  o `erc-manual-set-nick-on-bad-nick-p' - If the nickname you chose is
    already taken or not allowed, your nick is not changed and you can
    try again manually if this is non-nil.

  o `erc-mode-line-away-status-format' - You can now set what is shown
    in the mode-line when you are away.

  o `erc-header-line-uses-help-echo-p' - The header-line now uses the
    help-echo property. You can set this to nil to disable it.

  o `erc-format-query-as-channel-p' - Set this to nil to have messages
    in the query buffer formatted like private messages.

  o `erc-show-channel-key-p' - The channel key is now shown with the
    other channel modes in the header line. Set this to nil if you
    want it hidden.

  o `erc-prompt-for-channel-key' - Set this if you want to be prompted
    for the channel key (channel's mode is +k) when you call
    `erc-join-channel' interactively.

  o `erc-kill-server-buffer-on-quit' - If non-nil, kill the server
    buffer automatically when you quit.

** New hooks

  o `erc-join-hook' - Called when you join a channel.

  o `erc-kick-hook' - Called when you are kicked from a channel. The
    channel's buffer is sent as an argument to functions called from
    this hook.

  o `erc-nick-changed-functions' - Whenever your nickname changes
    successfully, the functions in this hook are run with the
    arguments NEW-NICK and OLD-NICK.

** New command /WHOAMI - Do a /WHOIS on your current nickname.

** The key binding for changing channel modes is now C-c C-o.

** Removed variables

  o `erc-echo-notices-in-minibuffer-flag' and
    `erc-echo-notices-in-current-buffer' - You should use
    `erc-echo-notice-hook' and `erc-echo-notice-always-hook' instead.

  o `erc-prompt-interactive-input' has been removed (commented out)
    because nickname completion does not work with it.

  o All INFO buffer-related variables and functions have been removed.

** You can now disable modules by setting `erc-modules' with the
customization interface.

** Changes and additions to modules

*** Autoaway (erc-autoaway.el)

**** New variable `erc-autoaway-no-auto-back-regexp' - Add text which,
when you type anything matching it, will not automatically discard
your away status when `erc-auto-discard-away' is non-nil.

*** Filling (erc-fill.el)

**** New variable `erc-fill-variable-maximum-indentation' - Don't
indent more than this many characters when indenting a message from a
user with a long nickname.

*** Goodies (erc-goodies.el)

**** Miscellaneous small modules have been moved from erc.el.
The functions erc-add-scroll-to-bottom, erc-make-read-only,
erc-send-distinguish-noncommands, erc-interpret-controls, erc-unmorse,
erc-smiley, and erc-occur, which were defined in the main erc.el file
have been moved to erc-goodies.el and have mostly been translated to
the modules scrolltobottom, readonly, noncommands, irccontrols, smiley
and unmorse.

**** New variables

  o `erc-input-line-position' - The line number to use with
    `erc-scroll-to-bottom'.

  o `erc-beep-p' - Beep if there is a \C-g control character in a
    message.

*** Channel lists (erc-list.el)

**** New variable `erc-chanlist-highlight-face' - A face used for
highlighting the current line.

*** Highlighting (erc-match.el)

**** `erc-current-nick-highlight-type' has new options: 'keyword and
'nick-or-keyword.

*** Menu (erc-menu.el)

**** The `IRC' menu is now automatically added to `erc-mode' buffers.

*** Networks (erc-nets.el)

**** The functions for determining current network are in this file.
There were a couple of functions spread about in different files which
each had a different way of determining the current network.  The
methods have been combined, and the big list of known networks
(`erc-networks-alist') is being put to use.  You can access the
network's name by calling the new function `erc-network'.  This
returns the name of the current network as a symbol or 'Unknown if it
could not determine which network it is.

*** Nicklist (erc-nicklist.el)

**** ERC has a new way of displaying nicknames in a channel.
The new file erc-nicklist.el defines a new command `erc-nicklist'
which pops up a small Emacs window showing the nicknames of all
members of the current channel.  The implementation is not complete
and is rather proof-of-concept for now.  The result is something a bit
like erc-speedbar, but not quite as invasive, and doesn't require use
of a new frame.

*** Internet services / Nickserv (erc-nickserv.el)

**** Network detection is now taken care of by erc-nets.el.
The function `erc-current-network' is deprecated, use `erc-network'
instead.  The variable `erc-networks' has been removed, use
`erc-networks-alist'.  The network symbols used in
`erc-nickserv-alist' now match those in `erc-networks-alist'.

**** New variable `erc-nickserv-identify-mode' - Choose which method
to use for automatic identification: you can wait for Nickserv to ask
you to identify (the default), or send an identify message
automatically after you change your nickname.

*** Speedbar (erc-speedbar.el)

**** New variable `erc-speedbar-sort-users-type' - Sort users in a
channel by activity, alphabetically, or not at all.

*** Timestamps (erc-stamp.el)

**** `erc-timestamp-only-if-changed-flag' now works when
`erc-insert-timestamp-function' is set to 'erc-insert-timestamp-left.

**** New variable `erc-timestamp-intangible' - Set this to nil if
timestamps should not have the 'intangible property.

*** Channel tracking (erc-track.el)

**** Using faces to indicate channel activity in the modeline now works
in XEmacs.

**** New variables

  o `erc-track-priority-faces-only' - Ignore changes in a channel
    unless there is a face from the `erc-track-faces-priority-list' in
    the message.

  o `erc-track-exclude-server-buffer' - Ignore changes in the server
    buffer.

  o `erc-track-position-in-mode-line' - Set the position in the
    mode-line where modified channels are shown (only works in GNU
    Emacs versions above 21.3).

* Changes in ERC 4.0

** The module system has again changed a lot.  You can now customize
  the variable `erc-modules' and define once and for all which
  extension modules you want to use.  This unfortunately may require
  you to change your current erc initialisation code a bit, if you
  have some existing customsations.  On the other hand, this change
  makes the configuration of extension modules a lot easier for new
  users.  In theory, you should be able to configure all aspects of
  ERC by using the customize interface, you should no longer really
  need to write Lisp code for trivial customizations.

  By default, the following modules are now loaded: (pcomplete
  netsplit fill track ring button autojoin)

  Please use M-x customize-variable RET erc-modules RET to change the
  default if it does not suite your needs.

** THe symbol used in `erc-nickserv-passwords' for debian.org IRC servers
  (formerly called OpenProjects, now FreeNode) has changed from
  openprojects to freenode.  You may need to update your configuration
  for a successful automatic nickserv identification.

* Changes in ERC 3.0.cvs.20030119

** New module erc-dcc:

This finally implements DCC.  It requires server sockets to fully work
in both directions.  This feature is currently only available in Emacs
21.3.50 (CVS). Here is a short list of what should work though.

** Compatibility:
  * Emacs 21.2, DCC get, and accepting DCC chat offers.
  * XEmacs 21, Only accepting DCC chat offers.

** erc is switching to global-minor-modes for activation of submodules.

This allows you to customize such a mode and get automatic loading of
the module.  No longer putting a lot of require statments in .emacs.
At least this is the long-term plan, not all modules are converted
yet.

** The most important user visible change is that you now need to activate
erc-completion-mode, to get TAB completion.  The new completion code
is based on pcomplete.  To get the old code, manually load
erc-complete and bind TAB to erc-complete in erc-mode-map.

To activate completion on startup, put (erc-completion-mode 1) in your
.emacs file.

Same applies to timestamps.  You no longer need to (require
'erc-stamp), you can customize the variable `erc-timestamp-mode', and
the rest should be automatic.

arch-tag: 2b21b387-6cdc-4192-889c-6743cfffdcb1