3 @setfilename ../../info/rcirc
8 Copyright @copyright{} 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
11 Permission is granted to copy, distribute and/or modify this document
12 under the terms of the GNU Free Documentation License, Version 1.3 or
13 any later version published by the Free Software Foundation; with no
14 Invariant Sections, with the Front-Cover texts being ``A GNU Manual'',
15 and with the Back-Cover Texts as in (a) below. A copy of the license is
16 included in the section entitled ``GNU Free Documentation License''.
18 (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
19 modify this GNU manual. Buying copies from the FSF supports it in
20 developing GNU and promoting software freedom.''
26 * Rcirc: (rcirc). Internet Relay Chat (IRC) client.
32 @vskip 0pt plus 1filll
39 @node Top, Basics, (dir), (dir)
42 @code{rcirc} is an Emacs IRC client.
44 IRC (Internet Relay Chat) is a multi-user chat protocol. Users
45 communicate with each other in real-time. Communication occurs both in
46 topic channels which are collections of many users, or privately, with
56 * Fighting Information Overload::
57 * Hacking and Tweaking::
58 * GNU Free Documentation License::
64 --- The Detailed Node Listing ---
68 * Internet Relay Chat::
69 * Getting started with rcirc::
74 * Useful IRC commands::
77 Fighting Information Overload
86 * Skipping /away messages using handlers::
87 * Using fly spell mode::
88 * Scrolling conservatively::
89 * Changing the time stamp format::
90 * Defining a new command::
91 * Reconnecting after you have lost the connection::
96 @node Basics, Reference, Top, Top
99 This chapter contains a brief introduction to IRC (Internet Relay Chat),
100 and a quick tutorial on @code{rcirc}.
103 * Internet Relay Chat::
104 * Getting started with rcirc::
107 @node Internet Relay Chat, Getting started with rcirc, Basics, Basics
108 @section Internet Relay Chat
109 @cindex internet relay chat
113 @dfn{Internet Relay Chat} (IRC) is a form of instant communication over the
114 Internet. It is mainly designed for group (many-to-many) communication
115 in discussion forums called channels, but also allows one-to-one
118 @cindex instant messaging, comparison
121 Contrary to most Instant Messenger (IM) systems, users usually don't
122 connect to a central server. Instead, users connect to a random
123 server in a network, and servers relay messages from one to the next.
125 Here's a typical example:
127 @cindex redirection to random servers
128 When you connect to the Freenode network
129 (@code{http://freenode.net/}), you point your IRC client at the
130 server @code{irc.freenode.net}. That server will redirect your client
131 to a random server on the network, such as @code{zelazny.freenode.net}.
134 @cindex # starts a channel name
135 Once you're connected, you can send messages to all other users
136 connected to the same network, and you can join all channels on the same
137 network. You might join the @code{#emacs} and the @code{#rcirc}
138 channels, for example. (Typically, channel names begin with a hash
141 Once you have joined a channel, anything you type will be broadcast to
142 all the other users on the same channel.
144 @cindex addressing other people
145 @cindex other people, addressing them
146 @cindex talk to other people
147 If you want to address someone specifically, for example as an answer to
148 a question, it is customary to prefix the message with the nick followed
149 by a colon, like this:
155 @cindex nick completion
156 @cindex completion of nicks
158 Since this is so common, you can use @key{TAB} to do nick completion.
160 @node Getting started with rcirc, , Internet Relay Chat, Basics
161 @section Getting started with rcirc
162 @cindex getting started
163 @cindex connecting to a server
166 Use the command @kbd{M-x irc} to connect using the defaults.
167 @xref{Configuration}, if you want to change the defaults.
169 Use @kbd{C-u M-x irc} if you don't want to use the defaults, eg. if you
170 want to connect to a different network, or connect to the same network
171 using a different nick. This will prompt you for four things:
174 @cindex server, connecting
175 @cindex Freenode network
177 What server do you want to connect to? All the servers in a particular
178 network are equivalent. Some networks use a round-robin system where a
179 single server redirects new connections to a random server in the
180 network. @code{irc.freenode.net} is such a server for the Freenode
181 network. Freenode provides the network ``for the Free and Open Source
182 Software communities, for not-for-profit organizations and for related
183 communities and organizations.''
185 @cindex port, connecting
186 @cindex 6667, default IRC port
188 All network connections require a port. Just as web servers and clients
189 use port 80 per default, IRC uses port 6667 per default. You rarely
190 have to use a different port.
192 @cindex nick, connecting
193 @cindex changing nick
196 @vindex user-login-name
197 Every users needs a handle on-line. You will automatically be assigned
198 a slightly different nick if your chosen nick is already in use. If
199 your @code{user-login-name} is @code{alex}, and this nick is already
200 in use, you might for example get assigned the nick @code{alex`}.
202 @cindex channels, connecting
203 @cindex initial channels
204 @cindex startup channels
206 A space separated list of channels you want to join when connecting.
207 You don't need to join any channels, if you just want to have one-to-one
208 conversations with friends on the same network. If you're new to the
209 Freenode network, join @code{#emacs}, the channel about all things
210 Emacs, or join @code{#rcirc}, the channel about @code{rcirc}.
213 @cindex server buffer
214 When you have answered these questions, @code{rcirc} will create a server
215 buffer, which will be named something like @code{*irc.freenode.net*},
216 and a channel buffer for each of the channels you wanted to join.
220 @cindex communicating
221 To talk in a channel, just type what you want to say in a channel
222 buffer, and press @key{RET}.
225 @cindex multiline messages
226 @cindex messages, multiple lines
227 @cindex pasting multiple lines
228 @cindex edit message before sending
229 If you want to paste multiple lines, such as source code, you can use
230 @kbd{C-c C-c} to edit your message in a separate buffer. Use @kbd{C-c
231 C-c} to finish editing. You still need to press @key{RET} to send it,
232 though. Generally, IRC users don't like people pasting more than around
233 four lines of code, so use with care.
235 @comment This section copied from the Channels section.
236 @comment All index markers should point to the original!
237 Once you are connected to multiple channels, or once you've turned you
238 attention to other buffers in Emacs, you probably want to be notified
239 of any activity in channels not currently visible. All you need to do
240 is switch channel tracking on using @kbd{M-x rcirc-track-minor-mode}.
241 To make this permanent, add the following to your init file:
244 (rcirc-track-minor-mode 1)
247 Use @kbd{C-c C-@key{SPC}} to switch to these buffers.
249 @node Reference, Fighting Information Overload, Basics, Top
253 This is the reference section of the manual. It is not complete. For
254 complete listings of @code{rcirc} features, use Emacs built-in
259 * Useful IRC commands::
263 @node rcirc commands, Useful IRC commands, Reference, Reference
264 @section rcirc commands
265 @cindex rcirc commands
269 This is a list of commands that you may use in @code{rcirc}. It is not
270 complete. For a complete listing, press @kbd{C-h m} in an @code{rcirc}
273 In addition to using regular Emacs key bindings, you can call them by
274 typing them into an @code{rcirc} buffer.
276 @cindex call commands
277 @cindex typing commands
279 For instance, instead of using the command @kbd{C-c C-j} to join a new
280 channel, you may type this in an @code{rcirc} buffer, and press @key{RET}:
286 @cindex / starts a command
287 @cindex messages starting with a slash disappear
288 @cindex disappearing messages if starting with a slash
289 @cindex slash hides message
290 This is why you cannot start a message with a slash. You will have to
291 precede the command with a space, or rewrite your message in order to
292 send it to a channel.
294 @cindex multiple words as parameters
295 @cindex string delimiters
297 @cindex double-quotes
298 Many commands take parameters. IRC commands usually ignore string
299 delimiters. Neither quote nor double-quote have special meanings in
303 /nick "alex schroeder"
306 This will try to change your nick to @code{"alex}. Usually this will
307 fail because the double quote character is not a valid character for
310 @cindex case insensitive commands
311 These commands are case insensitive.
314 @cindex unknown command
315 @cindex command unknown
316 If a command isn't known by @code{rcirc}, it will simply be sent along to the
317 server. There is a list of some useful commands like that in the next
324 @cindex join channels
325 @cindex other channels
326 @cindex rooms, joining
327 @cindex discussion, joining
328 This joins a channel such as @code{#rcirc} or @code{#emacs}. On most
329 networks, anybody can create new channels. If you want to talk with
330 some friends, for example, all you have to do is agree on a valid
331 channel name and join that channel. (Also @code{/join #emacs}.)
336 @cindex part a channel
337 @cindex leave a channel
338 @cindex disconnect from a channel
339 @cindex stop talking on a channel
340 @cindex kill channel buffer
341 This leaves the current channel. You can optionally provide a reason
342 for parting. When you kill a channel buffer, you automatically part the
343 corresponding channel. (Also @code{/part you are too weird!}.)
349 @cindex nick changing
350 @cindex rename yourself
352 This changes your nick to some other name. Your nick must be unique
353 across the network. Most networks don't allow too many nick changes in
354 quick succession, and have restrictions on the valid characters in nick
355 names. (Also @code{/nick alex-test})
360 @cindex who are these people
361 @cindex identifying people
362 @cindex channels other people are on
363 @cindex what channels people are on
364 Gives you some basic information about a nick. This often includes what
365 other channels people are on. (Also @code{/whois fsbot}.)
370 @cindex starting a private conversation
371 @cindex one-to-one conversation
372 @cindex talk privately
373 @cindex private conversation
374 @cindex contact one person only
375 @cindex query a person
376 Starts a one-to-one conversation with another person on the same
377 network. A new buffer will be created for this conversation. It works
378 like a channel with only two members. (Also @code{/query fsbot}.)
383 @cindex single message
384 @cindex message sending
385 This sends a single message to a nick. Like with @kbd{C-c C-q}, a new
386 buffer is created, where the response from the other party will show
387 up. (Also @code{/msg nickserv identify secret}.)
394 @cindex kill connection
395 @cindex connection end
396 @cindex part all channels
397 @cindex end connection
398 @cindex server buffer killing
399 @cindex reason for quitting
400 This disconnects from the server and parts all channels. You can
401 optionally provide a reason for quitting. When you kill the server
402 buffer, you automatically quit the server and part all channels. (Also
403 @code{/quit ZZZzzz...}.)
406 @node Useful IRC commands, Configuration, rcirc commands, Reference
407 @section Useful IRC commands
411 As mentioned, if a command isn't known by @code{rcirc}, it will simply be sent
412 along to the server. Some such commands are available on nearly all IRC
420 @cindex unavailable status
421 @cindex set away status
422 This sets your status as ``being away'' if you provide a reason, or sets
423 your status as ``being back'' if you do not. People can use the
424 @kbd{C-c C-w} command to check your status. Example: @code{/away food}.
427 @cindex irc resources
428 @cindex help about irc
429 Typical IRC servers implement many more commands. You can read more
430 about the fantastic world of IRC online at
431 @uref{http://www.irchelp.org/, the Internet Relay Chat (IRC) help
434 @node Configuration, , Useful IRC commands, Reference
435 @section Configuration
436 @cindex configuring rcirc
438 These are some variables you can change to configure @code{rcirc} to your
442 @item rcirc-server-alist
443 @vindex rcirc-server-alist
444 @cindex channels, configuration
445 @cindex initial channels, configuration
446 @cindex startup channels, configuration
447 @cindex servers, configuration
448 @cindex initial servers, configuration
449 @cindex startup servers, configuration
450 This variable contains an alist of servers to connect to by default
451 and the keywords parameters to use. The keyword parameters are
452 optional. If you don't provide any, the defaults as documented below
455 The most important parameter is the @code{:channels} parameter. It
456 controls which channels you will join by default as soon as you are
457 connected to the server.
459 Here's an example of how to set it:
462 (add-to-list 'rcirc-server-alist
463 '("otherworlders.org"
464 :channels ("#FUDGE" "#game-design")))
467 By default you will be connected to the @code{rcirc} support channel:
468 @code{#rcirc} on @code{irc.freenode.net}.
472 This overrides @code{rcirc-default-nick}.
475 This overrides @code{rcirc-default-port}.
478 This overrides @code{rcirc-default-user-name}.
481 This overrides @code{rcirc-default-full-name}.
484 This describes which channels to join when connecting to the server.
485 If absent, no channels will be connected to automatically.
489 @item rcirc-default-nick
490 @vindex rcirc-default-nick
491 This variable is used for the default nick. It defaults to the login
492 name returned by @code{user-login-name}.
495 (setq rcirc-default-nick "kensanata")
498 @item rcirc-default-port
499 @vindex rcirc-default-port
501 This variable contains the default port to connect to. It is 6667 by
502 default and rarely needs changing.
504 @item rcirc-default-user-name
505 @vindex rcirc-default-user-name
507 This variable contains the default user name to report to the server.
508 It defaults to the login name returned by @code{user-login-name}, just
509 like @code{rcirc-default-nick}.
511 @item rcirc-default-user-full-name
512 @vindex rcirc-default-user-full-name
516 This variable is used to set your ``real name'' on IRC. It defaults
517 to the name returned by @code{user-full-name}. If you want to hide
518 your full name, you might want to set it to some pseudonym.
521 (setq rcirc-default-user-full-name "Curious Minds Want To Know")
525 @vindex rcirc-authinfo
526 @cindex authentification
527 @cindex identification
530 This variable is an alist used to automatically identify yourself on
531 networks. Each sublist starts with a regular expression that is
532 compared to the server address you're connecting to. The second
533 element in the list is a symbol representing the method to use,
534 followed by the arguments this method requires.
536 Here is an example to illustrate how you would set it:
540 '(("freenode" nickserv "bob" "p455w0rd")
541 ("freenode" chanserv "bob" "#bobland" "passwd99")
542 ("bitlbee" bitlbee "robert" "sekrit")))
545 And here are the valid method symbols and the arguments they require:
549 @cindex nickserv authentification
550 Use this symbol if you need to identify yourself as follows when
551 connecting to a network: @code{/msg nickserv identify secret}. The
552 necessary arguments are the nickname you want to use this for, and the
555 Before you can use this method, you will have to register your nick and
556 pick a password for it. Contact @code{nickserv} and check out the
557 details. (Using @code{/msg nickserv help}, for example.)
560 @cindex chanserv authentification
561 Use this symbol if you need to identify yourself as follows if you want
562 to join a particular channel: @code{/msg chanserv identify #underground
563 secret}. The necessary arguments are the nickname and channel you want
564 to use this for, and the password to use.
566 Before you can use this method, a channel contact must tell you about
567 the password to use. Contact @code{chanserv} and check out the details.
568 (Using @code{/msg chanserv help}, for example.)
571 @cindex bitlbee authentification
572 Use this symbol if you need to identify yourself in the Bitlbee channel
573 as follows: @code{identify secret}. The necessary arguments are the
574 nickname you want to use this for, and the password to use.
576 @cindex gateway to other IM services
577 @cindex instant messaging, other services
583 Bitlbee acts like an IRC server, but in fact it is a gateway to a lot of
584 other instant messaging services. You can either install Bitlbee
585 locally or use a public Bitlbee server. There, you need to create an
586 account with a password. This is the nick and password you need to
587 provide for the bitlbee authentification method.
589 Later, you will tell Bitlbee about your accounts and passwords on all
590 the other instant messaging services, and Bitlbee will log you in. All
591 @code{rcirc} needs to know, is the login to your Bitlbee account. Don't
592 confuse the Bitlbee account with all the other accounts.
598 @node Fighting Information Overload, Hacking and Tweaking, Reference, Top
599 @chapter Fighting Information Overload
600 @cindex information overload
602 This is the section of the manual that caters to the busy person
603 online. There are support channels with several hundred people in
604 them. Trying to follow a conversation in these channels can be a
605 daunting task. This chapters tells you how @code{rcirc} can help.
614 @node Channels, People, Fighting Information Overload, Fighting Information Overload
619 @comment This section copied to the Getting started with rcirc section
621 @vindex rcirc-track-minor-mode
622 @cindex switching channels
623 @cindex tracking activity
624 @cindex active channel
625 @cindex abbreviated channel names
626 @cindex modeline tracks activity
627 Most people want a notification when something is said on a channel they
628 have joined, particularly if they have been addressed directly. There
629 is a global minor mode that will do this kind of tracking for you. All
630 you need to do is switch it on using @kbd{M-x rcirc-track-minor-mode}.
631 To make this permanent, add the following to your init file:
634 (rcirc-track-minor-mode 1)
637 When other people say things in buffers that are currently buried (no
638 window is showing them), the mode line will now show you the abbreviated
639 channel or nick name. Use @kbd{C-c C-@key{SPC}} to switch to these
642 @vindex rcirc-mode-hook
643 If you prefer not to load @code{rcirc} immediately, you can delay the
644 activation of this mode:
647 (add-hook 'rcirc-mode-hook
649 (rcirc-track-minor-mode 1)))
652 @cindex busy channels
653 If you've joined a very active support channel, tracking activity is
654 no longer useful. The channel will be always active. Switching to
655 active channels using @kbd{C-c C-@key{SPC}} no longer works as
659 @cindex low priority channels
660 The solution is to mark this channel as a low priority channel.
661 Use @kbd{C-c C-l} to make the current channel a low-priority channel.
662 Low priority channels have the modeline indicator ``LowPri''.
663 @kbd{C-c C-@key{SPC}} will not switch to low priority channels unless
664 you use the @kbd{C-u} prefix.
667 @cindex ignored channels
668 If you prefer a channel to never show up in the modeline, then you
669 have to ignore it. Use @kbd{C-c @key{TAB}} to ignore the current
672 @node People, Keywords, Channels, Fighting Information Overload
674 @cindex people, how to ignore
675 @cindex nicks, how to ignore
680 The most important command available to the discerning IRC user is
681 @code{/ignore}. It's the big equalizer online: If people aggravate
682 you, just ignore them.
684 This is of course a crude all-or-nothing solution. Fear not,
685 @code{rcirc} offers alternatives: You can ``brighten'' your buddies
686 and ``dim'' certain other nicks that you don't want to ignore
692 @cindex ignoring other people
693 @cindex trolls, ignoring
694 @cindex hide some posts
695 @cindex idiots online
696 This command toggles the ignore status of a nick, if you provide one.
697 If you don't provide a nick, the command lists all the nicks you are
698 ignoring. All messages by ignored nicks are---you guessed it---ignored.
699 Since only ``operators'' can kick people from channels, the
700 ignore command is often the only way to deal with some of the more
701 obnoxious fellows online. Example: @code{/ignore rudybot}.
705 @cindex highlight other people
706 @cindex friends, highlight
707 @cindex buddies, highlight
708 @cindex nicks, highlight
709 @cindex brighten nicks
710 This command toggles the bright status of a nick, if you provide one.
711 If you don't provide a nick, the command lists all the ``brightened''
712 nicks. All messages by brightened nicks are---you guessed
713 it---brightened. Use this for your friends. Example: @code{/bright
718 @cindex soft-ignore other people
719 @cindex obnoxious people online
720 @cindex rabble online
721 This command toggles the dim status of a nick, if you provide one. If
722 you don't provide a nick, the command lists all the ``dimmed'' nicks.
723 All messages by dimmed nicks are---you guessed it---dimmed. Use this
724 for boring people and bots. If you are tracking channel activity,
725 messages by dimmed nicks will not register as activity. Example:
730 @node Keywords, Notices, People, Fighting Information Overload
734 On a busy channel, you might want to ignore all activity (using
735 @kbd{C-c @key{TAB}}) and just watch for certain keywords. The
736 following command allows you to highlight certain keywords:
741 This command toggles the highlighting of a keyword, if you provide
742 one. If you don't provide a keyword, the current keywords are
743 listed. Example: @code{/keyword manual}.
746 @node Notices, , Keywords, Fighting Information Overload
748 @cindex part notices, how to omit
749 @cindex join notices, how to omit
750 @cindex quit notices, how to omit
751 @cindex nick notices, how to omit
754 @cindex low priority channels
755 In busy channels you might not be interested in all the joining,
756 parting, quitting, and renaming that goes on. You can omit those
757 notices using @kbd{C-c C-o}.
759 @vindex rcirc-omit-responses
760 @cindex away notices, how to omit
761 You can control which notices get omitted via the
762 @code{rcirc-omit-responses} variable. Here's an example of how to
766 (setq rcirc-omit-responses '("JOIN" "PART" "QUIT" "NICK" "AWAY))
769 @vindex rcirc-omit-threshold
770 Notice that these messages will not be omitted if the nick in question
771 has recently been active. After all, you don't want to continue a
772 conversation with somebody who just left. That's why @code{rcirc}
773 checks recent lines in the buffer to figure out if a nick has been
774 active and only omits a message if the nick has not been active. The
775 window @code{rcirc} considers is controlled by the
776 @code{rcirc-omit-threshold} variable.
778 @node Hacking and Tweaking, GNU Free Documentation License, Fighting Information Overload, Top
779 @chapter Hacking and Tweaking
780 @cindex hacking and tweaking
782 Here are some examples of stuff you can do to configure @code{rcirc}.
785 * Skipping /away messages using handlers::
786 * Using fly spell mode::
787 * Scrolling conservatively::
788 * Changing the time stamp format::
789 * Defining a new command::
790 * Reconnecting after you have lost the connection::
793 @node Skipping /away messages using handlers, Using fly spell mode, Hacking and Tweaking, Hacking and Tweaking
794 @section Skipping @code{/away} messages using handlers
795 @cindex /away messages
799 The IRC protocol specifies how certain events are signaled from server
800 to client. These events have numbers and are dealt with using so-called
801 handlers. You can override existing handlers by exploiting the naming
802 convention adopted for @code{rcirc}.
804 Here's how to stop @code{rcirc} from printing @code{/away} messages.
805 Since @code{rcirc} doesn't define a 301 handler, you don't need to
806 require @code{rcirc} before defining the handler:
809 (defun rcirc-handler-301 (process cmd sender args)
810 "/away message handler.")
813 @node Using fly spell mode, Scrolling conservatively, Skipping /away messages using handlers, Hacking and Tweaking
814 @section Using fly spell mode
817 @cindex spell-checking as you type
818 @cindex automatic spelling
819 @vindex rcirc-mode-hook
821 The following code activates Fly Spell Mode
822 for @code{rcirc} buffers:
825 (add-hook 'rcirc-mode-hook (lambda ()
829 @xref{Spelling, , Flyspell mode, emacs, The GNU Emacs Manual},
832 @node Scrolling conservatively, Changing the time stamp format, Using fly spell mode, Hacking and Tweaking
833 @section Scrolling conservatively
836 @vindex scroll-conservatively
837 @vindex rcirc-mode-hook
839 IRC buffers are constantly growing. If you want to see as much as
840 possible at all times, you would want the prompt at the bottom of the
841 window when possible. The following snippet uses a local value for
842 @code{scroll-conservatively} to achieve this:
845 (add-hook 'rcirc-mode-hook
847 (set (make-local-variable 'scroll-conservatively)
851 @xref{Scrolling, , Scrolling conservatively, emacs, The GNU Emacs
852 Manual}, for details.
854 @node Changing the time stamp format, Defining a new command, Scrolling conservatively, Hacking and Tweaking
855 @section Changing the time stamp format
858 @cindex format time stamp
859 @vindex rcirc-time-format
861 @code{rcirc-time-format} is the format used for the time stamp. Here's
862 how to include the date in the time stamp:
865 (setq rcirc-time-format "%Y-%m-%d %H:%M ")
868 @node Defining a new command, Reconnecting after you have lost the connection, Changing the time stamp format, Hacking and Tweaking
869 @section Defining a new command
870 @cindex defining commands
871 @cindex commands, defining
872 @cindex new commands, defining
874 Here's a simple new command, @code{/sv}. With it, you can boast about
875 your IRC client. It shows how you can use @code{defun-rcirc-command} to
878 We're waiting for the definition of this command until @code{rcirc} is loaded
879 because @code{defun-rcirc-command} is not yet available, and without
880 @code{rcirc} loaded, the command wouldn't do us much good anyway.
883 (eval-after-load 'rcirc
884 '(defun-rcirc-command sv (arg)
887 (rcirc-send-message process target
888 (concat "I use " rcirc-id-string))))
891 @node Reconnecting after you have lost the connection, , Defining a new command, Hacking and Tweaking
892 @section Reconnecting after you have lost the connection
894 @cindex disconnecting servers, reconnecting
896 If you're chatting from a laptop, then you might be familiar with this
897 problem: When your laptop falls asleep and wakes up later, your IRC
898 client doesn't realize that it has been disconnected. It takes several
899 minutes until the client decides that the connection has in fact been
900 lost. The simple solution is to use @kbd{M-x rcirc}. The problem is
901 that this opens an @emph{additional} connection, so you'll have two
902 copies of every channel buffer --- one dead and one live.
904 The real answer, therefore, is a @code{/reconnect} command:
907 (eval-after-load 'rcirc
908 '(defun-rcirc-command reconnect (arg)
909 "Reconnect the server process."
912 (error "There's no process for this target"))
913 (let* ((server (car (process-contact process)))
914 (port (process-contact process :service))
915 (nick (rcirc-nick process))
916 channels query-buffers)
917 (dolist (buf (buffer-list))
918 (with-current-buffer buf
919 (when (eq process (rcirc-buffer-process))
920 (remove-hook 'change-major-mode-hook
921 'rcirc-change-major-mode-hook)
922 (if (rcirc-channel-p rcirc-target)
923 (setq channels (cons rcirc-target channels))
924 (setq query-buffers (cons buf query-buffers))))))
925 (delete-process process)
926 (rcirc-connect server port nick
927 rcirc-default-user-name
928 rcirc-default-user-full-name
932 @node GNU Free Documentation License, Key Index, Hacking and Tweaking, Top
933 @appendix GNU Free Documentation License
934 @include doclicense.texi
937 @node Key Index, Variable Index, GNU Free Documentation License, Top
938 @unnumbered Key Index
941 @node Variable Index, Index, Key Index, Top
942 @unnumbered Variable Index
945 @node Index, , Variable Index, Top
952 arch-tag: 2589e562-3843-4ffc-8c2f-477cbad57c01