changeset 854:bfaab692a683

Update manpage (pmw) This is Philip M. White's manpage update patch, slightly modified.
author Mikael Berthe <mikael@lilotux.net>
date Sat, 13 May 2006 22:26:15 +0200
parents bdd526ec62bc
children cbeedd730b1b
files mcabber/doc/mcabber.1 mcabber/doc/mcabber.1.html mcabber/doc/mcabber.1.txt
diffstat 3 files changed, 464 insertions(+), 185 deletions(-) [+]
line wrap: on
line diff
--- a/mcabber/doc/mcabber.1	Sat May 13 22:21:20 2006 +0200
+++ b/mcabber/doc/mcabber.1	Sat May 13 22:26:15 2006 +0200
@@ -34,15 +34,6 @@
 You also need to have an existing Jabber account to use this software, as it cannot (un)register accounts yet\&.
 
 
-The mcabber(1) screen is divided into 4 regions\&. The \fIroster\fR, alias \fIbuddylist\fR, is on the left\&. The \fIchat window\fR, or chat buffer, is on the right\&. The \fIinput line\fR lies at the bottom of the screen, under a small \fIlog window\fR\&.
-
-
-Two status lines surround the log window\&. The bottom status line is the "main status line" and reflects mcabber general status\&. The other line is the "chat status line" and shows the status of the currently selected buddy\&.
-
-
-To display buddies chat buffers, you will have to enter \fIchat mode\fR\&. You can enter chat mode by pressing enter, and leave chat mode with the ESC key\&. Simply sending a message will also enable chat mode\&.
-
-
 Here are some of the features of mcabber:
 
 .TP 3
