]> git.cameronkatri.com Git - mandoc.git/blobdiff - libmdocml.h
Single call-back for filters.
[mandoc.git] / libmdocml.h
index 63b8c3f4004820817135ed9677ca573963f98625..221b751d437bda7c7d1a2a6a2abfcecd0c1c87f4 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: libmdocml.h,v 1.2 2008/11/22 18:34:06 kristaps Exp $ */
+/* $Id: libmdocml.h,v 1.7 2008/11/25 12:14:02 kristaps Exp $ */
 /*
  * Copyright (c) 2008 Kristaps Dzonsons <kristaps@kth.se>
  *
 
 #include <sys/types.h>
 
-struct md_rbuf {
-       int              fd;
-       const char      *name;
-       char            *buf;
-       size_t           bufsz;
-       size_t           line;
+struct         md_params_dummy {
+       int              dummy;
 };
 
-struct md_mbuf {
-       int              fd;
-       const char      *name;
-       char            *buf;
-       size_t           bufsz;
-       size_t           pos;
+struct         md_params_html4_strict {
+       int              dummy;
+};
+
+union  md_params {
+       struct md_params_dummy dummy;
+       struct md_params_html4_strict html4_strict;
 };
 
 enum   md_type {
-       MD_DUMMY
+       MD_DUMMY,               /* Dummy type echoes input. */
+       MD_HTML4_STRICT         /* HTML4.01-strict. */
+};
+
+struct md_args {
+       union md_params  params;/* Parameters for parser. */
+       enum md_type     type;  /* Type of parser. */
+};
+
+struct md_buf {
+       int              fd;    /* Open file descriptor. */
+       char            *name;  /* Name of file/socket/whatever. */
+       char            *buf;   /* Buffer for storing data. */
+       size_t           bufsz; /* Size of buf. */
 };
 
 __BEGIN_DECLS
 
-int    md_run(enum md_type, struct md_mbuf *, struct md_rbuf *);
+/* Run the parser over prepared input and output buffers.  Returns -1 on
+ * failure and 0 on success.
+ */
+int    md_run(const struct md_args *,
+               const struct md_buf *, const struct md_buf *);
 
 __END_DECLS