+static int
+md_run_leave(const struct md_args *args, struct md_mbuf *mbuf,
+ struct md_rbuf *rbuf, int c, void *data)
+{
+ assert(args);
+ assert(mbuf);
+ assert(rbuf);
+
+ /* Run exiters. */
+ switch (args->type) {
+ case (MD_HTML4_STRICT):
+ if ( ! md_exit_html4_strict(data, -1 == c ? 0 : 1))
+ c = -1;
+ break;
+ default:
+ if ( ! md_exit_dummy(data, -1 == c ? 0 : 1))
+ c = -1;
+ break;
+ }
+
+ /* Make final flush of buffer. */
+ if ( ! md_buf_flush(mbuf))
+ return(-1);
+
+ return(c);
+}
+
+
+static int
+md_run_enter(const struct md_args *args, struct md_mbuf *mbuf,
+ struct md_rbuf *rbuf, void *p)