chiark / gitweb /
buf: Fix two embarassing bugs found while writing Lisp bindings.
[mLib] / selbuf.h
index 689d3f78fe39f583ccc1df78e2dbe46aca2f876a..d5e19738e205c9964736366d76d2faa591400736 100644 (file)
--- a/selbuf.h
+++ b/selbuf.h
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: selbuf.h,v 1.1 1999/05/14 21:01:15 mdw Exp $
+ * $Id: selbuf.h,v 1.5 2004/04/08 01:36:13 mdw Exp $
  *
  * Line-buffering select handler
  *
  * MA 02111-1307, USA.
  */
 
-/*----- Revision history --------------------------------------------------* 
- *
- * $Log: selbuf.h,v $
- * Revision 1.1  1999/05/14 21:01:15  mdw
- * Integrated `select' handling bits from the background resolver project.
- *
- */
-
-#ifndef SELBUF_H
-#define SELBUF_H
+#ifndef MLIB_SELBUF_H
+#define MLIB_SELBUF_H
 
 #ifdef __cplusplus
   extern "C" {
 
 /*----- Header files ------------------------------------------------------*/
 
-#ifndef LBUF_H
+#ifndef MLIB_LBUF_H
 #  include "lbuf.h"
 #endif
 
-#ifndef SEL_H
+#ifndef MLIB_SEL_H
 #  include "sel.h"
 #endif
 
@@ -85,12 +77,24 @@ extern void selbuf_enable(selbuf */*b*/);
 
 extern void selbuf_disable(selbuf */*b*/);
 
+/* --- @selbuf_setsize@ --- *
+ *
+ * Arguments:  @selbuf *b@ = pointer to buffer block
+ *             @size_t sz@ = size of buffer
+ *
+ * Returns:    ---
+ *
+ * Use:                Sets the size of the buffer used for reading lines.
+ */
+
+extern void selbuf_setsize(selbuf */*b*/, size_t /*sz*/);
+
 /* --- @selbuf_init@ --- *
  *
  * Arguments:  @selbuf *b@ = pointer to buffer block
  *             @sel_state *s@ = pointer to select state to attach to
  *             @int fd@ = file descriptor to listen to
- *             @void (*func)(char *s, void *p)@ = function to call
+ *             @lbuf_func *func@ = function to call
  *             @void *p@ = argument for function
  *
  * Returns:    ---
@@ -98,11 +102,19 @@ extern void selbuf_disable(selbuf */*b*/);
  * Use:                Initializes a buffer block.
  */
 
-extern void selbuf_init(selbuf */*b*/,
-                       sel_state */*s*/,
-                       int /*fd*/,
-                       void (*/*func*/)(char */*s*/, void */*p*/),
-                       void */*p*/);
+extern void selbuf_init(selbuf */*b*/, sel_state */*s*/, int /*fd*/,
+                       lbuf_func */*func*/, void */*p*/);
+
+/* --- @selbuf_destroy@ --- *
+ *
+ * Arguments:  @selbuf *b@ = pointer to buffer block
+ *
+ * Returns:    ---
+ *
+ * Use:                Deallocates a line buffer and frees any resources it owned.
+ */
+
+extern void selbuf_destroy(selbuf */*b*/);
 
 /*----- That's all, folks -------------------------------------------------*/