ref: 75ec1be08658f6847fe018b56370f6be967779df
parent: 0bea72e0c4734953884f544694de47cb74563e3f
author: Ori Bernstein <ori@eigenstate.org>
date: Thu Nov 23 17:50:23 EST 2017
Add manpage.
--- a/bld.proj
+++ b/bld.proj
@@ -1,3 +1,7 @@
bin irc =
irc.myr
;;
+
+man =
+ irc.1
+;;
--- /dev/null
+++ b/irc.1
@@ -1,0 +1,180 @@
+.TH IRC 1
+.SH NAME
+irc
+.SH SYNOPSIS
+.B irc
+.I [-c cfg]
+.I [-l logdir]
+.br
+.SH DESCRIPTION
+.PP
+Irc is a simple curses IRC client. It supports the usual features
+one would expect from an IRC client, including connecting to multiple
+channels and servers.
+
+.SH OPTIONS
+.PP
+Irc supports relatively few options on the command line, as most
+configuration is done via the config file.
+
+.PP
+The supported options are:
+
+.TP
+.B -c cfg
+Use the config file
+.I cfg.
+If not specified, the default
+config file is
+.I $HOME/.ircrc
+
+.TP
+.B -l logdir
+Write logs to the log directory
+.I logdir.
+By default, logs go into
+.I $HOME/.irclogs.
+
+.SH COMMANDS
+
+.PP
+Irc accepts most of the expected commands people want in an
+IRC client, although there are a few notable exceptions. The
+general format of a commands is
+.B /command target operands.
+
+
+.PP
+In general, the commands in irc.myr will
+accept any nonambiguous name fragment when a
+name is required.
+
+.TP
+.B /help
+Show help.
+
+.TP
+.B /connect host
+Connect to a server specified withthe hostname
+.I host.
+The dial syntax is shared with the
+.I netaddr
+function.
+
+.TP
+.B /quit
+Exit the IRC client.
+
+.TP
+.B /join chan [srv]
+Join a channel. If the server is given, then the
+channel is joined on the specified server. Otherwise,
+the channel is joined on the currently focused server.
+
+.TP
+.B /leave [chan]
+Leave a channel. If the channel name specified, then
+the channel
+.I chan
+is parted. Otherwise, the target is the current channel.
+
+.TP
+.B /chan [name]
+Switch to the channel named
+.I chan.
+
+.TP
+.B /win name
+Same as
+.I /chan.
+
+.TP
+.B /names
+List the names of the users present in the current channel.
+
+.TP
+.B /srv name
+Focus the server
+.I srv.
+For most commands, this doesn't matter, but it affects
+the commands that accept a server target.
+
+.TP
+.B /nick name
+Set your nickname to
+.I nick.
+Defaults to the Unix username that IRC was run under.
+
+.TP /user name
+Set your username to
+.I nick.
+Defaults to the Unix username that IRC was run under.
+
+.SH KEYBINDINGS
+
+.TP
+.B ctrl+n
+Move to next channel
+
+.TP
+.B ctrl+p
+Move to previous channel
+
+.TP
+.B ctrl+l
+Redraw terminal
+
+.TP
+.B up arrow
+Scroll up one line
+
+.TP
+.B down arrow
+Scroll down one line
+
+.TP
+.B page up
+Scroll up one page
+
+.TP
+.B page down
+Scroll down one page
+
+.SH CONFIGURATION
+
+.PP
+The
+.I .ircrc
+configuration file uses the same commands as mentioned in the
+.I commands
+section of this manual, one per line. These commands are
+executed on irc startup.
+
+.PP
+When using a configuration file with multiple servers, the
+.I /join
+directives should be used with the server form, otherwise
+all joins will be done on the first channel.
+
+.EX
+ /connect irc.eigenstate.org
+ /nick Ori
+ /join #myrddin eigenstate
+ /connect irc.freenode.org
+ /nick Ori_B
+ /msg NickServ -srv freenode identify my-pass0rd
+ /join #proglangdesign freenode
+ /join #cat-v freenode
+ /join #more-channels
+.EE
+
+.SH BUGS
+
+.PP
+ Connections happen in the foreground, which can cause UI jank.
+.PP
+There are a number of commands that are not implemented (/me, etc)
+.PP
+The chat history is an unbounded log. It should be replaced with a ringbuffer.
+.PP
+Line wrapping is a bit rough, and doens't do word splits
--
⑨