X-Git-Url: https://git.distorted.org.uk/~mdw/mLib/blobdiff_plain/ff76c38f2d94c82b234d67e717d855b52e5d6421..419895bb703f5cba6fc86d56277abdc4e6b28330:/man/selbuf.3 diff --git a/man/selbuf.3 b/man/selbuf.3 index bedae52..5ff9f28 100644 --- a/man/selbuf.3 +++ b/man/selbuf.3 @@ -1,21 +1,22 @@ .\" -*-nroff-*- -.TH selbuf 3 "23 May 1999" mLib +.TH selbuf 3 "23 May 1999" "Straylight/Edgeware" "mLib utilities library" .SH NAME selbuf \- line-buffering input selector .\" @selbuf_enable .\" @selbuf_disable +.\" @selbuf_setsize .\" @selbuf_init +.\" @selbuf_destroy .SH SYNOPSIS .nf .B "#include " .BI "void selbuf_enable(selbuf *" b ); .BI "void selbuf_disable(selbuf *" b ); -.BI "void selbuf_init(selbuf *" b , -.BI " sel_state *" s , -.BI " int " fd , -.BI " void (*" func ")(char *" s ", void *" p ), -.BI " void *" p ); +.BI "void selbuf_setsize(selbuf *" b ", size_t " sz ); +.BI "void selbuf_init(selbuf *" b ", sel_state *" s ", int " fd , +.BI " lbuf_func *" func ", void *" p ); +.BI "void selbuf_destroy(selbuf *" b ); .fi .SH DESCRIPTION The @@ -31,9 +32,7 @@ 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 do. .PP -All the data for a -.B selbuf -selector is stored in an object of type +The data for a line selector is stored in an object of type .BR selbuf . This object must be allocated by the caller, and initialized using the .B selbuf_init @@ -54,15 +53,17 @@ for more details about multiplexors, and how this whole system works. .BI "int " fd The file descriptor of the stream the selector should read from. .TP -.BI "void (*" func ")(char *" s ", void *" p ) +.BI "lbuf_func *" func The .I "line handler" function. It is passed a pointer to each line read from the file (or -null to indicate end-of-file) and an arbitrary pointer (the +null to indicate end-of-file), the length of the line, and an arbitrary +pointer (the .I p argument to .B selbuf_init -described below). +described below). For full details, see +.BR lbuf (3). .TP .BI "void *" p A pointer argument passed to @@ -88,6 +89,15 @@ queued up from the last I/O operation: it doesn't necessarily wait for the next .B sel_select call. +.PP +The line buffer has a finite amount of memory for reading strings. The +size of this buffer is set by calling +.B selbuf_setsize +with the requested size. The default buffer size is 256 bytes. +.PP +When it's finished with, a line buffer selector must be destroyed by +calling +.BR selbuf_destroy . .SH "SEE ALSO" .BR lbuf (3), .BR sel (3),