Document new erc module "notifications"
[bpt/emacs.git] / doc / misc / erc.texi
CommitLineData
4009494e
GM
1\input texinfo
2@c %**start of header
db78a8cb 3@setfilename ../../info/erc
4009494e 4@settitle ERC Manual
4009494e 5@syncodeindex fn cp
24636b26 6@include emacsver.texi
5dc584b5 7@c %**end of header
4009494e
GM
8
9@copying
24636b26 10This manual is for ERC as distributed with Emacs @value{EMACSVER}.
4009494e 11
24636b26 12Copyright @copyright{} 2005-2012 Free Software Foundation, Inc.
4009494e
GM
13
14@quotation
15Permission is granted to copy, distribute and/or modify this document
6a2c4aec 16under the terms of the GNU Free Documentation License, Version 1.3 or
4009494e 17any later version published by the Free Software Foundation; with no
cd5c05d2
GM
18Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
19and with the Back-Cover Texts as in (a) below. A copy of the license
20is included in the section entitled ``GNU Free Documentation License''.
21
22(a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
23modify this GNU manual. Buying copies from the FSF supports it in
24developing GNU and promoting software freedom.''
4009494e
GM
25
26All Emacs Lisp code contained in this document may be used, distributed,
27and modified without restriction.
28@end quotation
29@end copying
30
0c973505 31@dircategory Emacs network features
5dc584b5 32@direntry
62e034c2 33* ERC: (erc). Powerful and extensible IRC client for Emacs.
5dc584b5
KB
34@end direntry
35
4009494e
GM
36@titlepage
37@title ERC manual
38@subtitle a full-featured IRC client
47301027 39@subtitle for Emacs and XEmacs
4009494e
GM
40
41@c The following two commands
42@c start the copyright page.
43@page
44@vskip 0pt plus 1filll
45@insertcopying
46@end titlepage
47
4009494e
GM
48@contents
49
50@ifnottex
a03bb33f 51@node Top
4009494e
GM
52@top ERC
53
54@insertcopying
55@end ifnottex
56
57@menu
58* Introduction:: What is ERC?
4009494e
GM
59* Getting Started:: Quick Start guide to using ERC.
60* Keystroke Summary:: Keystrokes used in ERC buffers.
61* Modules:: Available modules for ERC.
62* Advanced Usage:: Cool ways of using ERC.
63* Getting Help and Reporting Bugs::
64* History:: The history of ERC.
526dc846
MO
65* Copying:: The GNU General Public License gives you
66 permission to redistribute ERC on
67 certain terms; it also explains that
68 there is no warranty.
15db4a13 69* GNU Free Documentation License:: The license for this documentation.
4009494e
GM
70* Concept Index:: Search for terms.
71
72@detailmenu
73 --- The Detailed Node Listing ---
74
4009494e
GM
75Getting Started
76
77* Sample Session:: Example of connecting to the #emacs channel
78* Special Features:: Differences from standalone IRC clients
79
80Advanced Usage
81
82* Connecting:: Ways of connecting to an IRC server.
83* Sample Configuration:: An example configuration file.
84* Options:: Options that are available for ERC.
85
86@end detailmenu
87@end menu
88
a03bb33f 89@node Introduction
4009494e
GM
90@chapter Introduction
91
92ERC is a powerful, modular, and extensible IRC client for Emacs.
24636b26 93It is distributed with Emacs since version 22.1.
4009494e
GM
94
95It comes with the following capabilities enabled by default.
96
97@itemize @bullet
98@item Flood control
99@item Timestamps
100@item Join channels automatically
101@item Buttonize URLs, nicknames, and other text
102@item Wrap long lines
103@item Highlight or remove IRC control characters
104@item Highlight pals, fools, and other keywords
105@item Detect netsplits
106@item Complete nicknames and commands in a programmable fashion
107@item Make displayed lines read-only
108@item Input history
109@item Track channel activity in the mode-line
110
111@end itemize
112
4009494e 113
a03bb33f 114@node Getting Started
4009494e
GM
115@chapter Getting Started
116@cindex settings
117
24636b26
GM
118The command @kbd{M-x erc} will start ERC and prompt for the server to
119connect to.
4009494e
GM
120
121If you want to place ERC settings in their own file, you can place them
122in @file{~/.emacs.d/.ercrc.el}, creating it if necessary.
123
124If you would rather use the Customize interface to change how ERC works,
125do @kbd{M-x customize-group RET erc RET}. In particular, ERC comes with
126lots of modules that may be enabled or disabled; to select which ones
127you want, do @kbd{M-x customize-variable RET erc-modules RET}.
128
129@menu
130* Sample Session:: Example of connecting to the #emacs channel
131* Special Features:: Differences from standalone IRC clients
132@end menu
133
a03bb33f 134@node Sample Session
4009494e
GM
135@section Sample Session
136
137This is an example ERC session which shows how to connect to the #emacs
138channel on Freenode. Another IRC channel on Freenode that may be of
139interest is #erc, which is a channel where ERC users and developers hang
140out.
141
142@itemize @bullet
143
144@item Connect to Freenode
145
146Run @kbd{M-x erc}. Use ``irc.freenode.net'' as the IRC server, ``6667''
147as the port, and choose a nickname.
148
149@item Get used to the interface
150
151Switch to the ``irc.freenode.net:6667'' buffer, if you're not already
152there. You will see first some messages about checking for ident, and
153then a bunch of other messages that describe the current IRC server.
154
155@item Join the #emacs channel
156
157In that buffer, type ``/join SPC #emacs'' and hit @kbd{RET}. Depending
158on how you've set up ERC, either a new buffer for ``#emacs'' will be
159displayed, or a new buffer called ``#emacs'' will be created in the
160background. If the latter, switch to the ``#emacs'' buffer. You will
161see the channel topic and a list of the people who are currently on the
162channel.
163
164@item Register your nickname with Freenode
165
166If you would like to be able to talk with people privately on the
167Freenode network, you will have to ``register'' your nickname. To do
168so, switch to the ``irc.freenode.net:6667'' buffer and type ``/msg
169NickServ register <password>'', replacing ``<password>'' with your
170desired password. It should tell you that the operation was successful.
171
172@item Talk to people in the channel
173
174If you switch back to the ``#emacs'' buffer, you can type a message, and
175everyone on the channel will see it.
176
177@item Open a query buffer to talk to someone
178
179If you want to talk with someone in private (this should usually not be
180done for technical help, only for personal questions), type ``/query
181<nick>'', replacing ``<nick>'' with the nickname of the person you would
182like to talk to. Depending on how ERC is set up, you will either see a
183new buffer with the name of the person, or such a buffer will be created
184in the background and you will have to switch to it. Begin typing
185messages, and you will be able to have a conversation.
186
187Note that if the other person is not registered, you will not be able to
188talk with them.
189
190@end itemize
191
a03bb33f 192@node Special Features
4009494e
GM
193@section Special Features
194
195ERC has some features that distinguish it from some IRC clients.
196
197@itemize @bullet
198
199@item multiple channels and multiple servers
200
201Every channel is put in a separate buffer. Several IRC servers may be
202connected to at the same time.
203
204@cindex query buffers
205@item private message separation
206
207Private conversations are treated as channels, and are put into separate
208buffers in Emacs. We call these ``query buffers''.
209
210@item highlighting
211
d20cf916 212Some occurrences of words can be highlighted, which makes it easier to
4009494e
GM
213track different kinds of conversations.
214
215@item notification
216
217ERC can notify you that certain users are online.
218
219@item channel tracking
220
221Channels can be hidden and conversation continue in the background. You
222are notified when something is said in such a channel that is not
223currently visible. This makes it easy to get Real Work done while still
224maintaining an IRC presence.
225
226@item nick completion
227
228ERC can complete words upon hitting @kbd{TAB}, which eases the writing
229of nicknames in messages.
230
231@cindex history ring
232@item history
233
234Past actions are kept in history rings for future use. To navigate a
235history ring, hit @kbd{M-p} to go backwards and @kbd{M-n} to go
236forwards.
237
238@item multiple languages
239
240Different channels and servers may have different language encodings.
241
242In addition, it is possible to translate the messages that ERC uses into
243multiple languages. Please contact the developers of ERC at
244@email{erc-discuss@@gnu.org} if you are interested in helping with the
245translation effort.
246
247@item user scripting
248
249Users can load scripts (e.g. auto greeting scripts) when ERC starts up.
250
251It is also possible to make custom IRC commands, if you know a little
252Emacs Lisp. Just make an Emacs Lisp function and call it
253@code{erc-cmd-NEWCOMMAND}, where @code{NEWCOMMAND} is the name of the
254new command in capital letters.
255
256@item auto reconnect
257
258If the connection goes away at some point, ERC will try to reconnect
259automatically. If it fails to reconnect, and you want to try to
260manually reestablish the connection at some later point, switch to an
261ERC buffer and run the @code{/RECONNECT} command.
262
263@end itemize
264
265
a03bb33f 266@node Keystroke Summary
4009494e
GM
267@chapter Keys Used in ERC
268@cindex keystrokes
269
270This is a summary of keystrokes available in every ERC buffer.
271
272@table @kbd
273
274@item C-a or <home> (`erc-bol')
275Go to beginning of line or end of prompt.
276
277@item RET (`erc-send-current-line')
278Send the current line
279
280@item TAB (`erc-complete-word')
281If at prompt, complete the current word.
282Otherwise, move to the next link or button.
283
284@item M-TAB (`ispell-complete-word')
285Complete the given word, using ispell.
286
287@item C-c C-a (`erc-bol')
288Go to beginning of line or end of prompt.
289
290@item C-c C-b (`erc-iswitchb')
291Use `iswitchb-read-buffer' to prompt for a ERC buffer to switch to.
292
293@item C-c C-c (`erc-toggle-interpret-controls')
294Toggle interpretation of control sequences in messages.
295
296@item C-c C-d (`erc-input-action')
297Interactively input a user action and send it to IRC.
298
299@item C-c C-e (`erc-toggle-ctcp-autoresponse')
300Toggle automatic CTCP replies (like VERSION and PING).
301
302@item C-c C-f (`erc-toggle-flood-control')
303Toggle use of flood control on sent messages.
304
305@item C-c TAB (`erc-invite-only-mode')
306Turn on the invite only mode (+i) for the current channel.
307
308@item C-c C-j (`erc-join-channel')
309Join channel. If point is at the beginning of a channel name, use that
310as default.
311
312@item C-c C-k (`erc-go-to-log-matches-buffer')
313Interactively open an erc-log-matches buffer
314
315@item C-c C-l (`erc-save-buffer-in-logs')
316Append buffer contents to the log file, if logging is enabled.
317
318@item C-c C-n (`erc-channel-names')
319Run "/names #channel" in the current channel.
320
321@item C-c C-o (`erc-get-channel-mode-from-keypress')
322Read a key sequence and call the corresponding channel mode function.
323After doing @kbd{C-c C-o}, type in a channel mode letter.
324
325@kbd{C-g} means quit.
326@kbd{RET} lets you type more than one mode at a time.
327If @kbd{l} is pressed, @code{erc-set-channel-limit} gets called.
328If @kbd{k} is pressed, @code{erc-set-channel-key} gets called.
329Anything else will be sent to `erc-toggle-channel-mode'.
330
331@item C-c C-p (`erc-part-from-channel')
332Part from the current channel and prompt for a reason.
333
334@item C-c C-q (`erc-quit-server')
335Disconnect from current server after prompting for reason.
336
337@item C-c C-r (`erc-remove-text-properties-region')
338Clears the region (start,end) in object from all colors, etc.
339
340@item C-c C-t (`erc-set-topic')
341Prompt for a topic for the current channel.
342
343@item C-c C-u (`erc-kill-input')
344Kill current input line using `erc-bol' followed by `kill-line'.
345
346@end table
347
348
a03bb33f 349@node Modules
4009494e
GM
350@chapter Modules
351@cindex modules
352
353One way to add functionality to ERC is to customize which of its many
354modules are loaded.
355
356There is a spiffy customize interface, which may be reached by typing
357@kbd{M-x customize-option erc-modules RET}. Alternatively, set
358@code{erc-modules} manually and then call @code{erc-update-modules}.
359
360The following is a list of available modules.
361
362@table @code
363
364@cindex modules, autoaway
365@item autoaway
366Set away status automatically
367
368@cindex modules, autojoin
369@item autojoin
370Join channels automatically
371
372@cindex modules, bbdb
373@item bbdb
374Integrate with the Big Brother Database
375
376@cindex modules, button
377@item button
378Buttonize URLs, nicknames, and other text
379
380@cindex modules, capab-identify
381@item capab-identify
382Mark unidentified users on freenode and other servers supporting CAPAB.
383
384@cindex modules, completion
385@cindex modules, pcomplete
386@item completion (aka pcomplete)
387Complete nicknames and commands (programmable)
388
389@cindex modules, fill
390@item fill
391Wrap long lines
392
4009494e
GM
393@cindex modules, identd
394@item identd
395Launch an identd server on port 8113
396
397@cindex modules, irccontrols
398@item irccontrols
399Highlight or remove IRC control characters
400
401@cindex modules, log
402@item log
403Save buffers in logs
404
405@cindex modules, match
406@item match
407Highlight pals, fools, and other keywords
408
409@cindex modules, menu
410@item menu
411Display a menu in ERC buffers
412
413@cindex modules, netsplit
414@item netsplit
415Detect netsplits
416
417@cindex modules, noncommands
418@item noncommands
419Don't display non-IRC commands after evaluation
420
421@cindex modules, notify
422@item notify
423Notify when the online status of certain users changes
424
6e5e9b70
GM
425@cindex modules, notifications
426@item notifications
427Send you a notification when you get a private message,
428or your nickname is mentioned
429
4009494e
GM
430@cindex modules, page
431@item page
432Process CTCP PAGE requests from IRC
433
434@cindex modules, readonly
435@item readonly
436Make displayed lines read-only
437
438@cindex modules, replace
439@item replace
440Replace text in messages
441
442@cindex modules, ring
443@item ring
444Enable an input history
445
446@cindex modules, scrolltobottom
447@item scrolltobottom
448Scroll to the bottom of the buffer
449
450@cindex modules, services
451@item services
452Identify to Nickserv (IRC Services) automatically
453
454@cindex modules, smiley
455@item smiley
456Convert smileys to pretty icons
457
458@cindex modules, sound
459@item sound
460Play sounds when you receive CTCP SOUND requests
461
462@cindex modules, spelling
463@item spelling
464Check spelling of messages
465
466@cindex modules, stamp
467@item stamp
468Add timestamps to messages
469
470@cindex modules, track
471@item track
472Track channel activity in the mode-line
473
474@cindex modules, truncate
475@item truncate
476Truncate buffers to a certain size
477
478@cindex modules, unmorse
479@item unmorse
480Translate morse code in messages
481
482@end table
483
a83df153 484@c PRE5_4: Document every option of every module in its own subnode
4009494e
GM
485
486
a03bb33f 487@node Advanced Usage
4009494e
GM
488@chapter Advanced Usage
489@cindex advanced topics
490
491@menu
492* Connecting:: Ways of connecting to an IRC server.
493* Sample Configuration:: An example configuration file.
494* Options:: Options that are available for ERC.
495@end menu
496
a03bb33f 497@node Connecting
4009494e
GM
498@section Connecting to an IRC Server
499@cindex connecting
500
501The easiest way to connect to an IRC server is to call @kbd{M-x erc}.
502If you want to assign this function to a keystroke, the following will
503help you figure out its parameters.
504
505@defun erc
506Select connection parameters and run ERC.
507Non-interactively, it takes the following keyword arguments.
508
509@itemize @bullet
510@item @var{server}
511@item @var{port}
512@item @var{nick}
513@item @var{password}
514@item @var{full-name}
515@end itemize
516
517That is, if called with the following arguments, @var{server} and
518@var{full-name} will be set to those values, whereas
519@code{erc-compute-port}, @code{erc-compute-nick} and
520@code{erc-compute-full-name} will be invoked for the values of the other
521parameters.
522
523@example
524(erc :server "irc.freenode.net" :full-name "Harry S Truman")
525@end example
526@end defun
527
528@subheading Server
529
530@defun erc-compute-server &optional server
531Return an IRC server name.
532
533This tries a number of increasingly more default methods until a non-nil
534value is found.
535
536@itemize @bullet
537@item @var{server} (the argument passed to this function)
538@item The @code{erc-server} option
539@item The value of the IRCSERVER environment variable
540@item The @code{erc-default-server} variable
541@end itemize
542
543@end defun
544
545@defopt erc-server nil
546IRC server to use if one is not provided.
547@end defopt
548
549@subheading Port
550
551@defun erc-compute-port &optional port
552Return a port for an IRC server.
553
554This tries a number of increasingly more default methods until a non-nil
555value is found.
556
557@itemize @bullet
558@item @var{port} (the argument passed to this function)
559@item The @code{erc-port} option
560@item The @code{erc-default-port} variable
561@end itemize
562
563@end defun
564
565@defopt erc-port
566IRC port to use if not specified.
567
568This can be either a string or a number.
569@end defopt
570
571@subheading Nick
572
573@defun erc-compute-nick &optional nick
574Return user's IRC nick.
575
576This tries a number of increasingly more default methods until a
577non-nil value is found.
578
579@itemize
580@item @var{nick} (the argument passed to this function)
581@item The @code{erc-nick} option
582@item The value of the IRCNICK environment variable
583@item The result from the @code{user-login-name} function
584@end itemize
585
586@end defun
587
588@defopt erc-nick
589Nickname to use if one is not provided.
590
591This can be either a string, or a list of strings.
592In the latter case, if the first nick in the list is already in use,
593other nicks are tried in the list order.
594@end defopt
595
596@defopt erc-nick-uniquifier
597The string to append to the nick if it is already in use.
598@end defopt
599
600@defopt erc-try-new-nick-p
601If the nickname you chose isn't available, and this option is non-nil,
602ERC should automatically attempt to connect with another nickname.
603
604You can manually set another nickname with the /NICK command.
605@end defopt
606
607@subheading Full name
608
609@defun erc-compute-full-name &optional full-name
610Return user's full name.
611
612This tries a number of increasingly more default methods until a
613non-nil value is found.
614
615@itemize @bullet
616@item @var{full-name} (the argument passed to this function)
617@item The @code{erc-user-full-name} option
618@item The value of the IRCNAME environment variable
619@item The result from the @code{user-full-name} function
620@end itemize
621
622@end defun
623
624@defopt erc-user-full-name
625User full name.
626
627This can be either a string or a function to call.
628@end defopt
629
a03bb33f 630@node Sample Configuration
4009494e
GM
631@section Sample Configuration
632@cindex configuration, sample
633
634Here is an example of configuration settings for ERC. This can go into
635your Emacs configuration file. Everything after the @code{(require
636'erc)} command can optionally go into @file{~/.emacs.d/.ercrc.el}.
637
638@lisp
639;;; Sample ERC configuration
640
641;; Add the ERC directory to load path -- you don't need this if you are
642;; using the version of ERC that comes with Emacs
643(add-to-list 'load-path "~/elisp/erc")
644
645;; Load ERC
646(require 'erc)
647
648;; Load authentication info from an external source. Put sensitive
649;; passwords and the like in here.
650(load "~/.emacs.d/.erc-auth")
651
652;; This is an example of how to make a new command. Type "/uptime" to
653;; use it.
654(defun erc-cmd-UPTIME (&rest ignore)
655 "Display the uptime of the system, as well as some load-related
656stuff, to the current ERC buffer."
657 (let ((uname-output
658 (replace-regexp-in-string
659 ", load average: " "] @{Load average@} ["
660 ;; Collapse spaces, remove
661 (replace-regexp-in-string
662 " +" " "
663 ;; Remove beginning and trailing whitespace
664 (replace-regexp-in-string
665 "^ +\\|[ \n]+$" ""
666 (shell-command-to-string "uptime"))))))
667 (erc-send-message
668 (concat "@{Uptime@} [" uname-output "]"))))
669
670;; This causes ERC to connect to the Freenode network upon hitting
671;; C-c e f. Replace MYNICK with your IRC nick.
672(global-set-key "\C-cef" (lambda () (interactive)
673 (erc :server "irc.freenode.net" :port "6667"
674 :nick "MYNICK")))
675
676;; This causes ERC to connect to the IRC server on your own machine (if
677;; you have one) upon hitting C-c e b. Replace MYNICK with your IRC
678;; nick. Often, people like to run bitlbee (http://bitlbee.org/) as an
679;; AIM/Jabber/MSN to IRC gateway, so that they can use ERC to chat with
680;; people on those networks.
681(global-set-key "\C-ceb" (lambda () (interactive)
682 (erc :server "localhost" :port "6667"
683 :nick "MYNICK")))
684
685;; Make C-c RET (or C-c C-RET) send messages instead of RET. This has
686;; been commented out to avoid confusing new users.
687;; (define-key erc-mode-map (kbd "RET") nil)
688;; (define-key erc-mode-map (kbd "C-c RET") 'erc-send-current-line)
689;; (define-key erc-mode-map (kbd "C-c C-RET") 'erc-send-current-line)
690
691;;; Options
692
693;; Join the #emacs and #erc channels whenever connecting to Freenode.
694(setq erc-autojoin-channels-alist '(("freenode.net" "#emacs" "#erc")))
695
696;; Interpret mIRC-style color commands in IRC chats
697(setq erc-interpret-mirc-color t)
698
699;; The following are commented out by default, but users of other
700;; non-Emacs IRC clients might find them useful.
701;; Kill buffers for channels after /part
702;; (setq erc-kill-buffer-on-part t)
703;; Kill buffers for private queries after quitting the server
704;; (setq erc-kill-queries-on-quit t)
705;; Kill buffers for server messages after quitting the server
706;; (setq erc-kill-server-buffer-on-quit t)
707@end lisp
708
a03bb33f 709@node Options
4009494e
GM
710@section Options
711@cindex options
712
a83df153 713@c PRE5_4: (Node) Document every ERC option (module options go in
4009494e
GM
714@c previous chapter)
715
716This section has not yet been written. For now, the easiest way to
526dc846 717check out the available options for ERC is to do
4009494e
GM
718@kbd{M-x customize-group erc RET}.
719
720
a03bb33f 721@node Getting Help and Reporting Bugs
4009494e
GM
722@chapter Getting Help and Reporting Bugs
723@cindex help, getting
724@cindex bugs, reporting
725
726After you have read this guide, if you still have questions about ERC,
727or if you have bugs to report, there are several places you can go.
728
729@itemize @bullet
730
731@item
526dc846 732@uref{http://www.emacswiki.org/cgi-bin/wiki/ERC} is the
24636b26 733emacswiki.org page for ERC. Anyone may add tips, hints, etc. to it.
4009494e
GM
734
735@item
24636b26
GM
736You can ask questions about using ERC on the Emacs mailing list,
737@uref{http://lists.gnu.org/mailman/listinfo/help-gnu-emacs}.
4009494e
GM
738
739@item
740You can visit the IRC Freenode channel @samp{#emacs}. Many of the
741contributors are frequently around and willing to answer your
742questions.
743
24636b26
GM
744@item
745To report a bug in ERC, use @kbd{M-x report-emacs-bug}.
746
4009494e
GM
747@end itemize
748
749
a03bb33f 750@node History
4009494e
GM
751@chapter History
752@cindex history, of ERC
753
754ERC was originally written by Alexander L. Belikoff
755@email{abel@@bfr.co.il} and Sergey Berezin
756@email{sergey.berezin@@cs.cmu.edu}. They stopped development around
757December 1999. Their last released version was ERC 2.0.
758
759P.S.: If one of the original developers of ERC reads this, we'd like to
760receive additional information for this file and hear comments in
761general.
762
763@itemize
764@item 2001
765
766In June 2001, Mario Lang @email{mlang@@delysid.org} and Alex Schroeder
767@email{alex@@gnu.org} took over development and created a ERC Project at
768@uref{http://sourceforge.net/projects/erc}.
769
770In reaction to a mail about the new ERC development effort, Sergey
771Berezin said, ``First of all, I'm glad that my version of ERC is being
772used out there. The thing is, I do not have free time and enough
773incentive anymore to work on ERC, so I would be happy if you guys take
774over the project entirely.''
775
776So we happily hacked away on ERC, and soon after (September 2001)
777released the next "stable" version, 2.1.
778
779Most of the development of the new ERC happened on #emacs on
780irc.openprojects.net. Over time, many people contributed code, ideas,
781bugfixes, and a lot of alpha/beta/gamma testing.
782
783See the @file{CREDITS} file for a list of contributors.
784
785@item 2003
786
787ERC 3.0 was released.
788
789@item 2004
790
791ERC 4.0 was released.
792
793@item 2005
794
795ERC 5.0 was released. Michael Olson @email{mwolson@@gnu.org} became
796the release manager and eventually the maintainer.
797
798After some discussion between him and the Emacs developers, it was
799decided to include ERC in Emacs.
800
801@item 2006
802
803ERC 5.1 was released. It was subsequently included in Emacs 22.
804
805ERC became an official GNU project, and development moved to
806@uref{http://sv.gnu.org/projects/erc}. We switched to using GNU Arch as
807our revision control system. Our mailing list address changed as well.
808
15db4a13
MO
809@item 2007
810
811We switched to using git for our version control system.
812
24636b26
GM
813@item 2009+
814
815Since about 2009, ERC is no longer developed as a separate project, but
816is maintained as part of Emacs.
817
4009494e
GM
818@end itemize
819
a03bb33f
GM
820@node Copying
821@appendix GNU GENERAL PUBLIC LICENSE
526dc846
MO
822@include gpl.texi
823
a03bb33f
GM
824@node GNU Free Documentation License
825@appendix GNU Free Documentation License
4009494e
GM
826@include doclicense.texi
827
a03bb33f 828@node Concept Index
4009494e
GM
829@unnumbered Index
830
831@printindex cp
832
833@bye