changeset: 131:70b0c5d22f75
tag: tip
user: Kris Maglione <kris_AT_suckless.org>
date: Fri Jun 18 12:15:18 2010 -0400
files: include/ixp.h lib/libixp/client.c lib/libixp/server.c lib/libixp_pthread/thread_pthread.c lib/libixp_rubythread/thread_ruby.c lib/libixp_task/thread_task.c man/Ixp9Srv.3 man/IxpFcall.3 man/IxpFid.3 man/IxpMsg.3 man/IxpThread.3 man/Makefile man/header.t2t man/ixp_close.3 man/ixp_dial.3 man/ixp_errbuf.3 man/ixp_listen.3 man/ixp_mount.3 man/ixp_open.3 man/ixp_pdata.3 man/ixp_pending_write.3 man/ixp_pfcall.3 man/ixp_pstring.3 man/ixp_pstrings.3 man/ixp_pthread_init.3 man/ixp_pu8.3 man/ixp_read.3 man/ixp_respond.3 man/ixp_rubyinit.3 man/ixp_sendmsg.3 man/ixp_serverloop.3 man/ixp_settimer.3 man/ixp_srv_clonefiles.3 man/ixp_srv_data2cstring.3 man/ixp_srv_readbuf.3 man/ixp_srv_walkandclone.3 man/ixp_srv_writectl.3 man/ixp_srvutils.3 man/ixp_srvutils.man3 man/ixp_stat.3 man/ixp_taskinit.3 man/ixp_unmount.3 man/ixp_unsettimer.3 man/ixp_write.3 man/libixp.3 man/libixp.man3 man/targets.mk util/grepdoc
description:
Add some additional documentation.
diff -r 0c3693f86599 -r 70b0c5d22f75 include/ixp.h
--- a/include/ixp.h Thu Jun 17 18:55:31 2010 -0400
+++ b/include/ixp.h Fri Jun 18 12:15:18 2010 -0400
@@ -680,6 +680,9 @@
* only one accessor at a time. Rendezvous points are similar to
* pthread condition types. P<errbuf> should return a
* thread-local buffer or the size IXP_ERRMAX.
+ *
+ * See also:
+ * F<ixp_pthread_init>, F<ixp_taskinit>, F<ixp_rubyinit>
*/
struct IxpThread {
/* Read/write lock */
diff -r 0c3693f86599 -r 70b0c5d22f75 lib/libixp/client.c
--- a/lib/libixp/client.c Thu Jun 17 18:55:31 2010 -0400
+++ b/lib/libixp/client.c Fri Jun 18 12:15:18 2010 -0400
@@ -142,7 +142,7 @@
* Returns:
* A pointer to a new 9P client.
* See also:
- * F<ixp_unmount>
+ * F<ixp_open>, F<ixp_create>, F<ixp_remove>, F<ixp_unmount>
*/
IxpClient*
@@ -361,7 +361,8 @@
* opened file.
*
* See also:
- * F<ixp_mount>, F<ixp_read>, F<ixp_write>, F<ixp_close>
+ * F<ixp_mount>, F<ixp_read>, F<ixp_write>, F<ixp_print>,
+ * F<ixp_fstat>, F<ixp_close>
*/
IxpCFid*
diff -r 0c3693f86599 -r 70b0c5d22f75 lib/libixp/server.c
--- a/lib/libixp/server.c Thu Jun 17 18:55:31 2010 -0400
+++ b/lib/libixp/server.c Fri Jun 18 12:15:18 2010 -0400
@@ -29,6 +29,9 @@
*
* Returns:
* Returns the connection's new IxpConn data structure.
+ *
+ * See also:
+ * F<ixp_serverloop>, F<ixp_serve9conn>, F<ixp_hangup>
*/
IxpConn*
ixp_listen(IxpServer *srv, int fd, void *aux,
@@ -129,7 +132,7 @@
* it exits on error. V<errno> or the return value of
* F<ixp_errbuf> may be inspected.
* See also:
- * F<ixp_listen>
+ * F<ixp_listen>, F<ixp_settimer>
*/
int
diff -r 0c3693f86599 -r 70b0c5d22f75 lib/libixp_pthread/thread_pthread.c
--- a/lib/libixp_pthread/thread_pthread.c Thu Jun 17 18:55:31 2010 -0400
+++ b/lib/libixp_pthread/thread_pthread.c Fri Jun 18 12:15:18 2010 -0400
@@ -10,10 +10,21 @@
static IxpThread ixp_pthread;
static pthread_key_t errstr_k;
+/**
+ * Function: ixp_pthread_init
+ *
+ * This function initializes libixp for use in multithreaded
+ * programs using the POSIX thread system. When using libixp in such
+ * programs, this function must be called before any other libixp
+ * functions. This function is part of libixp_pthread, which you
+ * must explicitly link against.
+ */
int
ixp_pthread_init() {
int ret;
+ IXP_ASSERT_VERSION;
+
ret = pthread_key_create(&errstr_k, free);
if(ret) {
werrstr("can't create TLS value: %s", ixp_errbuf());
diff -r 0c3693f86599 -r 70b0c5d22f75 lib/libixp_rubythread/thread_ruby.c
--- a/lib/libixp_rubythread/thread_ruby.c Thu Jun 17 18:55:31 2010 -0400
+++ b/lib/libixp_rubythread/thread_ruby.c Fri Jun 18 12:15:18 2010 -0400
@@ -10,6 +10,19 @@
static IxpThread ixp_rthread;
static char RWLock[];
+/**
+ * Function: ixp_rubyinit
+ *
+ * This function initializes libixp for use in multithreaded
+ * programs embedded in the ruby interpreter. When using a pthread
+ * edition of ruby, ixp_pthread_init should be used instead. When
+ * using libixp in such programs, this function must be called
+ * before any other libixp functions.
+ *
+ * This function is part of libixp_rubythread, which is part of the
+ * libixp distribution, but is not built by default unless enabled
+ * in config.mk.
+ */
int
ixp_rubyinit(void) {
rb_require("thread.rb");
diff -r 0c3693f86599 -r 70b0c5d22f75 lib/libixp_task/thread_task.c
--- a/lib/libixp_task/thread_task.c Thu Jun 17 18:55:31 2010 -0400
+++ b/lib/libixp_task/thread_task.c Fri Jun 18 12:15:18 2010 -0400
@@ -8,6 +8,18 @@
static IxpThread ixp_task;
+/**
+ * Function: ixp_taskinit
+ *
+ * This function initializes libixp for use in multithreaded
+ * programs using the libtask threading system. When using libixp in
+ * such programs, this function must be called before any other
+ * libixp functions.
+ *
+ * This function is part of libixp_task, which is part of the libixp
+ * distribution, but is not built by default unless enabled in
+ * config.mk.
+ */
int
ixp_taskinit() {
ixp_thread = &ixp_task;
diff -r 0c3693f86599 -r 70b0c5d22f75 man/Ixp9Srv.3
--- a/man/Ixp9Srv.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/Ixp9Srv.3 Fri Jun 18 12:15:18 2010 -0400
@@ -45,8 +45,8 @@
.SH DESCRIPTION
.P
The ixp_serve9conn handles incoming 9P connections. It is
-ordinarily passed as the \fIread\fR member to \fBixp_listen(3)\fR with an
-Ixp9Srv structure passed as the \fIaux\fR member. The handlers
+ordinarily passed as the IreadR member to \fBixp_listen(3)\fR with an
+Ixp9Srv structure passed as the IauxR member. The handlers
defined in the Ixp9Srv structure are called whenever a matching
Fcall type is received. The handlers are expected to call
\fBixp_respond(3)\fR at some point, whether before they return or at
@@ -58,7 +58,7 @@
.P
Whenever a file is closed and an \fBIxpFid(3)\fR is about to be freed,
-the \fIfreefid\fR member is called to perform any necessary cleanup
+the IfreefidR member is called to perform any necessary cleanup
and to free any associated resources.
.SH SEE ALSO
diff -r 0c3693f86599 -r 70b0c5d22f75 man/IxpFcall.3
--- a/man/IxpFcall.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/IxpFcall.3 Fri Jun 18 12:15:18 2010 -0400
@@ -162,7 +162,7 @@
.SH DESCRIPTION
.P
The IxpFcall structure represents a 9P protocol message. The
-\fIhdr\fR element is common to all Fcall types, and may be used to
+IhdrR element is common to all Fcall types, and may be used to
determine the type and tag of the message. The IxpFcall type is
used heavily in server applications, where it both presents a
request to handler functions and returns a response to the
@@ -170,11 +170,11 @@
.P
Each member of the IxpFcall structure represents a certain
-message type, which can be discerned from the \fIhdr.type\fR field.
+message type, which can be discerned from the Ihdr.typeR field.
This value corresponds to one of the IxpFType constants. Types
with significant overlap use the same structures, thus TRead and
RWrite are both represented by IxpFIO and can be accessed via the
-\fIio\fR member as well as \fItread\fR and \fIrwrite\fR respectively.
+IioR member as well as ItreadR and IrwriteR respectively.
.SH SEE ALSO
.P
diff -r 0c3693f86599 -r 70b0c5d22f75 man/IxpFid.3
--- a/man/IxpFid.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/IxpFid.3 Fri Jun 18 12:15:18 2010 -0400
@@ -27,7 +27,7 @@
Represents an open file for a 9P connection. The same
structure persists as long as the file remains open, and is
installed in the \fBIxp9Req(3)\fR structure for any request Fcall
-which references it. Handlers may use the \fIaux\fR member to
+which references it. Handlers may use the IauxR member to
store any data which must persist for the life of the open
file.
diff -r 0c3693f86599 -r 70b0c5d22f75 man/IxpMsg.3
--- a/man/IxpMsg.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/IxpMsg.3 Fri Jun 18 12:15:18 2010 -0400
@@ -30,19 +30,19 @@
The IxpMsg struct represents a binary message, and is used
extensively by libixp for converting messages to and from
wire format. The location and size of a buffer are stored in
-\fIdata\fR and \fIsize\fR, respectively. \fIpos\fR points to the
+IdataR and IsizeR, respectively. IposR points to the
location in the message currently being packed or unpacked,
-while \fIend\fR points to the end of the message. The packing
-functions advance \fIpos\fR as they go, always ensuring that
-they don't read or write past \fIend\fR. When a message is
-entirely packed or unpacked, \fIpos\fR whould be less than or
-equal to \fIend\fR. Any other state indicates error.
+while IendR points to the end of the message. The packing
+functions advance IposR as they go, always ensuring that
+they don't read or write past IendR. When a message is
+entirely packed or unpacked, IposR whould be less than or
+equal to IendR. Any other state indicates error.
.P
ixp_message is a convenience function to pack a construct an
-IxpMsg from a buffer of a given \fIlength\fR and a given
-\fImode\fR. \fIpos\fR and \fIdata\fR are set to \fIdata\fR and \fIend\fR is
-set to \fIdata\fR + \fIlength\fR.
+IxpMsg from a buffer of a given IlengthR and a given
+ImodeR. IposR and IdataR are set to IdataR and IendR is
+set to IdataR + IlengthR.
.SH SEE ALSO
.P
diff -r 0c3693f86599 -r 70b0c5d22f75 man/IxpThread.3
--- a/man/IxpThread.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/IxpThread.3 Fri Jun 18 12:15:18 2010 -0400
@@ -72,9 +72,13 @@
writer of a shared resource, but should not allow new readers
while a writer is waitng for a lock. Mutexes should allow
only one accessor at a time. Rendezvous points are similar to
-pthread condition types. \fIerrbuf\fR should return a
+pthread condition types. IerrbufR should return a
thread\-local buffer or the size IXP_ERRMAX.
+.SH SEE ALSO
+.P
+ixp_pthread_init(3), ixp_taskinit(3), ixp_rubyinit(3)
+
.\" man code generated by txt2tags 2.5 (http://txt2tags.sf.net)
.\" cmdline: txt2tags -o- IxpThread.man3
diff -r 0c3693f86599 -r 70b0c5d22f75 man/Makefile
--- a/man/Makefile Thu Jun 17 18:55:31 2010 -0400
+++ b/man/Makefile Fri Jun 18 12:15:18 2010 -0400
@@ -3,7 +3,7 @@
include $(ROOT)/mk/ixp.mk
include targets.mk
-MANPAGES += ixpc.1
+MANPAGES += ixpc.1 libixp.3 ixp_srvutils.3
include $(ROOT)/mk/man.mk
diff -r 0c3693f86599 -r 70b0c5d22f75 man/header.t2t
--- a/man/header.t2t Thu Jun 17 18:55:31 2010 -0400
+++ b/man/header.t2t Fri Jun 18 12:15:18 2010 -0400
@@ -1,9 +1,12 @@
%!target: man
%!encoding: UTF-8
+%# There's apparently no other way to do this.
+%!postproc(man): "^(.TH.*?) 1 " "\1 3 "
+
%!preproc: \bPROVISIONAL\b **PROVISIONAL**
-%!preproc: [FSTV]<(.*?)> **\1(3)**
-%!preproc: [P]<(.*?)> //\1//
+%!preproc: [FMSTV]<(.*?)> **\1(3)**
+%!postproc(man): [P]<(.*?)> \fI\1\fR
%!postproc(man): (\[.*?\]) \\fI\1\\fR
%!postproc(man): \+$ \n.P
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_close.3
--- a/man/ixp_close.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/ixp_close.3 Fri Jun 18 12:15:18 2010 -0400
@@ -13,7 +13,7 @@
.SH DESCRIPTION
.P
-Closes the file pointed to by \fIf\fR and frees its
+Closes the file pointed to by IfR and frees its
associated data structures;
.SH RETURN VALUE
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_dial.3
--- a/man/ixp_dial.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/ixp_dial.3 Fri Jun 18 12:15:18 2010 -0400
@@ -24,8 +24,8 @@
.SH DESCRIPTION
.P
These functions hide some of the ugliness of Berkely
-Sockets. ixp_dial connects to the resource at \fIaddress\fR,
-while ixp_announce begins listening on \fIaddress\fR.
+Sockets. ixp_dial connects to the resource at IaddressR,
+while ixp_announce begins listening on IaddressR.
.SH RETURN VALUE
.P
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_errbuf.3
--- a/man/ixp_errbuf.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/ixp_errbuf.3 Fri Jun 18 12:15:18 2010 -0400
@@ -31,7 +31,7 @@
A format string with which to write the errstr.
.TP
.RB ...
-Arguments to \fIfmt\fR.
+Arguments to IfmtR.
.SH DESCRIPTION
.P
@@ -41,16 +41,16 @@
.P
\fBixp_errbuf(3)\fR returns the errstr buffer for the current
-thread. \fBixp_rerrstr(3)\fR fills \fIbuf\fR with the data from
+thread. \fBixp_rerrstr(3)\fR fills IbufR with the data from
the current thread's error buffer, while \fBixp_errstr(3)\fR
-exchanges \fIbuf\fR's contents with those of the current
+exchanges IbufR's contents with those of the current
thread's error buffer. \fBixp_werrstr(3)\fR formats the given
-format string, \fIfmt\fR, via \fBixp_vsnprint(3)\fR and writes it to
+format string, IfmtR, via \fBixp_vsnprint(3)\fR and writes it to
the error buffer.
.P
\fBixp_vsnprint(3)\fR may be set to a function which will format
-its arguments write the result to the \fInbuf\fR length buffer
+its arguments write the result to the InbufR length buffer
\fBbuf(3)\fR. The default value is \fBvsnprintf(3)\fR. The function must
format '%s' as a nul\-terminated string and may not consume
any arguments not indicated by a %\-prefixed format specifier,
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_listen.3
--- a/man/ixp_listen.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/ixp_listen.3 Fri Jun 18 12:15:18 2010 -0400
@@ -17,7 +17,7 @@
int fd; /* The file descriptor of the connection. */
void (*read)(IxpConn *);
void (*close)(IxpConn *);
- char closed; /* Non-zero when //fd// has been closed. */
+ char closed; /* Non-zero when IfdR has been closed. */
/* Private members */
...
@@ -31,7 +31,7 @@
.TP
aux
A piece of data to store in the connection's
-\fIaux\fR member of the IxpConn data structure.
+IauxR member of the IxpConn data structure.
.TP
read
The function called when the connection has
@@ -43,14 +43,18 @@
.SH DESCRIPTION
.P
-Starts the server \fIsrv\fR listening on \fIfd\fR. The optional
-\fIread\fR and \fIclose\fR callbacks are called with the IxpConn
+Starts the server IsrvR listening on IfdR. The optional
+IreadR and IcloseR callbacks are called with the IxpConn
structure for the connection as their sole argument.
.SH RETURN VALUE
.P
Returns the connection's new IxpConn data structure.
+.SH SEE ALSO
+.P
+ixp_serverloop(3), ixp_serve9conn(3), ixp_hangup(3)
+
.\" man code generated by txt2tags 2.5 (http://txt2tags.sf.net)
.\" cmdline: txt2tags -o- ixp_listen.man3
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_mount.3
--- a/man/ixp_mount.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/ixp_mount.3 Fri Jun 18 12:15:18 2010 -0400
@@ -41,9 +41,9 @@
.SH DESCRIPTION
.P
-Initiate a 9P connection with the server at \fIaddress\fR,
-connected to on \fIfd\fR, or under the process's namespace
-directory as \fIname\fR.
+Initiate a 9P connection with the server at IaddressR,
+connected to on IfdR, or under the process's namespace
+directory as InameR.
.SH RETURN VALUE
.P
@@ -51,7 +51,7 @@
.SH SEE ALSO
.P
-ixp_unmount(3)
+ixp_open(3), ixp_create(3), ixp_remove(3), ixp_unmount(3)
.\" man code generated by txt2tags 2.5 (http://txt2tags.sf.net)
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_open.3
--- a/man/ixp_open.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/ixp_open.3 Fri Jun 18 12:15:18 2010 -0400
@@ -57,10 +57,10 @@
.SH DESCRIPTION
.P
-ixp_open and ixp_create each open a file at \fIpath\fR.
-\fImode\fR must include OREAD, OWRITE, or ORDWR, and may
+ixp_open and ixp_create each open a file at IpathR.
+ImodeR must include OREAD, OWRITE, or ORDWR, and may
include any of the modes specified in \fBIxpOMode(3)\fR.
-ixp_create, additionally, creates a file at \fIpath\fR if it
+ixp_create, additionally, creates a file at IpathR if it
doesn't already exist.
.SH RETURN VALUE
@@ -70,7 +70,8 @@
.SH SEE ALSO
.P
-ixp_mount(3), ixp_read(3), ixp_write(3), ixp_close(3)
+ixp_mount(3), ixp_read(3), ixp_write(3), ixp_print(3),
+ixp_fstat(3), ixp_close(3)
.\" man code generated by txt2tags 2.5 (http://txt2tags.sf.net)
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_pdata.3
--- a/man/ixp_pdata.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/ixp_pdata.3 Fri Jun 18 12:15:18 2010 -0400
@@ -13,16 +13,16 @@
.SH DESCRIPTION
.P
-Packs or unpacks a raw character buffer of size \fIlen\fR.
+Packs or unpacks a raw character buffer of size IlenR.
.P
-If \fImsg\fR\->mode is MsgPack, buffer pointed to by \fIdata\fR is
-packed into the buffer at \fImsg\fR\->pos. If \fImsg\fR\->mode is
-MsgUnpack, the address pointed to by \fIs\fR is loaded with a
+If ImsgR\->mode is MsgPack, buffer pointed to by IdataR is
+packed into the buffer at ImsgR\->pos. If ImsgR\->mode is
+MsgUnpack, the address pointed to by IsR is loaded with a
malloc(3) allocated buffer with the contents of the buffer at
-\fImsg\fR\->pos. In either case, \fImsg\fR\->pos is advanced by the
+ImsgR\->pos. In either case, ImsgR\->pos is advanced by the
number of bytes read or written. If the action would advance
-\fImsg\fR\->pos beyond \fImsg\fR\->end, \fImsg\fR\->pos is still advanced
+ImsgR\->pos beyond ImsgR\->end, ImsgR\->pos is still advanced
but no other action is taken.
.SH SEE ALSO
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_pending_write.3
--- a/man/ixp_pending_write.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/ixp_pending_write.3 Fri Jun 18 12:15:18 2010 -0400
@@ -31,15 +31,15 @@
broadcasting events or writing data when it becomes
available. When a file to be used with these functions is
opened, ixp_pending_pushfid should be called with its
-\fBIxpFid(3)\fR as an argument. This sets the IxpFid's \fIpending\fR
+\fBIxpFid(3)\fR as an argument. This sets the IxpFid's IpendingR
member to true. Thereafter, for each file with its
-\fIpending\fR member set, ixp_pending_respond should be called
+IpendingR member set, ixp_pending_respond should be called
for each TRead request, ixp_pending_clunk for each TClunk
request, and ixp_pending_flush for each TFlush request.
.P
-ixp_pending_write queues the data in \fIdat\fR of length \fIndat\fR
-to be written to each currently pending fid in \fIpending\fR. If
+ixp_pending_write queues the data in IdatR of length IndatR
+to be written to each currently pending fid in IpendingR. If
there is a read request pending for a given fid, the data is
written immediately. Otherwise, it is written the next time
ixp_pending_respond is called. Likewise, if there is data
@@ -53,7 +53,7 @@
.SH RETURN VALUE
.P
-ixp_pending_clunk returns true if \fIpending\fR has any
+ixp_pending_clunk returns true if IpendingR has any
more pending IxpFids.
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_pfcall.3
--- a/man/ixp_pfcall.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/ixp_pfcall.3 Fri Jun 18 12:15:18 2010 -0400
@@ -30,7 +30,7 @@
.P
ixp_sizeof_stat returns the size of the packed represention
-of \fIstat\fR.
+of IstatR.
.SH SEE ALSO
.P
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_pstring.3
--- a/man/ixp_pstring.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/ixp_pstring.3 Fri Jun 18 12:15:18 2010 -0400
@@ -19,14 +19,14 @@
representation is a nul\-terminated character array.
.P
-If \fImsg\fR\->mode is MsgPack, the string pointed to by \fIs\fR is
-packed into the buffer at \fImsg\fR\->pos. If \fImsg\fR\->mode is
-MsgUnpack, the address pointed to by \fIs\fR is loaded with a
+If ImsgR\->mode is MsgPack, the string pointed to by IsR is
+packed into the buffer at ImsgR\->pos. If ImsgR\->mode is
+MsgUnpack, the address pointed to by IsR is loaded with a
malloc(3) allocated, nul\-terminated representation of the
-string packed at \fImsg\fR\->pos. In either case, \fImsg\fR\->pos is
+string packed at ImsgR\->pos. In either case, ImsgR\->pos is
advanced by the number of bytes read or written. If the
-action would advance \fImsg\fR\->pos beyond \fImsg\fR\->end,
-\fImsg\fR\->pos is still advanced but no other action is taken.
+action would advance ImsgR\->pos beyond ImsgR\->end,
+ImsgR\->pos is still advanced but no other action is taken.
.SH SEE ALSO
.P
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_pstrings.3
--- a/man/ixp_pstrings.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/ixp_pstrings.3 Fri Jun 18 12:15:18 2010 -0400
@@ -19,22 +19,22 @@
representation is an array of nul\-terminated character arrays.
.P
-If \fImsg\fR\->mode is MsgPack, \fI*num\fR strings in the array
-pointed to by \fIstrings\fR are packed into the buffer at
-\fImsg\fR\->pos. If \fImsg\fR\->mode is MsgUnpack, \fI*num\fR is loaded
+If ImsgR\->mode is MsgPack, I*numR strings in the array
+pointed to by IstringsR are packed into the buffer at
+ImsgR\->pos. If ImsgR\->mode is MsgUnpack, I*numR is loaded
with the number of strings unpacked, the array at
-\fI*strings\fR is loaded with pointers to the unpacked strings,
-and \fI(*strings)\fI[0]\fR\fR must be freed by the user. In either
-case, \fImsg\fR\->pos is advanced by the number of bytes read or
-written. If the action would advance \fImsg\fR\->pos beyond
-\fImsg\fR\->end, \fImsg\fR\->pos is still advanced, but no other
-action is taken. If \fI*num\fR is greater than \fImax\fR,
-\fImsg\fR\->pos is set beyond \fImsg\fR\->end and no other action is
+I*stringsR is loaded with pointers to the unpacked strings,
+and I(*strings)\fI[0]\fRR must be freed by the user. In either
+case, ImsgR\->pos is advanced by the number of bytes read or
+written. If the action would advance ImsgR\->pos beyond
+ImsgR\->end, ImsgR\->pos is still advanced, but no other
+action is taken. If I*numR is greater than ImaxR,
+ImsgR\->pos is set beyond ImsgR\->end and no other action is
taken.
.SH SEE ALSO
.P
-\fIIxpMsg\fR, \fIixp_pstring\fR, \fIixp_pdata\fR
+IIxpMsgR, Iixp_pstringR, Iixp_pdataR
.\" man code generated by txt2tags 2.5 (http://txt2tags.sf.net)
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_pthread_init.3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/man/ixp_pthread_init.3 Fri Jun 18 12:15:18 2010 -0400
@@ -0,0 +1,25 @@
+.TH "IXP_PTHREAD_INIT" 3 "2010 Jun" "libixp Manual"
+
+.SH NAME
+.P
+ixp_pthread_init
+
+.SH SYNOPSIS
+.nf
+ #include <ixp.h>
+
+ int ixp_pthread_init(void);
+.fi
+
+.SH DESCRIPTION
+.P
+This function initializes libixp for use in multithreaded
+programs using the POSIX thread system. When using libixp in such
+programs, this function must be called before any other libixp
+functions. This function is part of libixp_pthread, which you
+must explicitly link against.
+
+
+.\" man code generated by txt2tags 2.5 (http://txt2tags.sf.net)
+.\" cmdline: txt2tags -o- ixp_pthread_init.man3
+
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_pu8.3
--- a/man/ixp_pu8.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/ixp_pu8.3 Fri Jun 18 12:15:18 2010 -0400
@@ -23,12 +23,12 @@
specified size.
.P
-If \fImsg\fR\->mode is MsgPack, the value pointed to by \fIval\fR is
-packed into the buffer at \fImsg\fR\->pos. If \fImsg\fR\->mode is
-MsgUnpack, the packed value at \fImsg\fR\->pos is loaded into the
-location pointed to by \fIval\fR. In both cases, \fImsg\fR\->pos is
+If ImsgR\->mode is MsgPack, the value pointed to by IvalR is
+packed into the buffer at ImsgR\->pos. If ImsgR\->mode is
+MsgUnpack, the packed value at ImsgR\->pos is loaded into the
+location pointed to by IvalR. In both cases, ImsgR\->pos is
advanced by the number of bytes read or written. If the call
-would advance \fImsg\fR\->pos beyond \fImsg\fR\->end, \fImsg\fR\->pos is
+would advance ImsgR\->pos beyond ImsgR\->end, ImsgR\->pos is
advanced, but nothing is modified.
.SH SEE ALSO
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_read.3
--- a/man/ixp_read.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/ixp_read.3 Fri Jun 18 12:15:18 2010 -0400
@@ -26,11 +26,11 @@
.SH DESCRIPTION
.P
-ixp_read and ixp_pread each read \fIcount\fR bytes of data
-from the file pointed to by \fIfid\fR, into \fIbuf\fR. ixp_read
+ixp_read and ixp_pread each read IcountR bytes of data
+from the file pointed to by IfidR, into IbufR. ixp_read
begins reading at its stored offset, and increments it by
the number of bytes read. ixp_pread reads beginning at
-\fIoffset\fR and does not alter \fIfid\fR's stored offset.
+IoffsetR and does not alter IfidR's stored offset.
.SH RETURN VALUE
.P
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_respond.3
--- a/man/ixp_respond.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/ixp_respond.3 Fri Jun 18 12:15:18 2010 -0400
@@ -14,11 +14,11 @@
.SH DESCRIPTION
.P
Sends a response to the given request. The response is
-constructed from the \fIofcall\fR member of the \fIreq\fR parameter, or
-from the \fIerror\fR parameter if it is non\-null. In the latter
+constructed from the IofcallR member of the IreqR parameter, or
+from the IerrorR parameter if it is non\-null. In the latter
case, the response is of type RError, while in any other case it
-is of the same type as \fIreq\fR\->\fIofcall\fR, which must match the
-request type in \fIreq\fR\->\fIifcall\fR.
+is of the same type as IreqR\->IofcallR, which must match the
+request type in IreqR\->IifcallR.
.SH SEE ALSO
.P
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_rubyinit.3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/man/ixp_rubyinit.3 Fri Jun 18 12:15:18 2010 -0400
@@ -0,0 +1,30 @@
+.TH "IXP_RUBYINIT" 3 "2010 Jun" "libixp Manual"
+
+.SH NAME
+.P
+ixp_rubyinit
+
+.SH SYNOPSIS
+.nf
+ #include <ixp.h>
+
+ ixp_rubyinit
+.fi
+
+.SH DESCRIPTION
+.P
+This function initializes libixp for use in multithreaded
+programs embedded in the ruby interpreter. When using a pthread
+edition of ruby, ixp_pthread_init should be used instead. When
+using libixp in such programs, this function must be called
+before any other libixp functions.
+
+.P
+This function is part of libixp_rubythread, which is part of the
+libixp distribution, but is not built by default unless enabled
+in config.mk.
+
+
+.\" man code generated by txt2tags 2.5 (http://txt2tags.sf.net)
+.\" cmdline: txt2tags -o- ixp_rubyinit.man3
+
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_sendmsg.3
--- a/man/ixp_sendmsg.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/ixp_sendmsg.3 Fri Jun 18 12:15:18 2010 -0400
@@ -19,15 +19,15 @@
file descriptors.
.P
-ixp_sendmsg writes the data at \fImsg\fR\->pos upto \fImsg\fR\->end.
+ixp_sendmsg writes the data at ImsgR\->pos upto ImsgR\->end.
If the call returns non\-zero, all data is assured to have
been written.
.P
ixp_recvmsg first reads a 32 bit, little\-endian length from
-\fIfd\fR and then reads a message of that length (including the
-4 byte size specifier) into the buffer at \fImsg\fR\->data, so
-long as the size is less than \fImsg\fR\->size.
+IfdR and then reads a message of that length (including the
+4 byte size specifier) into the buffer at ImsgR\->data, so
+long as the size is less than ImsgR\->size.
.SH RETURN VALUE
.P
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_serverloop.3
--- a/man/ixp_serverloop.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/ixp_serverloop.3 Fri Jun 18 12:15:18 2010 -0400
@@ -26,7 +26,7 @@
.SH DESCRIPTION
.P
Enters the main loop of the server. Exits when
-\fIsrv\fR\->running becomes false, or when select(2) returns an
+IsrvR\->running becomes false, or when select(2) returns an
error other than EINTR.
.SH RETURN VALUE
@@ -37,7 +37,7 @@
.SH SEE ALSO
.P
-ixp_listen(3)
+ixp_listen(3), ixp_settimer(3)
.\" man code generated by txt2tags 2.5 (http://txt2tags.sf.net)
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_settimer.3
--- a/man/ixp_settimer.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/ixp_settimer.3 Fri Jun 18 12:15:18 2010 -0400
@@ -17,18 +17,18 @@
The timeout in milliseconds.
.TP
fn
-The function to call after \fImsec\fR milliseconds
+The function to call after ImsecR milliseconds
have elapsed.
.TP
aux
-An arbitrary argument to pass to \fIfn\fR when it
+An arbitrary argument to pass to IfnR when it
is called.
.SH DESCRIPTION
.P
Initializes a callback\-based timer to be triggerred after
-\fImsec\fR milliseconds. The timer is passed its id number
-and the value of \fIaux\fR.
+ImsecR milliseconds. The timer is passed its id number
+and the value of IauxR.
.SH RETURN VALUE
.P
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_srv_clonefiles.3
--- a/man/ixp_srv_clonefiles.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/ixp_srv_clonefiles.3 Fri Jun 18 12:15:18 2010 -0400
@@ -14,7 +14,7 @@
.SH DESCRIPTION
.P
Increase the reference count of every IxpFileId linked
-to \fIfileid\fR.
+to IfileidR.
.SH SEE ALSO
.P
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_srv_data2cstring.3
--- a/man/ixp_srv_data2cstring.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/ixp_srv_data2cstring.3 Fri Jun 18 12:15:18 2010 -0400
@@ -13,7 +13,7 @@
.SH DESCRIPTION
.P
-Ensure that the data member of \fIreq\fR is null terminated,
+Ensure that the data member of IreqR is null terminated,
removing any new line from its end.
.SH SEE ALSO
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_srv_readbuf.3
--- a/man/ixp_srv_readbuf.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/ixp_srv_readbuf.3 Fri Jun 18 12:15:18 2010 -0400
@@ -16,16 +16,16 @@
.SH DESCRIPTION
.P
Utility functions for handling TRead and TWrite requests for
-files backed by in\-memory buffers. For both functions, \fIbuf\fR
-points to a buffer and \fIlen\fR specifies the length of the
+files backed by in\-memory buffers. For both functions, IbufR
+points to a buffer and IlenR specifies the length of the
buffer. In the case of ixp_srv_writebuf, these values add a
level of pointer indirection, and updates the values if they
change.
.P
-If \fImax\fR has a value other than 0, ixp_srv_writebuf will
+If ImaxR has a value other than 0, ixp_srv_writebuf will
truncate any writes to that point in the buffer. Otherwise,
-\fI*buf\fR is assumed to be malloc(3) allocated, and is
+I*bufR is assumed to be malloc(3) allocated, and is
reallocated to fit the new data as necessary. The buffer is
is always left nul\-terminated.
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_srv_walkandclone.3
--- a/man/ixp_srv_walkandclone.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/ixp_srv_walkandclone.3 Fri Jun 18 12:15:18 2010 -0400
@@ -25,7 +25,7 @@
directory listings. Given the \fBIxpFileId(3)\fR of a directory and a
filename name should return a new IxpFileId (allocated via
\fBixp_srv_getfile(3)\fR) for the matching directory entry, or null
-if there is no match. If the passed name is null, \fIlookup\fR
+if there is no match. If the passed name is null, IlookupR
should return a linked list of IxpFileIds, one for each child
directory entry.
@@ -39,7 +39,7 @@
ixp_srv_readdir should be called to handle read requests on
directories. It prepares a stat for each child of the
directory, taking into account the requested offset, and
-calls \fBixp_respond(3)\fR. The \fIdostat\fR parameter must be a
+calls \fBixp_respond(3)\fR. The IdostatR parameter must be a
function which fills the passed \fBIxpStat(3)\fR pointer based on
the contents of the passed IxpFileId.
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_srv_writectl.3
--- a/man/ixp_srv_writectl.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/ixp_srv_writectl.3 Fri Jun 18 12:15:18 2010 -0400
@@ -15,12 +15,12 @@
.P
This utility function is meant to simplify the writing of
pseudo files to which single\-lined commands are written.
-In order to use this function, the \fIaux\fR member of
-\fIreq\fR\->fid must be nul or an \fBIxpFileId(3)\fR. Each line of the
+In order to use this function, the IauxR member of
+IreqR\->fid must be nul or an \fBIxpFileId(3)\fR. Each line of the
written data is stripped of its trailing newline,
nul\-terminated, and stored in an \fBIxpMsg(3)\fR. For each line
-thus prepared, \fIfn\fR is called with the IxpMsg pointer and
-the the \fIp\fR member of the IxpFileId.
+thus prepared, IfnR is called with the IxpMsg pointer and
+the the IpR member of the IxpFileId.
.\" man code generated by txt2tags 2.5 (http://txt2tags.sf.net)
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_srvutils.3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/man/ixp_srvutils.3 Fri Jun 18 12:15:18 2010 -0400
@@ -0,0 +1,25 @@
+.TH "IXP_API" 3 "2010 Jun" "libixp Manual"
+
+.SH SYNPOSIS
+.nf
+ #include <ixp_srvutil.h>
+.fi
+
+.SH DESCRIPTION
+.P
+Since a large part of libixp's purpose revolves around creating
+virtual filesystems, a small library of utility functions are
+provided towards furthering that end. They are mainly intended
+for applications providing simple, largely static virtual
+filesystems containing control files and event feeds, though
+they are easily adaptable to other ends.
+
+.SH SEE ALSO
+.P
+\fBixp_srv_clonefiles(3)\fR, \fBixp_srv_data2cstring(3)\fR,
+\fBixp_srv_readbuf(3)\fR, \fBixp_srv_walkandclone(3)\fR, \fBixp_srv_writectl(3)\fR
+
+
+.\" man code generated by txt2tags 2.5 (http://txt2tags.sf.net)
+.\" cmdline: txt2tags -o- ixp_srvutils.man3
+
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_srvutils.man3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/man/ixp_srvutils.man3 Fri Jun 18 12:15:18 2010 -0400
@@ -0,0 +1,23 @@
+IXP_API
+libixp Manual
+2010 Jun
+
+%!includeconf: header.t2t
+
+= SYNPOSIS =
+```
+#include <ixp_srvutil.h>
+```
+= DESCRIPTION =
+
+Since a large part of libixp's purpose revolves around creating
+virtual filesystems, a small library of utility functions are
+provided towards furthering that end. They are mainly intended
+for applications providing simple, largely static virtual
+filesystems containing control files and event feeds, though
+they are easily adaptable to other ends.
+
+= SEE ALSO =
+F<ixp_srv_clonefiles>, F<ixp_srv_data2cstring>,
+F<ixp_srv_readbuf>, F<ixp_srv_walkandclone>, F<ixp_srv_writectl>
+
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_stat.3
--- a/man/ixp_stat.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/ixp_stat.3 Fri Jun 18 12:15:18 2010 -0400
@@ -77,7 +77,7 @@
.SH DESCRIPTION
.P
-Stats the file at \fIpath\fR or pointed to by \fIfid\fR.
+Stats the file at IpathR or pointed to by IfidR.
.SH RETURN VALUE
.P
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_taskinit.3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/man/ixp_taskinit.3 Fri Jun 18 12:15:18 2010 -0400
@@ -0,0 +1,29 @@
+.TH "IXP_TASKINIT" 3 "2010 Jun" "libixp Manual"
+
+.SH NAME
+.P
+ixp_taskinit
+
+.SH SYNOPSIS
+.nf
+ #include <ixp.h>
+
+ ixp_taskinit
+.fi
+
+.SH DESCRIPTION
+.P
+This function initializes libixp for use in multithreaded
+programs using the libtask threading system. When using libixp in
+such programs, this function must be called before any other
+libixp functions.
+
+.P
+This function is part of libixp_task, which is part of the libixp
+distribution, but is not built by default unless enabled in
+config.mk.
+
+
+.\" man code generated by txt2tags 2.5 (http://txt2tags.sf.net)
+.\" cmdline: txt2tags -o- ixp_taskinit.man3
+
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_unmount.3
--- a/man/ixp_unmount.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/ixp_unmount.3 Fri Jun 18 12:15:18 2010 -0400
@@ -13,7 +13,7 @@
.SH DESCRIPTION
.P
-Unmounts the client \fIclient\fR and frees its data structures.
+Unmounts the client IclientR and frees its data structures.
.SH SEE ALSO
.P
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_unsettimer.3
--- a/man/ixp_unsettimer.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/ixp_unsettimer.3 Fri Jun 18 12:15:18 2010 -0400
@@ -18,7 +18,7 @@
.SH DESCRIPTION
.P
-Voids the timer identified by \fIid\fR.
+Voids the timer identified by IidR.
.SH RETURN VALUE
.P
diff -r 0c3693f86599 -r 70b0c5d22f75 man/ixp_write.3
--- a/man/ixp_write.3 Thu Jun 17 18:55:31 2010 -0400
+++ b/man/ixp_write.3 Fri Jun 18 12:15:18 2010 -0400
@@ -26,16 +26,16 @@
.SH DESCRIPTION
.P
-ixp_write and ixp_pwrite each write \fIcount\fR bytes of
-data stored in \fIbuf\fR to the file pointed to by C<fid>.
+ixp_write and ixp_pwrite each write IcountR bytes of
+data stored in IbufR to the file pointed to by C<fid>.
ixp_write writes its data at its stored offset, and
-increments it by \fIcount\fR. ixp_pwrite writes its data a
-\fIoffset\fR and does not alter C<fid>'s stored offset.
+increments it by IcountR. ixp_pwrite writes its data a
+IoffsetR and does not alter C<fid>'s stored offset.
.SH RETURN VALUE
.P
These functions return the number of bytes actually
-written. Any value less than \fIcount\fR must be considered
+written. Any value less than IcountR must be considered
a failure.
.SH SEE ALSO
diff -r 0c3693f86599 -r 70b0c5d22f75 man/libixp.3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/man/libixp.3 Fri Jun 18 12:15:18 2010 -0400
@@ -0,0 +1,28 @@
+.TH "IXP_API" 3 "2010 Jun" "libixp Manual"
+
+.SH SYNPOSIS
+.nf
+ #include <ixp.h>
+.fi
+
+.SH DESCRIPTION
+.P
+libixp is a client and server library for interacting with the
+9P filesystem protocol. It includes a straightforward 9P
+filesystem client, a callback\-based server library, portable
+utilities for opening and multiplexing sockets, a library of
+data marshalling functions, and utilities to ease the
+construction of simple virtual filesystem servers. Further,
+libixp is completely threadsafe and can be adapted to virtual
+any threading system.
+
+.SH SEE ALSO
+.P
+\fBIXP_API(3)\fR, \fBIxpThread(3)\fR, \fBIxpMsg(3)\fR, \fBixp_mount(3)\fR, \fBixp_dial(3)\fR,
+\fBixp_serverloop(3)\fR, \fBixp_listen(3)\fR, \fBixp_settimer(3)\fR,
+\fBixp_serve9conn(3)\fR, ixp_srvutils(3)
+
+
+.\" man code generated by txt2tags 2.5 (http://txt2tags.sf.net)
+.\" cmdline: txt2tags -o- libixp.man3
+
diff -r 0c3693f86599 -r 70b0c5d22f75 man/libixp.man3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/man/libixp.man3 Fri Jun 18 12:15:18 2010 -0400
@@ -0,0 +1,25 @@
+IXP_API
+libixp Manual
+2010 Jun
+
+%!includeconf: header.t2t
+
+= SYNPOSIS =
+```
+#include <ixp.h>
+```
+= DESCRIPTION =
+
+libixp is a client and server library for interacting with the
+9P filesystem protocol. It includes a straightforward 9P
+filesystem client, a callback-based server library, portable
+utilities for opening and multiplexing sockets, a library of
+data marshalling functions, and utilities to ease the
+construction of simple virtual filesystem servers. Further,
+libixp is completely threadsafe and can be adapted to virtual
+any threading system.
+
+= SEE ALSO =
+M<IXP_API>, S<IxpThread>, S<IxpMsg>, F<ixp_mount>, F<ixp_dial>,
+F<ixp_serverloop>, F<ixp_listen>, F<ixp_settimer>,
+F<ixp_serve9conn>, ixp_srvutils(3)
diff -r 0c3693f86599 -r 70b0c5d22f75 man/targets.mk
--- a/man/targets.mk Thu Jun 17 18:55:31 2010 -0400
+++ b/man/targets.mk Fri Jun 18 12:15:18 2010 -0400
@@ -43,4 +43,7 @@
'ixp_smprint.3' \
'ixp_namespace.3' \
'ixp_eprint.3' \
- 'ixp_emalloc.3 ixp_emallocz.3 ixp_erealloc.3 ixp_estrdup.3'
+ 'ixp_emalloc.3 ixp_emallocz.3 ixp_erealloc.3 ixp_estrdup.3' \
+ 'ixp_pthread_init.3' \
+ 'ixp_rubyinit.3' \
+ 'ixp_taskinit.3'
diff -r 0c3693f86599 -r 70b0c5d22f75 util/grepdoc
--- a/util/grepdoc Thu Jun 17 18:55:31 2010 -0400
+++ b/util/grepdoc Fri Jun 18 12:15:18 2010 -0400
@@ -131,8 +131,6 @@
@{[strftime "%Y %b", localtime]}
\%!includeconf: header.t2t
-\%# There's apparently no other way to do this.
-\%!postproc(man): "^(\.TH.*?) 1 " "\\1 3 "
EOF
@@ -146,7 +144,7 @@
section 'DESCRIPTION', $_;
section 'RETURN VALUE', $section{Returns} if exists $section{Returns};
section 'BUGS', $section{Bugs} if exists $section{Bugs};
- section 'SEE ALSO', subst {"$1(3)"} qr/\b[FSTV]<(.*?)>/, $section{'See also'}
+ section 'SEE ALSO', subst {"$1(3)"} qr/\b[FMSTV]<(.*?)>/, $section{'See also'}
if exists $section{'See also'};
open STDOUT, ">&", $stdout
}
Received on Fri Jun 18 2010 - 16:15:33 UTC
This archive was generated by hypermail 2.2.0 : Fri Jun 18 2010 - 16:24:04 UTC