.\" -*-nroff-*-
-.TH selbuf 3mLib "23 May 1999" mLib
+.TH selbuf 3 "23 May 1999" mLib
.SH NAME
selbuf \- line-buffering input selector
+.\" @selbuf_enable
+.\" @selbuf_disable
+.\" @selbuf_init
.SH SYNOPSIS
.nf
.B "#include <mLib/selbuf.h>"
The
.B selbuf
subsystem is a selector which integrates with the
-.BR sel (3mLib)
+.BR sel (3)
system for I/O multiplexing. It reads entire text lines from a file
descriptor and passes them to a caller-defined function. It uses the
line buffer described in
-.BR lbuf (3mLib)
+.BR lbuf (3)
to do its work: you should read about it in order to understand exactly
what gets considered to be a line of text and what doesn't, and the
exact rules about what your line handling function should and shouldn't
.B selbuf_init
function. This requires a fair few arguments:
.TP
-.I b
+.BI "selbuf *" b
Pointer to the
.B selbuf
object to initialize.
.TP
-.I s
+.BI "sel_state *" s
Pointer to a multiplexor object (type
.BR sel_state )
to which this selector should be attached. See
-.BR sel (3mLib)
+.BR sel (3)
for more details about multiplexors, and how this whole system works.
.TP
-.I fd
+.BI "int " fd
The file descriptor of the stream the selector should read from.
.TP
-.I func
+.BI "void (*" func ")(char *" s ", void *" p )
The
.I "line handler"
function. It is passed a pointer to each line read from the file (or
.B selbuf_init
described below).
.TP
-.I p
+.BI "void *" p
A pointer argument passed to
.I func
for each line read from the file. Apart from this, the pointer is not
the next
.B sel_select
call.
+.SH "SEE ALSO"
+.BR lbuf (3),
+.BR sel (3),
+.BR mLib (3).
.SH AUTHOR
Mark Wooding, <mdw@nsict.org>