@@ -62,7 +53,7 @@
  Input line history: Any message or command entered is in the input line history and can be reused easily\&.
 .TP
 \(bu
- External actions: Some events (like receiving a message) can trigger an external action, for example a shell script (you need to enable it in your configuration file)\&. A sample events script ("eventcmd") is provided with mcabber source code, in the contrib directory\&.
+ External actions: Some events (like receiving a message) can trigger an external action such as a shell script if you enable it in your configuration file\&. A sample events script ("eventcmd") is provided with mcabber source code, in the contrib directory\&.
 .LP
 
 .SH "OPTIONS"
@@ -73,7 +64,21 @@
 
 .TP
 \-f configfile
-Use configuration file configfile 
+Use configuration file configfile
+
+.SH "WINDOWS/PANES"
+
+
+The mcabber(1) screen is divided into 4 regions\&. The \fIroster\fR, alias \fIbuddylist\fR, is on the left\&. The \fIchat window\fR, or chat buffer, is on the right\&. The \fIinput line\fR lies at the bottom of the screen, under a small \fIlog window\fR\&.
+
+
+Two status lines surround the log window\&. The bottom status line is the "main status line" and reflects mcabber general status\&. The other line is the "chat status line" and shows the status of the currently selected buddy\&.
+
+
+To display buddies chat buffers, you will have to enter \fIchat mode\fR\&. You can enter chat mode by pressing enter, and leave chat mode with the ESC key\&. Simply sending a message will also enable chat mode\&.
+
+
+There are several advantages to the two\-mode implementation: first, it allows accurate "unread" message functionality, as described in the next section; without this, merely scrolling to a specific buddy will "read" the new messages of all buddies in\-between\&. Second, it allows quickly hiding the conversation with a single keystroke\&. Third, it allows jumping between the few buddies with whom you are conversing with the \fI/roster alternate\fR command described in another section, without having to manually scroll back and forth\&.
 
 .SH "KEYS"
 
@@ -89,6 +94,7 @@
 
 To send a message, move to the choosen buddy in the buddylist, type your message and hit enter\&. If the line begins with a slash, this will be interpreted as a command (see the COMMAND section below)\&. Hit escape to leave the chat mode\&.
 
+
 Here is a quick description of the key bindings:
 
 Ctrl\-a		Go to the beginning of the input line
@@ -123,12 +129,51 @@
 
 Ctrl\-q		Jump to the next unread message
 
+Additional key bindings may be specified using the /bind command described
+in the COMMANDS section\&.
 
-.SH "COMMANDS"
+.SH "MCABBER'S ROSTER"
+
+
+The first listed resource on the roster is \fI[status]\fR, which keeps a log of everything that appears in the short log window below the main chat area\&. While the log window was designed for showing the latest few elements, the dedicated \fI[status]\fR buffer allows more comfortable viewing of the log, as well as scrolling it in a standard manner\&.
+
+
+Group names are displayed above the resources that are within them, and are indicated by \fI\-\-\-\fR to the left of the name\&.
+
+
+For every real Jabber resource, the roster displays four pieces of information: the resource's name or alias, its online status, its authorization status, and whether there are unread messages from the resource waiting for you\&.
+
+
+The online status is one of the following:
 
-.TP
-\fB/add\fR [jid [nickname]]
-Add the "jid" Jabber user to our roster (default group), and send a notification request to this buddy\&. If no nickname is specified, the jid is used\&. If no jid (or an empty string "") is provided or if jid is "\&.", the current buddy is used\&.
+ \fBo\fR	online
+ \fBf\fR	free for chat
+ \fBa\fR	away
+ \fBn\fR	not available (labeled \fIextended away\fR in some clients)
+ \fBd\fR	do not disturb
+ \fBi\fR	invisible (displayed only for your resource)
+ \fB_\fR	offline (or invisible to you)
+ \fB?\fR	unknown, usually meaning you are not authorized to see this resource's status
+ \fBx\fR	a conference room in which you are not participating
+ \fBC\fR	a conference room in which you are participating
+
+
+The authorization status indicates whether a resource is authorized to receive your online status updates, and is displayed by the brackets surrounding the resource's online status\&. Square brackets, like \fI[o]\fR, indicate that this resource is authorized to receive your status\&. Curly braces, like \fI{o}\fR, indicate that they are not authorized to receive your status\&.
+
+
+When there are unread messages from the resource which you have not looked at, a hash mark (\fI#\fR) appears in the leftmost section of the roster for that resource\&. The hash mark disappears once you view that resource's message log\&.
+
+
+Examples:
+
+ \fB \-\-\- Buds\fR	This is a group named \fIBuds\fR
+ \fB#[o] John\fR   	John is online, can see your status, and sent you a message that you did not read yet
+ \fB {?} Sally\fR  	Neither you nor Sally have authorized each other to see your online status
+ \fB {a} Jane\fR   	Jane is away, but she cannot see your online status
+ \fB#[C] x@y\&.c\fR	You are participating in x@y\&.c conference room, and there are unread messages
+
+
+.SH "COMMANDS RELATED TO MCABBER"
 
 .TP
 \fB/alias\fR name = command line
@@ -139,17 +184,6 @@
 Example: "/alias away = status away"\&.
 
 .TP
-\fB/authorization\fR allow|cancel|request|request_unsubscribe [jid]
-Manage the presence subscriptions\&.
-
-If no jid is provided, the current buddy is used\&.
-
- \fBallow\fR  	allow the buddy to receive your presence updates
- \fBcancel\fR 	cancel the buddy' subscription to your presence updates
- \fBrequest\fR	request a subscription to the buddy's presence updates
- \fBrequest_unsubscribe\fR request unsubscription from the buddy's presence updates
-
-.TP
 \fB/bind\fR keycode = command line
 Bind a command line to the key with the "keycode" code number\&.
 
@@ -178,14 +212,20 @@
 The clear command is actually an alias for "/buffer clear"\&.
 
 .TP
+\fB/quit\fR
+Disconnect and leave mcabber(1)\&.
+
+.TP
+\fB/version\fR
+Display mcabber version
+
+.SH "COMMANDS RELATED TO THE SERVER AND CONNECTION"
+
+.TP
 \fB/connect\fR
 Establish connection to the Jabber server\&.
 
 .TP
-\fB/del\fR
-Delete the current buddy from our roster, unsubscribe from its presence notification and unsubscribe it from ours\&.
-
-.TP
 \fB/disconnect\fR
 Terminate connection to the Jabber server\&. Note: the roster is only available when the connection to the server is active, so the buddylist is empty when disconnected\&.
 
@@ -199,6 +239,31 @@
  \fBlist\fR	list all pending events
 
 .TP
+\fB/rawxml\fR send
+ \fBsend\fR string: send string (raw XML format) to the Jabber server\&. No check is done on the string provided\&. BEWARE! Use this only if you know what you are doing, or you could terminate the connection\&.
+
+.SH "COMMANDS RELATED TO THE ROSTER AND JABBER RESOURCES"
+
+.TP
+\fB/add\fR [jid [nickname]]
+Add the "jid" Jabber user to our roster (default group), and send a notification request to this buddy\&. If no nickname is specified, the jid is used\&. If no jid (or an empty string "") is provided or if jid is "\&.", the current buddy is used\&.
+
+.TP
+\fB/authorization\fR allow|cancel|request|request_unsubscribe [jid]
+Manage the presence subscriptions\&.
+
+If no jid is provided, the current buddy is used\&.
+
+ \fBallow\fR  	allow the buddy to receive your presence updates
+ \fBcancel\fR 	cancel the buddy' subscription to your presence updates
+ \fBrequest\fR	request a subscription to the buddy's presence updates
+ \fBrequest_unsubscribe\fR request unsubscription from the buddy's presence updates
+
+.TP
+\fB/del\fR
+Delete the current buddy from our roster, unsubscribe from its presence notification and unsubscribe it from ours\&.
+
+.TP
 \fB/group\fR fold|unfold|toggle
 The group command changes the current group display\&.
 
@@ -235,10 +300,6 @@
  \fBabort\fR          	leave multi\-line mode without sending the message
 
 .TP
-\fB/rawxml\fR send
- \fBsend\fR string: send string (raw XML format) to the Jabber server\&. No check is done on the string provided\&. BEWARE! Use this only if you know what you are doing, or you could terminate the connection\&.
-
-.TP
 \fB/rename\fR nickname
 Rename current buddy to the given nickname\&. This command does not work for groups, at the moment (but you can move the buddies to another group with the "/move" command)\&.
 
@@ -312,14 +373,10 @@
 
 Note: The jid can include a resource (i\&.e\&. user@server/resource)\&.
 
-.TP
-\fB/version\fR
-Display mcabber version
-
 .SH "CONFIGURATION FILE"
 
 
-See the provided sample configuration file, which should be self\-documented\&.
+See the provided sample configuration file, which should be self\-documenting\&.
 
 .SH "FILES"
 
@@ -327,11 +384,9 @@
 The following files can be used by mcabber(1):
 
 .nf
-
 $HOME/\&.mcabber/mcabberrc    Default configuration file
 $HOME/\&.mcabberrc            Configuration file used if no other has been found
 $HOME/\&.mcabber/histo/       Default directory for storing chat history files, if enabled
-
 .fi
 
 .SH "BUGS"
--- a/mcabber/doc/mcabber.1.html	Sat May 13 22:21:20 2006 +0200
+++ b/mcabber/doc/mcabber.1.html	Sat May 13 22:26:15 2006 +0200
@@ -25,17 +25,6 @@
 mcabberrc file and adapt your connection settings.</p>
 <p>You also need to have an existing Jabber account to use this software, as
 it cannot (un)register accounts yet.</p>
-<p>The <tt>mcabber(1)</tt> screen is divided into 4 regions.
-The <b>roster</b>, alias <b>buddylist</b>, is on the left.  The <b>chat window</b>, or chat
-buffer, is on the right.  The <b>input line</b> lies at the bottom of the screen,
-under a small <b>log window</b>.</p>
-<p>Two status lines surround the log window.  The bottom status line is the
-"main status line" and reflects mcabber general status.  The other line
-is the "chat status line" and shows the status of the currently selected
-buddy.</p>
-<p>To display buddies chat buffers, you will have to enter <b>chat mode</b>.
-You can enter chat mode by pressing enter, and leave chat mode with the ESC
-key.  Simply sending a message will also enable chat mode.</p>
 <p>Here are some of the features of <tt>mcabber</tt>:</p>
 <ul>
 <li>
@@ -69,8 +58,8 @@
 <li>
 <p>
 <b>External actions:</b>  Some events (like receiving a message) can trigger an
-  external action, for example a shell script (you need to enable it in your
-  configuration file).  A sample events script ("eventcmd") is provided with
+  external action such as a shell script if you enable it in your
+  configuration file.  A sample events script ("eventcmd") is provided with
   <tt>mcabber</tt> source code, in the contrib directory.
 </p>
 </li>
@@ -90,6 +79,26 @@
         Use configuration file <b>configfile</b>
 </dd>
 </dl>
+<h2>WINDOWS/PANES</h2>
+<p>The <tt>mcabber(1)</tt> screen is divided into 4 regions.
+The <b>roster</b>, alias <b>buddylist</b>, is on the left.  The <b>chat window</b>, or chat
+buffer, is on the right.  The <b>input line</b> lies at the bottom of the screen,
+under a small <b>log window</b>.</p>
+<p>Two status lines surround the log window.  The bottom status line is the
+"main status line" and reflects mcabber general status.  The other line
+is the "chat status line" and shows the status of the currently selected
+buddy.</p>
+<p>To display buddies chat buffers, you will have to enter <b>chat mode</b>.
+You can enter chat mode by pressing enter, and leave chat mode with the ESC
+key.  Simply sending a message will also enable chat mode.</p>
+<p>There are several advantages to the two-mode implementation: first, it allows
+accurate "unread" message functionality, as described in the next section;
+without this, merely scrolling to a specific buddy will "read" the new
+messages of all buddies in-between.  Second, it allows quickly hiding the
+conversation with a single keystroke.  Third, it allows jumping between
+the few buddies with whom you are conversing with the <b>/roster alternate</b>
+command described in another section, without having to manually scroll
+back and forth.</p>
 <h2>KEYS</h2>
 <p>Text typing occurs in the <b>input line</b>; basic operations are supported
 (left arrow, right arrow, home/end keys, insert, delete, backspace&#8230;).</p>
@@ -232,18 +241,156 @@
 </td>
 </tr>
 </table>
-<h2>COMMANDS</h2>
+<p>Additional key bindings may be specified using the /bind command described
+in the COMMANDS section.</p>
+<h2>MCABBER'S ROSTER</h2>
+<p>The first listed resource on the roster is <b>[status]</b>, which keeps a log of
+everything that appears in the short log window below the main chat area.
+While the log window was designed for showing the latest few elements, the
+dedicated <b>[status]</b> buffer allows more comfortable viewing of the log, as
+well as scrolling it in a standard manner.</p>
+<p>Group names are displayed above the resources that are within them, and are
+indicated by <b>---</b> to the left of the name.</p>
+<p>For every real Jabber resource, the roster displays four pieces of information:
+the resource's name or alias, its online status, its authorization status, and
+whether there are unread messages from the resource waiting for you.</p>
+<p>The online status is one of the following:</p>
+<table class="hlist">
+<tr valign="top">
+<td>
+<b>o</b>
+</td>
+<td>
+online
+</td>
+</tr>
+<tr valign="top">
+<td>
+<b>f</b>
+</td>
+<td>
+free for chat
+</td>
+</tr>
+<tr valign="top">
+<td>
+<b>a</b>
+</td>
+<td>
+away
+</td>
+</tr>
+<tr valign="top">
+<td>
+<b>n</b>
+</td>
+<td>
+not available (labeled <b>extended away</b> in some clients)
+</td>
+</tr>
+<tr valign="top">
+<td>
+<b>d</b>
+</td>
+<td>
+do not disturb
+</td>
+</tr>
+<tr valign="top">
+<td>
+<b>i</b>
+</td>
+<td>
+invisible (displayed only for your resource)
+</td>
+</tr>
+<tr valign="top">
+<td>
+<b>_</b>
+</td>
+<td>
+offline (or invisible to you)
+</td>
+</tr>
+<tr valign="top">
+<td>
+<b>?</b>
+</td>
+<td>
+unknown, usually meaning you are not authorized to see this resource's status
+</td>
+</tr>
+<tr valign="top">
+<td>
+<b>x</b>
+</td>
+<td>
+a conference room in which you are not participating
+</td>
+</tr>
+<tr valign="top">
+<td>
+<b>C</b>
+</td>
+<td>
+a conference room in which you are participating
+</td>
+</tr>
+</table>
+<p>The authorization status indicates whether a resource is authorized to receive
+your online status updates, and is displayed by the brackets surrounding the
+resource's online status.  Square brackets, like <b>[o]</b>, indicate that this
+resource is authorized to receive your status.  Curly braces, like <b>{o}</b>,
+indicate that they are not authorized to receive your status.</p>
+<p>When there are unread messages from the resource which you have not looked at,
+a hash mark (<b>#</b>) appears in the leftmost section of the roster for that
+resource.  The hash mark disappears once you view that resource's message log.</p>
+<p>Examples:</p>
+<table class="hlist">
+<tr valign="top">
+<td>
+<b> --- Buds</b>
+</td>
+<td>
+This is a group named <b>Buds</b>
+</td>
+</tr>
+<tr valign="top">
+<td>
+<b>#[o] John</b>
+</td>
+<td>
+John is online, can see your status, and sent you a message that you did not read yet
+</td>
+</tr>
+<tr valign="top">
+<td>
+<b> {?} Sally</b>
+</td>
+<td>
+Neither you nor Sally have authorized each other to see your online status
+</td>
+</tr>
+<tr valign="top">
+<td>
+<b> {a} Jane</b>
+</td>
+<td>
+Jane is away, but she cannot see your online status
+</td>
+</tr>
+<tr valign="top">
+<td>
+<b>#[C] x@y.c</b>
+</td>
+<td>
+You are participating in x@y.c conference room, and there are unread messages
+</td>
+</tr>
+</table>
+<h2>COMMANDS RELATED TO MCABBER</h2>
 <dl>
 <dt><b>
-/add [jid [nickname]]
-</b></dt>
-<dd>
-        Add the "jid" Jabber user to our roster (default group), and send a
-        notification request to this buddy.  If no nickname is specified, the
-        jid is used.  If no jid (or an empty string "") is provided or if jid
-        is ".", the current buddy is used.
-</dd>
-<dt><b>
 /alias name = command line
 </b></dt>
 <dd>
@@ -254,47 +401,6 @@
         Example: "/alias away = status away".
 </dd>
 <dt><b>
-/authorization allow|cancel|request|request_unsubscribe [jid]
-</b></dt>
-<dd>
-        Manage the presence subscriptions.<br />
-        If no jid is provided, the current buddy is used.
-<table class="hlist">
-<tr valign="top">
-<td>
-<b>allow</b>
-</td>
-<td>
-allow the buddy to receive your presence updates
-</td>
-</tr>
-<tr valign="top">
-<td>
-<b>cancel</b>
-</td>
-<td>
-cancel the buddy' subscription to your presence updates
-</td>
-</tr>
-<tr valign="top">
-<td>
-<b>request</b>
-</td>
-<td>
-request a subscription to the buddy's presence updates
-</td>
-</tr>
-<tr valign="top">
-<td>
-<b>request_unsubscribe</b>
-</td>
-<td>
-request unsubscription from the buddy's presence updates
-</td>
-</tr>
-</table>
-</dd>
-<dt><b>
 /bind keycode = command line
 </b></dt>
 <dd>
@@ -395,19 +501,27 @@
         The <b>clear</b> command is actually an alias for "/buffer clear".
 </dd>
 <dt><b>
+/quit
+</b></dt>
+<dd>
+        Disconnect and leave <tt>mcabber(1)</tt>.
+</dd>
+<dt><b>
+/version
+</b></dt>
+<dd>
+        Display mcabber version
+</dd>
+</dl>
+<h2>COMMANDS RELATED TO THE SERVER AND CONNECTION</h2>
+<dl>
+<dt><b>
 /connect
 </b></dt>
 <dd>
         Establish connection to the Jabber server.
 </dd>
 <dt><b>
-/del
-</b></dt>
-<dd>
-        Delete the current buddy from our roster, unsubscribe from its presence
-        notification and unsubscribe it from ours.
-</dd>
-<dt><b>
 /disconnect
 </b></dt>
 <dd>
@@ -461,6 +575,72 @@
 </table>
 </dd>
 <dt><b>
+/rawxml send
+</b></dt>
+<dd>
+        <b>send</b> string: send string (raw XML format) to the Jabber server.  No check is done on the string provided.  BEWARE! Use this only if you know what you are doing, or you could terminate the connection.
+</dd>
+</dl>
+<h2>COMMANDS RELATED TO THE ROSTER AND JABBER RESOURCES</h2>
+<dl>
+<dt><b>
+/add [jid [nickname]]
+</b></dt>
+<dd>
+        Add the "jid" Jabber user to our roster (default group), and send a
+        notification request to this buddy.  If no nickname is specified, the
+        jid is used.  If no jid (or an empty string "") is provided or if jid
+        is ".", the current buddy is used.
+</dd>
+<dt><b>
+/authorization allow|cancel|request|request_unsubscribe [jid]
+</b></dt>
+<dd>
+        Manage the presence subscriptions.<br />
+        If no jid is provided, the current buddy is used.
+<table class="hlist">
+<tr valign="top">
+<td>
+<b>allow</b>
+</td>
+<td>
+allow the buddy to receive your presence updates
+</td>
+</tr>
+<tr valign="top">
+<td>
+<b>cancel</b>
+</td>
+<td>
+cancel the buddy' subscription to your presence updates
+</td>
+</tr>
+<tr valign="top">
+<td>
+<b>request</b>
+</td>
+<td>
+request a subscription to the buddy's presence updates
+</td>
+</tr>
+<tr valign="top">
+<td>
+<b>request_unsubscribe</b>
+</td>
+<td>
+request unsubscription from the buddy's presence updates
+</td>
+</tr>
+</table>
+</dd>
+<dt><b>
+/del
+</b></dt>
+<dd>
+        Delete the current buddy from our roster, unsubscribe from its presence
+        notification and unsubscribe it from ours.
+</dd>
+<dt><b>
 /group fold|unfold|toggle
 </b></dt>
 <dd>
@@ -588,18 +768,6 @@
 </table>
 </dd>
 <dt><b>
-/quit
-</b></dt>
-<dd>
-        Disconnect and leave <tt>mcabber(1)</tt>.
-</dd>
-<dt><b>
-/rawxml send
-</b></dt>
-<dd>
-        <b>send</b> string: send string (raw XML format) to the Jabber server.  No check is done on the string provided.  BEWARE! Use this only if you know what you are doing, or you could terminate the connection.
-</dd>
-<dt><b>
 /rename nickname
 </b></dt>
 <dd>
@@ -914,15 +1082,9 @@
         too.<br />
         Note: The jid can include a resource (i.e. user@server/resource).
 </dd>
-<dt><b>
-/version
-</b></dt>
-<dd>
-        Display mcabber version
-</dd>
 </dl>
 <h2>CONFIGURATION FILE</h2>
-<p>See the provided sample configuration file, which should be self-documented.</p>
+<p>See the provided sample configuration file, which should be self-documenting.</p>
 <h2>FILES</h2>
 <p>The following files can be used by <tt>mcabber(1)</tt>:</p>
 <div class="literalparagraph"><pre>$HOME/.mcabber/mcabberrc    Default configuration file
@@ -944,7 +1106,7 @@
 <div id="footer">
 <p>
 Version 0.7.7-dev<br />
-Last updated 04-May-2006 20:19:47 CEST
+Last updated 13-May-2006 12:23:01 CEST
 </p>
 </div>
 </div>
--- a/mcabber/doc/mcabber.1.txt	Sat May 13 22:21:20 2006 +0200
+++ b/mcabber/doc/mcabber.1.txt	Sat May 13 22:26:15 2006 +0200
@@ -20,6 +20,31 @@
 You also need to have an existing Jabber account to use this software, as
 it cannot (un)register accounts yet.
 
+Here are some of the features of `mcabber`:
+
+- 'SSL support'.
+- 'MUC support' (Multi-User Chat).
+- 'History logging:'  If enabled (see the CONFIGURATION FILE section),
+  `mcabber` can save discussions to history log files.
+- 'Commands completion:'  If possible, `mcabber` will try to complete your
+  command line if you hit the Tab key.
+- 'Input line history:'  Any message or command entered is in the input line
+  history and can be reused easily.
+- 'External actions:'  Some events (like receiving a message) can trigger an
+  external action such as a shell script if you enable it in your
+  configuration file.  A sample events script ("eventcmd") is provided with
+  `mcabber` source code, in the contrib directory.
+
+OPTIONS
+-------
+--help, -h::
+        Quick help usage message
+
+-f configfile::
+        Use configuration file 'configfile'
+
+WINDOWS/PANES
+-------------
 The `mcabber(1)` screen is divided into 4 regions.
 The 'roster', alias 'buddylist', is on the left.  The 'chat window', or chat
 buffer, is on the right.  The 'input line' lies at the bottom of the screen,
@@ -34,32 +59,17 @@
 You can enter chat mode by pressing enter, and leave chat mode with the ESC
 key.  Simply sending a message will also enable chat mode.
 
-Here are some of the features of `mcabber`:
-
-- 'SSL support'.
-- 'MUC support' (Multi-User Chat).
-- 'History logging:'  If enabled (see the CONFIGURATION FILE section),
-  `mcabber` can save discussions to history log files.
-- 'Commands completion:'  If possible, `mcabber` will try to complete your
-  command line if you hit the Tab key.
-- 'Input line history:'  Any message or command entered is in the input line
-  history and can be reused easily.
-- 'External actions:'  Some events (like receiving a message) can trigger an
-  external action, for example a shell script (you need to enable it in your
-  configuration file).  A sample events script ("eventcmd") is provided with
-  `mcabber` source code, in the contrib directory.
-
-OPTIONS
--------
---help, -h::
-        Quick help usage message
-
--f configfile::
-        Use configuration file 'configfile'
+There are several advantages to the two-mode implementation: first, it allows
+accurate "unread" message functionality, as described in the next section;
+without this, merely scrolling to a specific buddy will "read" the new
+messages of all buddies in-between.  Second, it allows quickly hiding the
+conversation with a single keystroke.  Third, it allows jumping between
+the few buddies with whom you are conversing with the '/roster alternate'
+command described in another section, without having to manually scroll
+back and forth.
 
 KEYS
 ----
-
 Text typing occurs in the 'input line'; basic operations are supported
 (left arrow, right arrow, home/end keys, insert, delete, backspace...).
 
@@ -93,15 +103,57 @@
 Ctrl-o::        Accept line and put the next history line in the input line (accept-line-and-down-history)
 Ctrl-q::        Jump to the next unread message
 
-COMMANDS
---------
+Additional key bindings may be specified using the /bind command described
+in the COMMANDS section.
+
+MCABBER'S ROSTER
+----------------
+The first listed resource on the roster is '[status]', which keeps a log of
+everything that appears in the short log window below the main chat area.
+While the log window was designed for showing the latest few elements, the
+dedicated '[status]' buffer allows more comfortable viewing of the log, as
+well as scrolling it in a standard manner.
+
+Group names are displayed above the resources that are within them, and are
+indicated by '---' to the left of the name.
+
+For every real Jabber resource, the roster displays four pieces of information:
+the resource's name or alias, its online status, its authorization status, and
+whether there are unread messages from the resource waiting for you.
+
+The online status is one of the following:
 
-/add [jid [nickname]]::
-        Add the "jid" Jabber user to our roster (default group), and send a
-        notification request to this buddy.  If no nickname is specified, the
-        jid is used.  If no jid (or an empty string "") is provided or if jid
-        is ".", the current buddy is used.
+        'o';;  online
+        'f';;  free for chat
+        'a';;  away
+        'n';;  not available (labeled 'extended away' in some clients)
+        'd';;  do not disturb
+        'i';;  invisible (displayed only for your resource)
+        '_';;  offline (or invisible to you)
+        '?';;  unknown, usually meaning you are not authorized to see this resource's status
+        'x';;  a conference room in which you are not participating
+        'C';;  a conference room in which you are participating
 
+The authorization status indicates whether a resource is authorized to receive
+your online status updates, and is displayed by the brackets surrounding the
+resource's online status.  Square brackets, like '[o]', indicate that this
+resource is authorized to receive your status.  Curly braces, like '\{o\}',
+indicate that they are not authorized to receive your status.
+
+When there are unread messages from the resource which you have not looked at,
+a hash mark ('#') appears in the leftmost section of the roster for that
+resource.  The hash mark disappears once you view that resource's message log.
+
+Examples:
+
+        ' --- Buds';;     This is a group named 'Buds'
+        '#[o] John';;     John is online, can see your status, and sent you a message that you did not read yet
+        ' \{?\} Sally';;  Neither you nor Sally have authorized each other to see your online status
+        ' \{a\} Jane';;   Jane is away, but she cannot see your online status
+        '#[C] x@y.c';;    You are participating in x@y.c conference room, and there are unread messages
+
+COMMANDS RELATED TO MCABBER
+---------------------------
 /alias name = command line::
         Add "name" as an alias for "command line". +
         Aliases are expanded only once, thus they can not be chained. +
@@ -109,15 +161,6 @@
         "/alias name =" unsets the "name" alias. +
         Example: "/alias away = status away".
 
-/authorization allow|cancel|request|request_unsubscribe [jid]::
-        Manage the presence subscriptions. +
-        If no jid is provided, the current buddy is used.
-
-        'allow';;   allow the buddy to receive your presence updates
-        'cancel';;  cancel the buddy' subscription to your presence updates
-        'request';; request a subscription to the buddy's presence updates
-        'request_unsubscribe';; request unsubscription from the buddy's presence updates
-
 /bind keycode = command line::
         Bind a command line to the key with the "keycode" code number. +
         Keycodes of unused keys are displayed by `mcabber` in the log window
@@ -145,13 +188,17 @@
 /clear::
         The 'clear' command is actually an alias for "/buffer clear".
 
+/quit::
+        Disconnect and leave `mcabber(1)`.
+
+/version::
+        Display mcabber version
+
+COMMANDS RELATED TO THE SERVER AND CONNECTION
+---------------------------------------------
 /connect::
         Establish connection to the Jabber server.
 
-/del::
-        Delete the current buddy from our roster, unsubscribe from its presence
-        notification and unsubscribe it from ours.
-
 /disconnect::
         Terminate connection to the Jabber server.  Note: the roster is only
         available when the connection to the server is active, so the
@@ -168,6 +215,30 @@
         'reject';;  reject the event #n
         'list';;    list all pending events
 
+/rawxml send::
+        'send' string: send string (raw XML format) to the Jabber server.  No check is done on the string provided.  BEWARE! Use this only if you know what you are doing, or you could terminate the connection.
+
+COMMANDS RELATED TO THE ROSTER AND JABBER RESOURCES
+---------------------------------------------------
+/add [jid [nickname]]::
+        Add the "jid" Jabber user to our roster (default group), and send a
+        notification request to this buddy.  If no nickname is specified, the
+        jid is used.  If no jid (or an empty string "") is provided or if jid
+        is ".", the current buddy is used.
+
+/authorization allow|cancel|request|request_unsubscribe [jid]::
+        Manage the presence subscriptions. +
+        If no jid is provided, the current buddy is used.
+
+        'allow';;   allow the buddy to receive your presence updates
+        'cancel';;  cancel the buddy' subscription to your presence updates
+        'request';; request a subscription to the buddy's presence updates
+        'request_unsubscribe';; request unsubscription from the buddy's presence updates
+
+/del::
+        Delete the current buddy from our roster, unsubscribe from its presence
+        notification and unsubscribe it from ours.
+
 /group fold|unfold|toggle::
         The 'group' command changes the current group display.
 
@@ -211,12 +282,6 @@
         'toggle_verbatim';; same with verbatim multi-line mode
         'abort';;           leave multi-line mode without sending the message
 
-/quit::
-        Disconnect and leave `mcabber(1)`.
-
-/rawxml send::
-        'send' string: send string (raw XML format) to the Jabber server.  No check is done on the string provided.  BEWARE! Use this only if you know what you are doing, or you could terminate the connection.
-
 /rename nickname::
         Rename current buddy to the given nickname.
         This command does not work for groups, at the moment (but you can move
@@ -295,12 +360,9 @@
         too. +
         Note: The jid can include a resource (i.e. user@server/resource).
 
-/version::
-        Display mcabber version
-
 CONFIGURATION FILE
 ------------------
-See the provided sample configuration file, which should be self-documented.
+See the provided sample configuration file, which should be self-documenting.
 
 FILES
 -----