3 @setfilename ../../info/erc
9 This manual is for ERC version 5.3.
11 Copyright @copyright{} 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
14 Permission is granted to copy, distribute and/or modify this document
15 under the terms of the GNU Free Documentation License, Version 1.3 or
16 any later version published by the Free Software Foundation; with no
17 Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
18 and with the Back-Cover Texts as in (a) below. A copy of the license
19 is included in the section entitled ``GNU Free Documentation License''.
21 (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
22 modify this GNU manual. Buying copies from the FSF supports it in
23 developing GNU and promoting software freedom.''
25 All Emacs Lisp code contained in this document may be used, distributed,
26 and modified without restriction.
32 * ERC: (erc). Powerful, modular, and extensible IRC client for Emacs.
37 @subtitle a full-featured IRC client
38 @subtitle for GNU Emacs and XEmacs
40 @c The following two commands
41 @c start the copyright page.
43 @vskip 0pt plus 1filll
50 @node Top, Introduction, (dir), (dir)
51 @comment node-name, next, previous, up
58 * Introduction:: What is ERC?
59 * Obtaining ERC:: How to get ERC releases and development
61 * Installation:: Compiling and installing ERC.
62 * Getting Started:: Quick Start guide to using ERC.
63 * Keystroke Summary:: Keystrokes used in ERC buffers.
64 * Modules:: Available modules for ERC.
65 * Advanced Usage:: Cool ways of using ERC.
66 * Getting Help and Reporting Bugs::
67 * History:: The history of ERC.
68 * Copying:: The GNU General Public License gives you
69 permission to redistribute ERC on
70 certain terms; it also explains that
72 * GNU Free Documentation License:: The license for this documentation.
73 * Concept Index:: Search for terms.
76 --- The Detailed Node Listing ---
80 * Releases:: Released versions of ERC.
81 * Development:: Latest unreleased development changes.
85 * Sample Session:: Example of connecting to the #emacs channel
86 * Special Features:: Differences from standalone IRC clients
90 * Connecting:: Ways of connecting to an IRC server.
91 * Sample Configuration:: An example configuration file.
92 * Options:: Options that are available for ERC.
97 @node Introduction, Obtaining ERC, Top, Top
98 @comment node-name, next, previous, up
101 ERC is a powerful, modular, and extensible IRC client for Emacs.
103 It comes with the following capabilities enabled by default.
108 @item Join channels automatically
109 @item Buttonize URLs, nicknames, and other text
110 @item Wrap long lines
111 @item Highlight or remove IRC control characters
112 @item Highlight pals, fools, and other keywords
113 @item Detect netsplits
114 @item Complete nicknames and commands in a programmable fashion
115 @item Make displayed lines read-only
117 @item Track channel activity in the mode-line
121 @node Obtaining ERC, Installation, Introduction, Top
122 @comment node-name, next, previous, up
123 @chapter Obtaining ERC
126 * Releases:: Released versions of ERC.
127 * Development:: Latest unreleased development changes.
130 Note that some ERC files are not included with Emacs due to copyright or
131 dependency issues. If desired, they may be found at the following
132 locations, or from your local GNU mirror.
135 @item @uref{http://ftp.gnu.org/gnu/erc/erc-5.3-extras.tar.gz}
136 @item @uref{http://ftp.gnu.org/gnu/erc/erc-5.3-extras.zip}
139 The rest of this chapter may be skipped if you are using the version of
140 ERC that comes with Emacs.
142 @node Releases, Development, Obtaining ERC, Obtaining ERC
143 @comment node-name, next, previous, up
146 Choose to install a release if you want to minimize risk.
148 Errors are corrected in development first. User-visible changes will be
149 announced on the @email{erc-discuss@@gnu.org} mailing list.
150 @pxref{Getting Help and Reporting Bugs}.
152 @cindex releases, Debian package
153 @cindex Debian package for ERC
154 Debian users can get ERC via apt-get. The @file{erc} package is
155 available in the official Debian repository.
157 @cindex releases, from source
158 Alternatively, you can download the latest release from
159 @uref{http://ftp.gnu.org/gnu/erc}, or your local GNU mirror.
161 @node Development, , Releases, Obtaining ERC
162 @comment node-name, next, previous, up
166 Choose the development version if you want to live on the bleeding edge
167 of ERC development or try out new features before release.
169 @cindex git version control system, using
170 The git version control system allows you to keep up-to-date with the
171 latest changes to the development version of ERC. It also allows you
172 to contribute changes (via commits, if you are have developer access to
173 the repository, or via patches, otherwise). If you would like to
174 contribute to ERC development, it is highly recommended that you use
177 If you are new to git, you might find this tutorial helpful:
178 @uref{http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html}.
180 Downloading ERC with git and staying up-to-date involves the following
187 @item Debian and Ubuntu: @kbd{apt-get install git-core}.
188 @item Windows: @uref{http://git.or.cz/gitwiki/WindowsInstall}.
189 @item Other operating systems: download, compile, and install the source
190 from @uref{http://www.kernel.org/pub/software/scm/git/}, or find a git
191 package for your operating system.
194 @item Download the ERC development branch.
196 If you have developer access to ERC, do:
199 git clone ssh://loginname@@git.sv.gnu.org/srv/git/erc.git
205 git clone git://git.sv.gnu.org/erc.git
208 If you are behind a restrictive firewall, and do not have developer
209 access, then do the following instead:
212 git clone http://git.sv.gnu.org/r/erc.git
215 @item List upstream changes that are missing from your local copy.
216 Do this whenever you want to see whether new changes have been committed
217 to ERC. If you wish, you may skip this step and proceed directly to
221 # Change to the source directory you are interested in.
224 # Fetch new changes from the repository, but don't apply them yet
227 # Display log messages for the new changes
231 ``origin'' is git's name for the location where you originally got ERC
232 from. You can change this location at any time by editing the
233 @file{.git/config} file in the directory where the ERC source was
236 @cindex updating ERC with git
237 @item Update to the latest version by pulling in any missing changes.
244 git will show how many files changed, and will provide a visual display
245 for how many lines were changed in each file.
249 There are other ways to interact with the ERC repository.
252 @item Browse git repo: @uref{http://git.sv.gnu.org/gitweb/?p=erc.git}
253 @item Latest development snapshot: @uref{http://mwolson.org/static/dist/erc-latest.tar.gz}
254 @item Latest development snapshot (zip file): @uref{http://mwolson.org/static/dist/erc-latest.zip}
257 The latest development snapshot can lag behind the git repo by as much
258 as 20 minutes, but never more than that.
260 For further information on committing changes to ERC and performing
261 development, please consult
262 @uref{http://emacswiki.org/cgi-bin/wiki/ErcDevelopment}.
265 @node Installation, Getting Started, Obtaining ERC, Top
266 @comment node-name, next, previous, up
267 @chapter Installation
269 ERC may be compiled and installed on your machine.
271 This section may be skipped if you are using the version of ERC that
274 @subsubheading Compilation
276 This is an optional step, since Emacs Lisp source code does not
277 necessarily have to be byte-compiled. It will yield a speed increase,
280 A working copy of Emacs or XEmacs is needed in order to compile ERC. By
281 default, the program that is installed with the name @command{emacs}
284 If you want to use the @command{xemacs} binary to perform the
285 compilation, you would need to edit @file{Makefile} in the top-level
286 directory as follows. You can put either a full path to an Emacs or
287 XEmacs binary or just the command name, as long as it is in the
292 SITEFLAG = -no-site-file
295 Running @code{make} should compile the ERC source files in the
296 @file{lisp} directory.
298 @subsubheading Installation
300 ERC may be installed into your file hierarchy by doing the following.
302 Edit the @file{Makefile} file so that @env{ELISPDIR} points to where you
303 want the source and compiled ERC files to be installed and
304 @env{INFODIR} indicates where to put the ERC manual. Of course, you
305 will want to edit @env{EMACS} and @env{SITEFLAG} as shown in the
306 Compilation section if you are using XEmacs.
308 If you are installing ERC on a Debian system, you might want to change
309 the value of @env{INSTALLINFO} as specified in @file{Makefile}.
311 Run @code{make} as a normal user.
313 Run @code{make install} as the root user if you have chosen installation
314 locations that require this.
317 @node Getting Started, Keystroke Summary, Installation, Top
318 @comment node-name, next, previous, up
319 @chapter Getting Started
322 To use ERC, add the directory containing its files to your
323 @code{load-path} variable, in your @file{.emacs} file. Then, load ERC
324 itself. An example follows.
330 Once ERC is loaded, the command @kbd{M-x erc} will start ERC and
331 prompt for the server to connect to.
333 If you want to place ERC settings in their own file, you can place them
334 in @file{~/.emacs.d/.ercrc.el}, creating it if necessary.
336 If you would rather use the Customize interface to change how ERC works,
337 do @kbd{M-x customize-group RET erc RET}. In particular, ERC comes with
338 lots of modules that may be enabled or disabled; to select which ones
339 you want, do @kbd{M-x customize-variable RET erc-modules RET}.
342 * Sample Session:: Example of connecting to the #emacs channel
343 * Special Features:: Differences from standalone IRC clients
346 @node Sample Session, Special Features, Getting Started, Getting Started
347 @comment node-name, next, previous, up
348 @section Sample Session
350 This is an example ERC session which shows how to connect to the #emacs
351 channel on Freenode. Another IRC channel on Freenode that may be of
352 interest is #erc, which is a channel where ERC users and developers hang
357 @item Connect to Freenode
359 Run @kbd{M-x erc}. Use ``irc.freenode.net'' as the IRC server, ``6667''
360 as the port, and choose a nickname.
362 @item Get used to the interface
364 Switch to the ``irc.freenode.net:6667'' buffer, if you're not already
365 there. You will see first some messages about checking for ident, and
366 then a bunch of other messages that describe the current IRC server.
368 @item Join the #emacs channel
370 In that buffer, type ``/join SPC #emacs'' and hit @kbd{RET}. Depending
371 on how you've set up ERC, either a new buffer for ``#emacs'' will be
372 displayed, or a new buffer called ``#emacs'' will be created in the
373 background. If the latter, switch to the ``#emacs'' buffer. You will
374 see the channel topic and a list of the people who are currently on the
377 @item Register your nickname with Freenode
379 If you would like to be able to talk with people privately on the
380 Freenode network, you will have to ``register'' your nickname. To do
381 so, switch to the ``irc.freenode.net:6667'' buffer and type ``/msg
382 NickServ register <password>'', replacing ``<password>'' with your
383 desired password. It should tell you that the operation was successful.
385 @item Talk to people in the channel
387 If you switch back to the ``#emacs'' buffer, you can type a message, and
388 everyone on the channel will see it.
390 @item Open a query buffer to talk to someone
392 If you want to talk with someone in private (this should usually not be
393 done for technical help, only for personal questions), type ``/query
394 <nick>'', replacing ``<nick>'' with the nickname of the person you would
395 like to talk to. Depending on how ERC is set up, you will either see a
396 new buffer with the name of the person, or such a buffer will be created
397 in the background and you will have to switch to it. Begin typing
398 messages, and you will be able to have a conversation.
400 Note that if the other person is not registered, you will not be able to
405 @node Special Features, , Sample Session, Getting Started
406 @comment node-name, next, previous, up
407 @section Special Features
409 ERC has some features that distinguish it from some IRC clients.
413 @item multiple channels and multiple servers
415 Every channel is put in a separate buffer. Several IRC servers may be
416 connected to at the same time.
418 @cindex query buffers
419 @item private message separation
421 Private conversations are treated as channels, and are put into separate
422 buffers in Emacs. We call these ``query buffers''.
426 Some occurrences of words can be highlighted, which makes it easier to
427 track different kinds of conversations.
431 ERC can notify you that certain users are online.
433 @item channel tracking
435 Channels can be hidden and conversation continue in the background. You
436 are notified when something is said in such a channel that is not
437 currently visible. This makes it easy to get Real Work done while still
438 maintaining an IRC presence.
440 @item nick completion
442 ERC can complete words upon hitting @kbd{TAB}, which eases the writing
443 of nicknames in messages.
448 Past actions are kept in history rings for future use. To navigate a
449 history ring, hit @kbd{M-p} to go backwards and @kbd{M-n} to go
452 @item multiple languages
454 Different channels and servers may have different language encodings.
456 In addition, it is possible to translate the messages that ERC uses into
457 multiple languages. Please contact the developers of ERC at
458 @email{erc-discuss@@gnu.org} if you are interested in helping with the
463 Users can load scripts (e.g. auto greeting scripts) when ERC starts up.
465 It is also possible to make custom IRC commands, if you know a little
466 Emacs Lisp. Just make an Emacs Lisp function and call it
467 @code{erc-cmd-NEWCOMMAND}, where @code{NEWCOMMAND} is the name of the
468 new command in capital letters.
472 If the connection goes away at some point, ERC will try to reconnect
473 automatically. If it fails to reconnect, and you want to try to
474 manually reestablish the connection at some later point, switch to an
475 ERC buffer and run the @code{/RECONNECT} command.
480 @node Keystroke Summary, Modules, Getting Started, Top
481 @comment node-name, next, previous, up
482 @chapter Keys Used in ERC
485 This is a summary of keystrokes available in every ERC buffer.
489 @item C-a or <home> (`erc-bol')
490 Go to beginning of line or end of prompt.
492 @item RET (`erc-send-current-line')
493 Send the current line
495 @item TAB (`erc-complete-word')
496 If at prompt, complete the current word.
497 Otherwise, move to the next link or button.
499 @item M-TAB (`ispell-complete-word')
500 Complete the given word, using ispell.
502 @item C-c C-a (`erc-bol')
503 Go to beginning of line or end of prompt.
505 @item C-c C-b (`erc-iswitchb')
506 Use `iswitchb-read-buffer' to prompt for a ERC buffer to switch to.
508 @item C-c C-c (`erc-toggle-interpret-controls')
509 Toggle interpretation of control sequences in messages.
511 @item C-c C-d (`erc-input-action')
512 Interactively input a user action and send it to IRC.
514 @item C-c C-e (`erc-toggle-ctcp-autoresponse')
515 Toggle automatic CTCP replies (like VERSION and PING).
517 @item C-c C-f (`erc-toggle-flood-control')
518 Toggle use of flood control on sent messages.
520 @item C-c TAB (`erc-invite-only-mode')
521 Turn on the invite only mode (+i) for the current channel.
523 @item C-c C-j (`erc-join-channel')
524 Join channel. If point is at the beginning of a channel name, use that
527 @item C-c C-k (`erc-go-to-log-matches-buffer')
528 Interactively open an erc-log-matches buffer
530 @item C-c C-l (`erc-save-buffer-in-logs')
531 Append buffer contents to the log file, if logging is enabled.
533 @item C-c C-n (`erc-channel-names')
534 Run "/names #channel" in the current channel.
536 @item C-c C-o (`erc-get-channel-mode-from-keypress')
537 Read a key sequence and call the corresponding channel mode function.
538 After doing @kbd{C-c C-o}, type in a channel mode letter.
540 @kbd{C-g} means quit.
541 @kbd{RET} lets you type more than one mode at a time.
542 If @kbd{l} is pressed, @code{erc-set-channel-limit} gets called.
543 If @kbd{k} is pressed, @code{erc-set-channel-key} gets called.
544 Anything else will be sent to `erc-toggle-channel-mode'.
546 @item C-c C-p (`erc-part-from-channel')
547 Part from the current channel and prompt for a reason.
549 @item C-c C-q (`erc-quit-server')
550 Disconnect from current server after prompting for reason.
552 @item C-c C-r (`erc-remove-text-properties-region')
553 Clears the region (start,end) in object from all colors, etc.
555 @item C-c C-t (`erc-set-topic')
556 Prompt for a topic for the current channel.
558 @item C-c C-u (`erc-kill-input')
559 Kill current input line using `erc-bol' followed by `kill-line'.
564 @node Modules, Advanced Usage, Keystroke Summary, Top
565 @comment node-name, next, previous, up
569 One way to add functionality to ERC is to customize which of its many
572 There is a spiffy customize interface, which may be reached by typing
573 @kbd{M-x customize-option erc-modules RET}. Alternatively, set
574 @code{erc-modules} manually and then call @code{erc-update-modules}.
576 The following is a list of available modules.
580 @cindex modules, autoaway
582 Set away status automatically
584 @cindex modules, autojoin
586 Join channels automatically
588 @cindex modules, bbdb
590 Integrate with the Big Brother Database
592 @cindex modules, button
594 Buttonize URLs, nicknames, and other text
596 @cindex modules, capab-identify
598 Mark unidentified users on freenode and other servers supporting CAPAB.
600 @cindex modules, completion
601 @cindex modules, pcomplete
602 @item completion (aka pcomplete)
603 Complete nicknames and commands (programmable)
605 @cindex modules, fill
609 @cindex modules, hecomplete
611 Complete nicknames and commands (old). This is the old module---you
612 might prefer the ``completion'' module instead.
614 @cindex modules, identd
616 Launch an identd server on port 8113
618 @cindex modules, irccontrols
620 Highlight or remove IRC control characters
626 @cindex modules, match
628 Highlight pals, fools, and other keywords
630 @cindex modules, menu
632 Display a menu in ERC buffers
634 @cindex modules, netsplit
638 @cindex modules, noncommands
640 Don't display non-IRC commands after evaluation
642 @cindex modules, notify
644 Notify when the online status of certain users changes
646 @cindex modules, page
648 Process CTCP PAGE requests from IRC
650 @cindex modules, readonly
652 Make displayed lines read-only
654 @cindex modules, replace
656 Replace text in messages
658 @cindex modules, ring
660 Enable an input history
662 @cindex modules, scrolltobottom
664 Scroll to the bottom of the buffer
666 @cindex modules, services
668 Identify to Nickserv (IRC Services) automatically
670 @cindex modules, smiley
672 Convert smileys to pretty icons
674 @cindex modules, sound
676 Play sounds when you receive CTCP SOUND requests
678 @cindex modules, spelling
680 Check spelling of messages
682 @cindex modules, stamp
684 Add timestamps to messages
686 @cindex modules, track
688 Track channel activity in the mode-line
690 @cindex modules, truncate
692 Truncate buffers to a certain size
694 @cindex modules, unmorse
696 Translate morse code in messages
700 @c PRE5_4: Document every option of every module in its own subnode
703 @node Advanced Usage, Getting Help and Reporting Bugs, Modules, Top
704 @comment node-name, next, previous, up
705 @chapter Advanced Usage
706 @cindex advanced topics
709 * Connecting:: Ways of connecting to an IRC server.
710 * Sample Configuration:: An example configuration file.
711 * Options:: Options that are available for ERC.
714 @node Connecting, Sample Configuration, Advanced Usage, Advanced Usage
715 @comment node-name, next, previous, up
716 @section Connecting to an IRC Server
719 The easiest way to connect to an IRC server is to call @kbd{M-x erc}.
720 If you want to assign this function to a keystroke, the following will
721 help you figure out its parameters.
724 Select connection parameters and run ERC.
725 Non-interactively, it takes the following keyword arguments.
732 @item @var{full-name}
735 That is, if called with the following arguments, @var{server} and
736 @var{full-name} will be set to those values, whereas
737 @code{erc-compute-port}, @code{erc-compute-nick} and
738 @code{erc-compute-full-name} will be invoked for the values of the other
742 (erc :server "irc.freenode.net" :full-name "Harry S Truman")
748 @defun erc-compute-server &optional server
749 Return an IRC server name.
751 This tries a number of increasingly more default methods until a non-nil
755 @item @var{server} (the argument passed to this function)
756 @item The @code{erc-server} option
757 @item The value of the IRCSERVER environment variable
758 @item The @code{erc-default-server} variable
763 @defopt erc-server nil
764 IRC server to use if one is not provided.
769 @defun erc-compute-port &optional port
770 Return a port for an IRC server.
772 This tries a number of increasingly more default methods until a non-nil
776 @item @var{port} (the argument passed to this function)
777 @item The @code{erc-port} option
778 @item The @code{erc-default-port} variable
784 IRC port to use if not specified.
786 This can be either a string or a number.
791 @defun erc-compute-nick &optional nick
792 Return user's IRC nick.
794 This tries a number of increasingly more default methods until a
795 non-nil value is found.
798 @item @var{nick} (the argument passed to this function)
799 @item The @code{erc-nick} option
800 @item The value of the IRCNICK environment variable
801 @item The result from the @code{user-login-name} function
807 Nickname to use if one is not provided.
809 This can be either a string, or a list of strings.
810 In the latter case, if the first nick in the list is already in use,
811 other nicks are tried in the list order.
814 @defopt erc-nick-uniquifier
815 The string to append to the nick if it is already in use.
818 @defopt erc-try-new-nick-p
819 If the nickname you chose isn't available, and this option is non-nil,
820 ERC should automatically attempt to connect with another nickname.
822 You can manually set another nickname with the /NICK command.
825 @subheading Full name
827 @defun erc-compute-full-name &optional full-name
828 Return user's full name.
830 This tries a number of increasingly more default methods until a
831 non-nil value is found.
834 @item @var{full-name} (the argument passed to this function)
835 @item The @code{erc-user-full-name} option
836 @item The value of the IRCNAME environment variable
837 @item The result from the @code{user-full-name} function
842 @defopt erc-user-full-name
845 This can be either a string or a function to call.
848 @node Sample Configuration, Options, Connecting, Advanced Usage
849 @comment node-name, next, previous, up
850 @section Sample Configuration
851 @cindex configuration, sample
853 Here is an example of configuration settings for ERC. This can go into
854 your Emacs configuration file. Everything after the @code{(require
855 'erc)} command can optionally go into @file{~/.emacs.d/.ercrc.el}.
858 ;;; Sample ERC configuration
860 ;; Add the ERC directory to load path -- you don't need this if you are
861 ;; using the version of ERC that comes with Emacs
862 (add-to-list 'load-path "~/elisp/erc")
867 ;; Load authentication info from an external source. Put sensitive
868 ;; passwords and the like in here.
869 (load "~/.emacs.d/.erc-auth")
871 ;; This is an example of how to make a new command. Type "/uptime" to
873 (defun erc-cmd-UPTIME (&rest ignore)
874 "Display the uptime of the system, as well as some load-related
875 stuff, to the current ERC buffer."
877 (replace-regexp-in-string
878 ", load average: " "] @{Load average@} ["
879 ;; Collapse spaces, remove
880 (replace-regexp-in-string
882 ;; Remove beginning and trailing whitespace
883 (replace-regexp-in-string
885 (shell-command-to-string "uptime"))))))
887 (concat "@{Uptime@} [" uname-output "]"))))
889 ;; This causes ERC to connect to the Freenode network upon hitting
890 ;; C-c e f. Replace MYNICK with your IRC nick.
891 (global-set-key "\C-cef" (lambda () (interactive)
892 (erc :server "irc.freenode.net" :port "6667"
895 ;; This causes ERC to connect to the IRC server on your own machine (if
896 ;; you have one) upon hitting C-c e b. Replace MYNICK with your IRC
897 ;; nick. Often, people like to run bitlbee (http://bitlbee.org/) as an
898 ;; AIM/Jabber/MSN to IRC gateway, so that they can use ERC to chat with
899 ;; people on those networks.
900 (global-set-key "\C-ceb" (lambda () (interactive)
901 (erc :server "localhost" :port "6667"
904 ;; Make C-c RET (or C-c C-RET) send messages instead of RET. This has
905 ;; been commented out to avoid confusing new users.
906 ;; (define-key erc-mode-map (kbd "RET") nil)
907 ;; (define-key erc-mode-map (kbd "C-c RET") 'erc-send-current-line)
908 ;; (define-key erc-mode-map (kbd "C-c C-RET") 'erc-send-current-line)
912 ;; Join the #emacs and #erc channels whenever connecting to Freenode.
913 (setq erc-autojoin-channels-alist '(("freenode.net" "#emacs" "#erc")))
915 ;; Interpret mIRC-style color commands in IRC chats
916 (setq erc-interpret-mirc-color t)
918 ;; The following are commented out by default, but users of other
919 ;; non-Emacs IRC clients might find them useful.
920 ;; Kill buffers for channels after /part
921 ;; (setq erc-kill-buffer-on-part t)
922 ;; Kill buffers for private queries after quitting the server
923 ;; (setq erc-kill-queries-on-quit t)
924 ;; Kill buffers for server messages after quitting the server
925 ;; (setq erc-kill-server-buffer-on-quit t)
928 @node Options, , Sample Configuration, Advanced Usage
929 @comment node-name, next, previous, up
933 @c PRE5_4: (Node) Document every ERC option (module options go in
936 This section has not yet been written. For now, the easiest way to
937 check out the available options for ERC is to do
938 @kbd{M-x customize-group erc RET}.
941 @node Getting Help and Reporting Bugs, History, Advanced Usage, Top
942 @comment node-name, next, previous, up
943 @chapter Getting Help and Reporting Bugs
944 @cindex help, getting
945 @cindex bugs, reporting
947 After you have read this guide, if you still have questions about ERC,
948 or if you have bugs to report, there are several places you can go.
953 @uref{http://www.emacswiki.org/cgi-bin/wiki/ERC} is the
954 emacswiki.org page for ERC. Anyone may add tips, hints, or bug
958 There are several mailing lists for ERC. To subscribe, visit
959 @uref{http://savannah.gnu.org/mail/?group=erc}.
961 The mailing lists are also available on Gmane.
962 (@url{http://gmane.org/}). Gmane provides additional methods for
963 accessing the mailing lists, adding content to them, and searching them.
966 @item gmane.emacs.erc.announce: Announcements
968 @item gmane.emacs.erc.discuss: General discussion
970 @item gmane.emacs.erc.cvs: Log messages for changes to the ERC source code
975 You can visit the IRC Freenode channel @samp{#emacs}. Many of the
976 contributors are frequently around and willing to answer your
982 @node History, Copying, Getting Help and Reporting Bugs, Top
983 @comment node-name, next, previous, up
985 @cindex history, of ERC
987 ERC was originally written by Alexander L. Belikoff
988 @email{abel@@bfr.co.il} and Sergey Berezin
989 @email{sergey.berezin@@cs.cmu.edu}. They stopped development around
990 December 1999. Their last released version was ERC 2.0.
992 P.S.: If one of the original developers of ERC reads this, we'd like to
993 receive additional information for this file and hear comments in
999 In June 2001, Mario Lang @email{mlang@@delysid.org} and Alex Schroeder
1000 @email{alex@@gnu.org} took over development and created a ERC Project at
1001 @uref{http://sourceforge.net/projects/erc}.
1003 In reaction to a mail about the new ERC development effort, Sergey
1004 Berezin said, ``First of all, I'm glad that my version of ERC is being
1005 used out there. The thing is, I do not have free time and enough
1006 incentive anymore to work on ERC, so I would be happy if you guys take
1007 over the project entirely.''
1009 So we happily hacked away on ERC, and soon after (September 2001)
1010 released the next "stable" version, 2.1.
1012 Most of the development of the new ERC happened on #emacs on
1013 irc.openprojects.net. Over time, many people contributed code, ideas,
1014 bugfixes, and a lot of alpha/beta/gamma testing.
1016 See the @file{CREDITS} file for a list of contributors.
1020 ERC 3.0 was released.
1024 ERC 4.0 was released.
1028 ERC 5.0 was released. Michael Olson @email{mwolson@@gnu.org} became
1029 the release manager and eventually the maintainer.
1031 After some discussion between him and the Emacs developers, it was
1032 decided to include ERC in Emacs.
1036 ERC 5.1 was released. It was subsequently included in Emacs 22.
1038 ERC became an official GNU project, and development moved to
1039 @uref{http://sv.gnu.org/projects/erc}. We switched to using GNU Arch as
1040 our revision control system. Our mailing list address changed as well.
1044 We switched to using git for our version control system.
1048 @node Copying, GNU Free Documentation License, History, Top
1049 @comment node-name, next, previous, up
1052 @node GNU Free Documentation License, Concept Index, Copying, Top
1053 @comment node-name, next, previous, up
1054 @include doclicense.texi
1056 @node Concept Index, , GNU Free Documentation License, Top
1057 @comment node-name, next, previous, up
1065 arch-tag: cf9cfaff-fc12-4297-ad15-ec2493002b1e