123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902 |
- \input texinfo
- @c %**start of header
- @setfilename ../../info/erc.info
- @settitle ERC Manual
- @include docstyle.texi
- @syncodeindex fn cp
- @include emacsver.texi
- @c %**end of header
- @copying
- This manual is for ERC as distributed with Emacs @value{EMACSVER}.
- Copyright @copyright{} 2005--2017 Free Software Foundation, Inc.
- @quotation
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.3 or
- any later version published by the Free Software Foundation; with no
- Invariant Sections, with the Front-Cover Texts being ``A GNU Manual,''
- and with the Back-Cover Texts as in (a) below. A copy of the license
- is included in the section entitled ``GNU Free Documentation License''.
- (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
- modify this GNU manual.''
- All Emacs Lisp code contained in this document may be used, distributed,
- and modified without restriction.
- @end quotation
- @end copying
- @dircategory Emacs network features
- @direntry
- * ERC: (erc). Powerful and extensible IRC client for Emacs.
- @end direntry
- @titlepage
- @title ERC manual
- @subtitle a full-featured IRC client
- @subtitle for Emacs and XEmacs
- @c The following two commands
- @c start the copyright page.
- @page
- @vskip 0pt plus 1filll
- @insertcopying
- @end titlepage
- @contents
- @ifnottex
- @node Top
- @top ERC
- @insertcopying
- @end ifnottex
- @menu
- * Introduction:: What is ERC?
- * Getting Started:: Quick Start guide to using ERC.
- * Keystroke Summary:: Keystrokes used in ERC buffers.
- * Modules:: Available modules for ERC.
- * Advanced Usage:: Cool ways of using ERC.
- * Getting Help and Reporting Bugs::
- * History:: The history of ERC.
- * GNU Free Documentation License:: The license for this documentation.
- * Concept Index:: Search for terms.
- @detailmenu
- --- The Detailed Node Listing ---
- Getting Started
- * Sample Session:: Example of connecting to the #emacs channel
- * Special Features:: Differences from standalone IRC clients
- Advanced Usage
- * Connecting:: Ways of connecting to an IRC server.
- * Sample Configuration:: An example configuration file.
- * Options:: Options that are available for ERC.
- @end detailmenu
- @end menu
- @node Introduction
- @chapter Introduction
- ERC is a powerful, modular, and extensible IRC client for Emacs.
- It is distributed with Emacs since version 22.1.
- It comes with the following capabilities enabled by default.
- @itemize @bullet
- @item Flood control
- @item Timestamps
- @item Join channels automatically
- @item Buttonize URLs, nicknames, and other text
- @item Wrap long lines
- @item Highlight or remove IRC control characters
- @item Highlight pals, fools, and other keywords
- @item Detect netsplits
- @item Complete nicknames and commands in a programmable fashion
- @item Make displayed lines read-only
- @item Input history
- @item Track channel activity in the mode-line
- @end itemize
- @node Getting Started
- @chapter Getting Started
- @cindex settings
- The command @kbd{M-x erc} will start ERC and prompt for the server to
- connect to.
- If you want to place ERC settings in their own file, you can place them
- in @file{~/.emacs.d/.ercrc.el}, creating it if necessary.
- If you would rather use the Customize interface to change how ERC works,
- do @kbd{M-x customize-group RET erc RET}. In particular, ERC comes with
- lots of modules that may be enabled or disabled; to select which ones
- you want, do @kbd{M-x customize-variable RET erc-modules RET}.
- @menu
- * Sample Session:: Example of connecting to the #emacs channel
- * Special Features:: Differences from standalone IRC clients
- @end menu
- @node Sample Session
- @section Sample Session
- This is an example ERC session which shows how to connect to the #emacs
- channel on Freenode. Another IRC channel on Freenode that may be of
- interest is #erc, which is a channel where ERC users and developers hang
- out.
- @itemize @bullet
- @item Connect to Freenode
- Run @kbd{M-x erc}. Use ``irc.freenode.net'' as the IRC server, ``6667''
- as the port, and choose a nickname.
- @item Get used to the interface
- Switch to the ``irc.freenode.net:6667'' buffer, if you're not already
- there. You will see first some messages about checking for ident, and
- then a bunch of other messages that describe the current IRC server.
- @item Join the #emacs channel
- In that buffer, type ``/join @key{SPC} #emacs'' and hit @kbd{RET}. Depending
- on how you've set up ERC, either a new buffer for ``#emacs'' will be
- displayed, or a new buffer called ``#emacs'' will be created in the
- background. If the latter, switch to the ``#emacs'' buffer. You will
- see the channel topic and a list of the people who are currently on the
- channel.
- @item Register your nickname with Freenode
- If you would like to be able to talk with people privately on the
- Freenode network, you will have to ``register'' your nickname. To do
- so, switch to the ``irc.freenode.net:6667'' buffer and type ``/msg
- NickServ register <password>'', replacing ``<password>'' with your
- desired password. It should tell you that the operation was successful.
- @item Talk to people in the channel
- If you switch back to the ``#emacs'' buffer, you can type a message, and
- everyone on the channel will see it.
- @item Open a query buffer to talk to someone
- If you want to talk with someone in private (this should usually not be
- done for technical help, only for personal questions), type ``/query
- <nick>'', replacing ``<nick>'' with the nickname of the person you would
- like to talk to. Depending on how ERC is set up, you will either see a
- new buffer with the name of the person, or such a buffer will be created
- in the background and you will have to switch to it. Begin typing
- messages, and you will be able to have a conversation.
- Note that if the other person is not registered, you will not be able to
- talk with them.
- @end itemize
- @node Special Features
- @section Special Features
- ERC has some features that distinguish it from some IRC clients.
- @itemize @bullet
- @item multiple channels and multiple servers
- Every channel is put in a separate buffer. Several IRC servers may be
- connected to at the same time.
- @cindex query buffers
- @item private message separation
- Private conversations are treated as channels, and are put into separate
- buffers in Emacs. We call these ``query buffers''.
- @item highlighting
- Some occurrences of words can be highlighted, which makes it easier to
- track different kinds of conversations.
- @item notification
- ERC can notify you that certain users are online.
- @item channel tracking
- Channels can be hidden and conversation continue in the background. You
- are notified when something is said in such a channel that is not
- currently visible. This makes it easy to get Real Work done while still
- maintaining an IRC presence.
- @item nick completion
- ERC can complete words upon hitting @kbd{TAB}, which eases the writing
- of nicknames in messages.
- @cindex history ring
- @item history
- Past actions are kept in history rings for future use. To navigate a
- history ring, hit @kbd{M-p} to go backwards and @kbd{M-n} to go
- forwards.
- @item multiple languages
- Different channels and servers may have different language encodings.
- multiple languages. Please contact the Emacs developers
- if you are interested in helping with the
- translation effort.
- @item user scripting
- Users can load scripts (e.g., auto greeting scripts) when ERC starts up.
- It is also possible to make custom IRC commands, if you know a little
- Emacs Lisp. Just make an Emacs Lisp function and call it
- @code{erc-cmd-NEWCOMMAND}, where @code{NEWCOMMAND} is the name of the
- new command in capital letters.
- @item auto reconnect
- If the connection goes away at some point, ERC will try to reconnect
- automatically. If it fails to reconnect, and you want to try to
- manually reestablish the connection at some later point, switch to an
- ERC buffer and run the @code{/RECONNECT} command.
- @end itemize
- @node Keystroke Summary
- @chapter Keys Used in ERC
- @cindex keystrokes
- This is a summary of keystrokes available in every ERC buffer.
- @table @kbd
- @item C-a or <home> (@code{erc-bol})
- Go to beginning of line or end of prompt.
- @item RET (@code{erc-send-current-line})
- Send the current line
- @item TAB (@code{erc-complete-word})
- If at prompt, complete the current word.
- Otherwise, move to the next link or button.
- @item M-TAB (@code{ispell-complete-word})
- Complete the given word, using ispell.
- @item C-c C-a (@code{erc-bol})
- Go to beginning of line or end of prompt.
- @item C-c C-b (@code{erc-iswitchb})
- Use @code{iswitchb-read-buffer} to prompt for a ERC buffer to switch to.
- @item C-c C-c (@code{erc-toggle-interpret-controls})
- Toggle interpretation of control sequences in messages.
- @item C-c C-d (@code{erc-input-action})
- Interactively input a user action and send it to IRC.
- @item C-c C-e (@code{erc-toggle-ctcp-autoresponse})
- Toggle automatic CTCP replies (like VERSION and PING).
- @item C-c C-f (@code{erc-toggle-flood-control})
- Toggle use of flood control on sent messages.
- @item C-c TAB (@code{erc-invite-only-mode})
- Turn on the invite only mode (+i) for the current channel.
- @item C-c C-j (@code{erc-join-channel})
- Join channel. If point is at the beginning of a channel name, use that
- as default.
- @item C-c C-k (@code{erc-go-to-log-matches-buffer})
- Interactively open an erc-log-matches buffer
- @item C-c C-l (@code{erc-save-buffer-in-logs})
- Append buffer contents to the log file, if logging is enabled.
- @item C-c C-n (@code{erc-channel-names})
- Run "/names #channel" in the current channel.
- @item C-c C-o (@code{erc-get-channel-mode-from-keypress})
- Read a key sequence and call the corresponding channel mode function.
- After doing @kbd{C-c C-o}, type in a channel mode letter.
- @kbd{C-g} means quit.
- @kbd{RET} lets you type more than one mode at a time.
- If @kbd{l} is pressed, @code{erc-set-channel-limit} gets called.
- If @kbd{k} is pressed, @code{erc-set-channel-key} gets called.
- Anything else will be sent to @code{erc-toggle-channel-mode}.
- @item C-c C-p (@code{erc-part-from-channel})
- Part from the current channel and prompt for a reason.
- @item C-c C-q (@code{erc-quit-server})
- Disconnect from current server after prompting for reason.
- @item C-c C-r (@code{erc-remove-text-properties-region})
- Clears the region (start,end) in object from all colors, etc.
- @item C-c C-t (@code{erc-set-topic})
- Prompt for a topic for the current channel.
- @item C-c C-u (@code{erc-kill-input})
- Kill current input line using @code{erc-bol} followed by @code{kill-line}.
- @end table
- @node Modules
- @chapter Modules
- @cindex modules
- One way to add functionality to ERC is to customize which of its many
- modules are loaded.
- There is a spiffy customize interface, which may be reached by typing
- @kbd{M-x customize-option erc-modules RET}. Alternatively, set
- @code{erc-modules} manually and then call @code{erc-update-modules}.
- The following is a list of available modules.
- @table @code
- @cindex modules, autoaway
- @item autoaway
- Set away status automatically
- @cindex modules, autojoin
- @item autojoin
- Join channels automatically
- @cindex modules, bbdb
- @item bbdb
- Integrate with the Big Brother Database
- @cindex modules, button
- @item button
- Buttonize URLs, nicknames, and other text
- @cindex modules, capab-identify
- @item capab-identify
- Mark unidentified users on freenode and other servers supporting CAPAB.
- @cindex modules, completion
- @cindex modules, pcomplete
- @item completion (aka pcomplete)
- Complete nicknames and commands (programmable)
- @cindex modules, fill
- @item fill
- Wrap long lines
- @cindex modules, identd
- @item identd
- Launch an identd server on port 8113
- @cindex modules, irccontrols
- @item irccontrols
- Highlight or remove IRC control characters
- @cindex modules, log
- @item log
- Save buffers in logs
- @cindex modules, match
- @item match
- Highlight pals, fools, and other keywords
- @cindex modules, menu
- @item menu
- Display a menu in ERC buffers
- @cindex modules, netsplit
- @item netsplit
- Detect netsplits
- @cindex modules, noncommands
- @item noncommands
- Don't display non-IRC commands after evaluation
- @cindex modules, notify
- @item notify
- Notify when the online status of certain users changes
- @cindex modules, notifications
- @item notifications
- Send you a notification when you get a private message,
- or your nickname is mentioned
- @cindex modules, page
- @item page
- Process CTCP PAGE requests from IRC
- @cindex modules, readonly
- @item readonly
- Make displayed lines read-only
- @cindex modules, replace
- @item replace
- Replace text in messages
- @cindex modules, ring
- @item ring
- Enable an input history
- @cindex modules, scrolltobottom
- @item scrolltobottom
- Scroll to the bottom of the buffer
- @cindex modules, services
- @item services
- Identify to Nickserv (IRC Services) automatically
- @cindex modules, smiley
- @item smiley
- Convert smileys to pretty icons
- @cindex modules, sound
- @item sound
- Play sounds when you receive CTCP SOUND requests
- @cindex modules, spelling
- @item spelling
- Check spelling of messages
- @cindex modules, stamp
- @item stamp
- Add timestamps to messages
- @cindex modules, track
- @item track
- Track channel activity in the mode-line
- @cindex modules, truncate
- @item truncate
- Truncate buffers to a certain size
- @cindex modules, unmorse
- @item unmorse
- Translate morse code in messages
- @end table
- @c PRE5_4: Document every option of every module in its own subnode
- @node Advanced Usage
- @chapter Advanced Usage
- @cindex advanced topics
- @menu
- * Connecting:: Ways of connecting to an IRC server.
- * Sample Configuration:: An example configuration file.
- * Options:: Options that are available for ERC.
- @end menu
- @node Connecting
- @section Connecting to an IRC Server
- @cindex connecting
- The easiest way to connect to an IRC server is to call @kbd{M-x erc}.
- If you want to assign this function to a keystroke, the following will
- help you figure out its parameters.
- @defun erc
- Select connection parameters and run ERC@.
- Non-interactively, it takes the following keyword arguments.
- @itemize @bullet
- @item @var{server}
- @item @var{port}
- @item @var{nick}
- @item @var{password}
- @item @var{full-name}
- @end itemize
- That is, if called with the following arguments, @var{server} and
- @var{full-name} will be set to those values, whereas
- @code{erc-compute-port}, @code{erc-compute-nick} and
- @code{erc-compute-full-name} will be invoked for the values of the other
- parameters.
- @example
- (erc :server "irc.freenode.net" :full-name "Harry S Truman")
- @end example
- @end defun
- @subheading Server
- @defun erc-compute-server &optional server
- Return an IRC server name.
- This tries a number of increasingly more default methods until a non-@code{nil}
- value is found.
- @itemize @bullet
- @item @var{server} (the argument passed to this function)
- @item The @code{erc-server} option
- @item The value of the IRCSERVER environment variable
- @item The @code{erc-default-server} variable
- @end itemize
- @end defun
- @defopt erc-server
- IRC server to use if one is not provided.
- @end defopt
- @subheading Port
- @defun erc-compute-port &optional port
- Return a port for an IRC server.
- This tries a number of increasingly more default methods until a non-@code{nil}
- value is found.
- @itemize @bullet
- @item @var{port} (the argument passed to this function)
- @item The @code{erc-port} option
- @item The @code{erc-default-port} variable
- @end itemize
- @end defun
- @defopt erc-port
- IRC port to use if not specified.
- This can be either a string or a number.
- @end defopt
- @subheading Nick
- @defun erc-compute-nick &optional nick
- Return user's IRC nick.
- This tries a number of increasingly more default methods until a
- non-@code{nil} value is found.
- @itemize
- @item @var{nick} (the argument passed to this function)
- @item The @code{erc-nick} option
- @item The value of the IRCNICK environment variable
- @item The result from the @code{user-login-name} function
- @end itemize
- @end defun
- @defopt erc-nick
- Nickname to use if one is not provided.
- This can be either a string, or a list of strings.
- In the latter case, if the first nick in the list is already in use,
- other nicks are tried in the list order.
- @end defopt
- @defopt erc-format-nick-function
- A function to format a nickname for message display
- You can set this to @code{erc-format-@@nick} to display user mode prefix
- @end defopt
- @example
- (setq erc-format-nick-function 'erc-format-@@nick)
- @end example
- @defopt erc-nick-uniquifier
- The string to append to the nick if it is already in use.
- @end defopt
- @defopt erc-try-new-nick-p
- If the nickname you chose isn't available, and this option is non-@code{nil},
- ERC should automatically attempt to connect with another nickname.
- You can manually set another nickname with the /NICK command.
- @end defopt
- @subheading Password
- @cindex password
- @defopt erc-prompt-for-password
- If non-@code{nil} (the default), @kbd{M-x erc} prompts for a password.
- @end defopt
- If you prefer, you can set this option to @code{nil} and use the
- @code{auth-source} mechanism to store your password. For instance, if
- you use @file{~/.authinfo} as your auth-source backend, then put
- something like the following in that file:
- @example
- machine irc.example.net login "#fsf" password sEcReT
- @end example
- @noindent
- ERC also consults @code{auth-source} to find any channel keys required
- for the channels that you wish to autojoin, as specified by the
- variable @code{erc-autojoin-channels-alist}.
- For more details, @pxref{Top,,auth-source, auth, Emacs auth-source Library}.
- @subheading Full name
- @defun erc-compute-full-name &optional full-name
- Return user's full name.
- This tries a number of increasingly more default methods until a
- non-@code{nil} value is found.
- @itemize @bullet
- @item @var{full-name} (the argument passed to this function)
- @item The @code{erc-user-full-name} option
- @item The value of the IRCNAME environment variable
- @item The result from the @code{user-full-name} function
- @end itemize
- @end defun
- @defopt erc-user-full-name
- User full name.
- This can be either a string or a function to call.
- @end defopt
- @node Sample Configuration
- @section Sample Configuration
- @cindex configuration, sample
- Here is an example of configuration settings for ERC@. This can go into
- your Emacs configuration file. Everything after the @code{(require
- 'erc)} command can optionally go into @file{~/.emacs.d/.ercrc.el}.
- @lisp
- ;;; Sample ERC configuration
- ;; Load authentication info from an external source. Put sensitive
- ;; passwords and the like in here.
- (load "~/.emacs.d/.erc-auth")
- ;; This is an example of how to make a new command. Type "/uptime" to
- ;; use it.
- (defun erc-cmd-UPTIME (&rest ignore)
- "Display the uptime of the system, as well as some load-related
- stuff, to the current ERC buffer."
- (let ((uname-output
- (replace-regexp-in-string
- ", load average: " "] @{Load average@} ["
- ;; Collapse spaces, remove
- (replace-regexp-in-string
- " +" " "
- ;; Remove beginning and trailing whitespace
- (replace-regexp-in-string
- "^ +\\|[ \n]+$" ""
- (shell-command-to-string "uptime"))))))
- (erc-send-message
- (concat "@{Uptime@} [" uname-output "]"))))
- ;; This causes ERC to connect to the Freenode network upon hitting
- ;; C-c e f. Replace MYNICK with your IRC nick.
- (global-set-key "\C-cef" (lambda () (interactive)
- (erc :server "irc.freenode.net" :port "6667"
- :nick "MYNICK")))
- ;; This causes ERC to connect to the IRC server on your own machine (if
- ;; you have one) upon hitting C-c e b. Replace MYNICK with your IRC
- ;; nick. Often, people like to run bitlbee (http://bitlbee.org/) as an
- ;; AIM/Jabber/MSN to IRC gateway, so that they can use ERC to chat with
- ;; people on those networks.
- (global-set-key "\C-ceb" (lambda () (interactive)
- (erc :server "localhost" :port "6667"
- :nick "MYNICK")))
- ;; Make C-c RET (or C-c C-RET) send messages instead of RET. This has
- ;; been commented out to avoid confusing new users.
- ;; (define-key erc-mode-map (kbd "RET") nil)
- ;; (define-key erc-mode-map (kbd "C-c RET") 'erc-send-current-line)
- ;; (define-key erc-mode-map (kbd "C-c C-RET") 'erc-send-current-line)
- ;;; Options
- ;; Join the #emacs and #erc channels whenever connecting to Freenode.
- (setq erc-autojoin-channels-alist '(("freenode.net" "#emacs" "#erc")))
- ;; Rename server buffers to reflect the current network name instead
- ;; of SERVER:PORT (e.g., "freenode" instead of "irc.freenode.net:6667").
- ;; This is useful when using a bouncer like ZNC where you have multiple
- ;; connections to the same server.
- (setq erc-rename-buffers t)
- ;; Interpret mIRC-style color commands in IRC chats
- (setq erc-interpret-mirc-color t)
- ;; The following are commented out by default, but users of other
- ;; non-Emacs IRC clients might find them useful.
- ;; Kill buffers for channels after /part
- ;; (setq erc-kill-buffer-on-part t)
- ;; Kill buffers for private queries after quitting the server
- ;; (setq erc-kill-queries-on-quit t)
- ;; Kill buffers for server messages after quitting the server
- ;; (setq erc-kill-server-buffer-on-quit t)
- @end lisp
- @node Options
- @section Options
- @cindex options
- @c PRE5_4: (Node) Document every ERC option (module options go in
- @c previous chapter)
- This section is extremely incomplete. For now, the easiest way to
- check out all the available options for ERC is to do
- @kbd{M-x customize-group erc RET}.
- @defopt erc-hide-list
- If non, @code{nil}, this is a list of IRC message types to hide, e.g.:
- @example
- (setq erc-hide-list '("JOIN" "PART" "QUIT"))
- @end example
- @end defopt
- @defopt erc-network-hide-list
- If non, @code{nil}, this is a list of IRC networks and message types
- to hide, e.g.:
- @example
- (setq erc-network-hide-list (("freenode" "JOIN" "PART" "QUIT")
- ("OFTC" "JOIN" "PART""))
- @end example
- @end defopt
- @defopt erc-channel-hide-list
- If non, @code{nil}, this is a list of IRC channels and message types
- to hide, e.g.:
- @example
- (setq erc-channel-hide-list (("#erc" "JOIN" "PART" "QUIT")
- ("#emacs" "NICK"))
- @end example
- @end defopt
- @defopt erc-lurker-hide-list
- Like @code{erc-hide-list}, but only applies to messages sent by
- lurkers. The function @code{erc-lurker-p} determines whether a given
- nickname is considered a lurker.
- @end defopt
- @defopt erc-rename-buffers
- If non, @code{nil}, this will rename server buffers to reflect the
- current network name instead of IP:PORT
- @example
- (setq erc-rename-buffers t)
- @end example
- @end defopt
- @node Getting Help and Reporting Bugs
- @chapter Getting Help and Reporting Bugs
- @cindex help, getting
- @cindex bugs, reporting
- After you have read this guide, if you still have questions about ERC,
- or if you have bugs to report, there are several places you can go.
- @itemize @bullet
- @item
- @uref{http://www.emacswiki.org/cgi-bin/wiki/ERC} is the
- emacswiki.org page for ERC@. Anyone may add tips, hints, etc.@: to it.
- @item
- You can ask questions about using ERC on the Emacs mailing list,
- @uref{http://lists.gnu.org/mailman/listinfo/help-gnu-emacs}.
- @item
- You can visit the IRC Freenode channel @samp{#emacs}. Many of the
- contributors are frequently around and willing to answer your
- questions.
- @item
- To report a bug in ERC, use @kbd{M-x report-emacs-bug}.
- @end itemize
- @node History
- @chapter History
- @cindex history, of ERC
- @c abel@@bfr.co.il, sergey.berezin@@cs.cmu.edu
- ERC was originally written by Alexander L. Belikoff and Sergey Berezin.
- They stopped development around
- December 1999. Their last released version was ERC 2.0.
- P.S.: If one of the original developers of ERC reads this, we'd like to
- receive additional information for this file and hear comments in
- general.
- @itemize
- @item 2001
- @c mlang@@delysid.org, alex@@gnu.org
- In June 2001, Mario Lang and Alex Schroeder
- took over development and created a ERC Project at
- @uref{http://sourceforge.net/projects/erc}.
- In reaction to a mail about the new ERC development effort, Sergey
- Berezin said, ``First of all, I'm glad that my version of ERC is being
- used out there. The thing is, I do not have free time and enough
- incentive anymore to work on ERC, so I would be happy if you guys take
- over the project entirely.''
- So we happily hacked away on ERC, and soon after (September 2001)
- released the next "stable" version, 2.1.
- Most of the development of the new ERC happened on #emacs on
- irc.openprojects.net. Over time, many people contributed code, ideas,
- bugfixes, and a lot of alpha/beta/gamma testing.
- See the @file{CREDITS} file for a list of contributors.
- @item 2003
- ERC 3.0 was released.
- @item 2004
- ERC 4.0 was released.
- @item 2005
- @c mwolson@@gnu.org
- ERC 5.0 was released. Michael Olson became
- the release manager and eventually the maintainer.
- After some discussion between him and the Emacs developers, it was
- decided to include ERC in Emacs.
- @item 2006
- ERC 5.1 was released. It was subsequently included in Emacs 22.
- ERC became an official GNU project, and development moved to
- @uref{http://sv.gnu.org/projects/erc}. We switched to using GNU Arch as
- our revision control system. Our mailing list address changed as well.
- @item 2007
- We switched to using git for our version control system.
- @item 2009+
- Since about 2009, ERC is no longer developed as a separate project, but
- is maintained as part of Emacs.
- @end itemize
- @node GNU Free Documentation License
- @appendix GNU Free Documentation License
- @include doclicense.texi
- @node Concept Index
- @unnumbered Index
- @printindex cp
- @bye
|