summaryrefslogtreecommitdiffstats
path: root/ml.h
diff options
context:
space:
mode:
Diffstat (limited to 'ml.h')
-rw-r--r--ml.h26
1 files changed, 17 insertions, 9 deletions
diff --git a/ml.h b/ml.h
index 91a6b3ff..579297ee 100644
--- a/ml.h
+++ b/ml.h
@@ -29,16 +29,24 @@ enum md_ns {
MD_NS_DEFAULT,
};
-typedef int (*ml_begin)(struct md_mbuf *, const struct md_args *,
- const struct tm *, const char *, const char *,
+struct ml_cbs {
+ int (*ml_begin)(struct md_mbuf *,
+ const struct md_args *,
+ const struct tm *,
+ const char *, const char *,
const char *, const char *);
-typedef int (*ml_end)(struct md_mbuf *,
+ int (*ml_end)(struct md_mbuf *,
const struct md_args *);
-typedef ssize_t (*ml_endtag)(struct md_mbuf *, void *,
- const struct md_args *, enum md_ns, int);
-typedef ssize_t (*ml_begintag)(struct md_mbuf *, void *,
- const struct md_args *, enum md_ns, int,
+ ssize_t (*ml_endtag)(struct md_mbuf *,
+ void *, const struct md_args *,
+ enum md_ns, int);
+ ssize_t (*ml_begintag)(struct md_mbuf *,
+ void *, const struct md_args *,
+ enum md_ns, int,
const int *, const char **);
+ int (*ml_alloc)(void **);
+ void (*ml_free)(void *);
+};
__BEGIN_DECLS
@@ -52,9 +60,9 @@ int ml_puts(struct md_mbuf *, const char *, size_t *);
int ml_putchars(struct md_mbuf *,
char, size_t, size_t *);
-struct md_mlg *mlg_alloc(const struct md_args *, void *,
+struct md_mlg *mlg_alloc(const struct md_args *,
const struct md_rbuf *, struct md_mbuf *,
- ml_begintag, ml_endtag, ml_begin, ml_end);
+ const struct ml_cbs *);
int mlg_exit(struct md_mlg *, int);
int mlg_line(struct md_mlg *, char *);