]> code.delx.au - gnu-emacs/blobdiff - man/erc.texi
* emacs.texi: Bump version number to 22.0.90.
[gnu-emacs] / man / erc.texi
index 4713afa2fbc8216d573d7acfbe8a82b1cca3055b..c4317f115117fa83bd4ed840bc8aa6ba40e371d5 100644 (file)
@@ -6,13 +6,13 @@
 
 @dircategory Emacs
 @direntry
-* ERC: (erc).  Powerful, modular, and extensible IRC client for Emacs.
+* ERC: (erc).           Powerful, modular, and extensible IRC client for Emacs.
 @end direntry
 
 @syncodeindex fn cp
 
 @copying
-This manual is for ERC version 5.1.2.
+This manual is for ERC version 5.1.4.
 
 Copyright @copyright{} 2005, 2006 Free Software Foundation, Inc.
 
@@ -68,6 +68,13 @@ Obtaining ERC
 * Releases::                    Released versions of ERC.
 * Development::                 Latest unreleased development changes.
 
+Advanced Usage
+
+* Connecting::                  Ways of connecting to an IRC server.
+* Options::                     Options that are available for ERC.
+* Tips and Tricks::             Ways of enhancing your ERC experience.
+* Sample Configuration::        An example configuration file.
+
 @end detailmenu
 @end menu
 
@@ -114,7 +121,7 @@ comes with Emacs.
 Choose to install a release if you want to minimize risk.
 
 Errors are corrected in development first.  User-visible changes will be
-announced on the @email{erc-help@@lists.sourceforge.net} mailing list.
+announced on the @email{erc-discuss@@gnu.org} mailing list.
 @pxref{Getting Help and Reporting Bugs}.
 
 @cindex releases, Debian package
@@ -124,7 +131,7 @@ available in the official Debian repository.
 
 @cindex releases, from source
 Alternatively, you can download the latest release from
