/* $Id$ */ /* * Copyright (c) 2008 Kristaps Dzonsons * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ #include #include #include #include "libmdocml.h" #include "private.h" struct md_dummy { struct rofftree *tree; }; int md_line_dummy(void *arg, char *buf, size_t sz) { struct md_dummy *p; p = (struct md_dummy *)arg; return(roff_engine(p->tree, buf, sz)); } int md_exit_dummy(void *data, int flush) { int c; struct md_dummy *p; p = (struct md_dummy *)data; c = roff_free(p->tree, flush); free(p); return(c); } void * md_init_dummy(const struct md_args *args, struct md_mbuf *mbuf, const struct md_rbuf *rbuf) { struct md_dummy *p; if (NULL == (p = malloc(sizeof(struct md_dummy)))) { warn("malloc"); return(NULL); } if (NULL == (p->tree = roff_alloc(args, mbuf, rbuf))) { free(p); return(NULL); } return(p); }