-/* $Id: libmdocml.h,v 1.2 2008/11/22 18:34:06 kristaps Exp $ */
+/* $Id: libmdocml.h,v 1.6 2008/11/23 23:12:47 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. */
+ int dbg; /* Debug level. */
+#define MD_DBG_TREE 1
+};
+
+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