-@uref{http://sourceforge.net/project/showfiles.php?group_id=30118}.
+@uref{http://ftp.gnu.org/gnu/erc}.
 
 @node Development,  , Releases, Obtaining ERC
 @comment  node-name,  next,  previous,  up
@@ -134,43 +141,13 @@ Alternatively, you can download the latest release from
 Choose the development version if you want to live on the bleeding edge
 of ERC development or try out new features before release.
 
-@subsection Using CVS
-@cindex CVS, using
-
-ERC is primarily developed using a CVS repository on sourceforge.net.
-To check out a copy of the latest changes, do the following.
-
-@example
-cvs -d:pserver:anonymous@@cvs.sourceforge.net:/cvsroot/erc login
-cvs -z3 -d:pserver:anonymous@@cvs.sourceforge.net:/cvsroot/erc co -P erc
-@end example
-
-@cindex CVS snapshot
-Alternatively, the latest CVS snapshot may be downloaded in the
-following forms.
-
-@itemize @bullet
-@item http://mwolson.org/static/dist/erc-latest.tar.gz
-@item http://mwolson.org/static/dist/erc-latest.zip
-@end itemize
-
-@subsection Using the GNU Arch Revision Control System
-@cindex arch revision control system, using
-The Arch revision control system allows you to retrieve previous
-versions and select specific features and bug fixes.
-
-Michael Olson maintains an official Arch branch for ERC which stays
-current with the CVS repository for ERC.  If you would like to
-contribute to ERC development, and would prefer to use a modern Revision
-Control System, feel free to make your own branch.
+@subheading GNU Arch
 
-If you are new to Arch, you might find this tutorial helpful:
-@uref{http://www.mwolson.org/projects/ArchTutorial.html}.
-
-Downloading ERC with Arch and staying up-to-date involves the following
-steps.
+ERC is developed using GNU Arch.  Downloading ERC with Arch and staying
+up-to-date involves the following steps.
 
 @enumerate
+@cindex GNU Arch, installing
 @item Install arch
 
 @itemize @bullet
@@ -178,15 +155,16 @@ steps.
 @item Other distributions: see @uref{ftp://ftp.gnu.org/gnu/gnu-arch/}.
 @end itemize
 
+@cindex GNU Arch, downloading ERC
 @item Register the archive.
 @example
-tla register-archive -f http://www.mwolson.org/archives/2006
+tla register-archive -f http://arch.sv.gnu.org/archives/erc/erc
 @end example
 
 @item Download the ERC source code.
 @example
 # Download ERC into the @file{erc} directory.
-tla get mwolson@@gnu.org--2006/erc--cvs--0 erc
+tla get erc@@sv.gnu.org/erc--main--0 erc
 @end example
 
 @item List upstream changes that are missing from your local copy.
@@ -201,24 +179,29 @@ cd erc/
 tla missing --summary
 @end example
 
-@cindex updating ERC with Arch
+@cindex GNU Arch, updating ERC
 @item Update to the latest version by replaying missing changes.
 @example
 cd erc
-tla replay
+tla update
 @end example
 
 @end enumerate
 
-There are other ways to interact with the ERC archive.
+If you are new to Arch and want to learn more about developing with it,
+you might find this tutorial helpful:
+@uref{http://www.mwolson.org/projects/ArchTutorial.html}.
+
+@subheading Development snapshots
 
-@itemize
-@item Browse arch repository: @uref{http://www.mwolson.org/archives/}
-@item Latest development snapshot: @uref{http://www.mwolson.org/static/dist/erc-latest.tar.gz}
-@end itemize
+@cindex development snapshot
+Alternatively, the latest development snapshot may be downloaded in both
+``.tar.gz'' and ``.zip'' forms.
 
-The latest development snapshot will be kept up-to-date since it is
-updated at the same time as the Arch repository.
+@itemize @bullet
+@item @uref{http://www.mwolson.org/static/dist/erc-latest.tar.gz}
+@item @uref{http://www.mwolson.org/static/dist/erc-latest.zip}
+@end itemize
 
 
 @node Installation, Getting Started, Obtaining ERC, Top
@@ -282,15 +265,13 @@ locations that require this.
 
 To use ERC, add the directory containing its files to your
 @code{load-path} variable, in your @file{.emacs} file.  Then, load ERC
-itself along with any extra modules you desire.  An example follows.
+itself.  An example follows.
 
 @lisp
 (require 'erc)
-
-(require 'erc-spelling)
 @end lisp
 
-Once this is loaded, the command @kbd{M-x erc-select} will start ERC and
+Once ERC is loaded, the command @kbd{M-x erc-select} will start ERC and
 prompt for the server to connect to.
 
 @c PRE5_2: Sample session, including:
@@ -362,12 +343,12 @@ Run "/names #channel" in the current channel.
 
 @item C-c C-o (`erc-get-channel-mode-from-keypress')
 Read a key sequence and call the corresponding channel mode function.
-After doing C-c C-o type in a channel mode letter.
+After doing @kbd{C-c C-o}, type in a channel mode letter.
 
-C-g means quit.
-RET let's you type more than one mode at a time.
-If "l" is pressed, `erc-set-channel-limit' gets called.
-If "k" is pressed, `erc-set-channel-key' gets called.
+@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 `erc-toggle-channel-mode'.
 
 @item C-c C-p (`erc-part-from-channel')
@@ -406,7 +387,7 @@ The following is a list of available modules.
 
 @cindex modules, autoaway
 @item autoaway
-Set away status automatically.
+Set away status automatically
 
 @cindex modules, autojoin
 @item autojoin
@@ -420,14 +401,31 @@ Integrate with the Big Brother Database
 @item button
 Buttonize URLs, nicknames, and other text
 
+@cindex modules, completion
+@item pcomplete
+Complete nicknames and commands (programmable)
+
 @cindex modules, fill
 @item fill
 Wrap long lines
 
+@cindex modules, hecomplete
+@item completion
+Complete nicknames and commands (old).  This is the old module---you
+might prefer the ``completion'' module instead.
+
+@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, list
+@item list
+List channels nicely in a separate buffer
+
 @cindex modules, log
 @item log
 Save buffers in logs
@@ -448,9 +446,9 @@ Don't display non-IRC commands after evaluation
 @item notify
 Notify when the online status of certain users changes
 
-@cindex modules, pcomplete
-@item pcomplete
-Complete nicknames and commands (programmable)
+@cindex modules, page
+@item page
+Process CTCP PAGE requests from IRC
 
 @cindex modules, readonly
 @item readonly
@@ -480,9 +478,9 @@ Convert smileys to pretty icons
 @item sound
 Play sounds when you receive CTCP SOUND requests
 
-@cindex modules, spell
-@item spell
-Check spelling
+@cindex modules, spelling
+@item spelling
+Check spelling of messages
 
 @cindex modules, stamp
 @item stamp
@@ -510,14 +508,175 @@ Translate morse code in messages
 @chapter Advanced Usage
 @cindex advanced topics
 
-Write me.
+@menu
+* Connecting::                  Ways of connecting to an IRC server.
+* Options::                     Options that are available for ERC.
+* Tips and Tricks::             Ways of enhancing your ERC experience.
+* Sample Configuration::        An example configuration file.
+@end menu
+
+@node Connecting, Options, Advanced Usage, Advanced Usage
+@comment  node-name,  next,  previous,  up
+@section Connecting to an IRC Server
+@cindex connecting
+
+The easiest way to connect to an IRC server is to call
+@kbd{M-x erc-select}.  If you want to assign this function to a
+keystroke, the following will help you figure out its parameters.
+
+@defun erc-select
+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-select :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-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 nil
+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-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-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-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-nil,
+ERC should automatically attempt to connect with another nickname.
+
+You can manually set another nickname with the /NICK command.
+@end defopt
+
+@subheading Full name
 
-@c PRE5_2: (Node) Document every ERC option
+@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-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 Options, Tips and Tricks, Connecting, Advanced Usage
+@comment  node-name,  next,  previous,  up
+@section Options
+@cindex options
+
+@c PRE5_2: (Node) Document every ERC option (module options go in
+@c previous chapter)
+
+This section has not yet been written.
+
+@node Tips and Tricks, Sample Configuration, Options, Advanced Usage
+@comment  node-name,  next,  previous,  up
+@section Tips and Tricks
+@cindex tips and tricks
 
 @c PRE5_2: (Node) Tips and tricks
 
+This section has not yet been written.
+
+@node Sample Configuration, , Tips and Tricks, Advanced Usage
+@comment  node-name,  next,  previous,  up
+@section Sample Configuration
+@cindex configuration, sample
+
 @c PRE5_2: (Node) Sample configs
 
+This section has not yet been written.
+
 
 @node Getting Help and Reporting Bugs, History, Advanced Usage, Top
 @comment  node-name,  next,  previous,  up
@@ -536,14 +695,24 @@ emacswiki.org page for ERC.  Anyone may add tips, hints, or bug
 descriptions to it.
 
 @item
-You can join the mailing list at @email{erc-help@@lists.sourceforge.net}
-using the subscription form at
-@uref{http://lists.sourceforge.net/lists/listinfo/erc-help}.
+There are several mailing lists for ERC.  To subscribe, visit
+@uref{http://savannah.gnu.org/mail/?group=erc}.
+
+The mailing lists are also available on Gmane.
+(@url{http://gmane.org/}).  Gmane provides additional methods for
+accessing the mailing lists, adding content to them, and searching them.
 
-This mailing list is also available via Gmane
-(@url{http://gmane.org/}). The group is called
-@samp{gmane.emacs.erc.general}.  This provides additional methods for
-accessing the mailing list, adding content to it, and searching it.
+@enumerate
+@item gmane.emacs.erc.announce
+Announcements
+
+@item gmane.emacs.erc.discuss
+General discussion
+
+@item gmane.emacs.erc.cvs
+Log messages for changes to the ERC source code
+
+@end enumerate
 
 @item
 You can visit the IRC Freenode channel @samp{#emacs}. Many of the
@@ -561,7 +730,7 @@ questions.
 ERC was originally written by Alexander L. Belikoff
 @email{abel@@bfr.co.il} and Sergey Berezin
 @email{sergey.berezin@@cs.cmu.edu}.  They stopped development around
-december 1999. Their last released version was ERC 2.0.
+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
@@ -572,42 +741,46 @@ general.
 
 In June 2001, Mario Lang @email{mlang@@delysid.org} and Alex Schroeder
 @email{alex@@gnu.org} took over development and created a ERC Project at
-sourceforge.net.
+@uref{http://sourceforge.net/projects/erc}.
 
-In reaction to a mail about the new erc development, 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."
+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)
+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 happend on #emacs on
-irc.openprojects.net. Over time, many people contributed code, ideas,
-bugfixes. And not to forget alot of alpha/beta/gamma testing.
+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 is released.
+ERC 3.0 was released.
 
 @item 2004
 
-ERC 4.0 is released.
+ERC 4.0 was released.
 
 @item 2005
 
-ERC 5.0 is released.  Michael Olson @email{mwolson@@gnu.org} becomes
+ERC 5.0 was released.  Michael Olson @email{mwolson@@gnu.org} became
 the release manager and eventually the maintainer.
 
-After some discussion between him and the Emacs developers, it is
+After some discussion between him and the Emacs developers, it was
 decided to include ERC in Emacs.
 
 @item 2006
 
-ERC 5.1 is released.  It is subsequently included in Emacs 22.
+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.
 
 @end itemize