1/*	$Id: main.h,v 1.27 2017/03/03 14:23:23 schwarze Exp $ */
2/*
3 * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
4 * Copyright (c) 2014, 2015 Ingo Schwarze <schwarze@openbsd.org>
5 *
6 * Permission to use, copy, modify, and distribute this software for any
7 * purpose with or without fee is hereby granted, provided that the above
8 * copyright notice and this permission notice appear in all copies.
9 *
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 */
18
19struct	roff_man;
20struct	manoutput;
21
22/*
23 * Definitions for main.c-visible output device functions, e.g., -Thtml
24 * and -Tascii.  Note that ascii_alloc() is named as such in
25 * anticipation of latin1_alloc() and so on, all of which map into the
26 * terminal output routines with different character settings.
27 */
28
29void		 *html_alloc(const struct manoutput *);
30void		  html_mdoc(void *, const struct roff_man *);
31void		  html_man(void *, const struct roff_man *);
32void		  html_free(void *);
33
34void		  tree_mdoc(void *, const struct roff_man *);
35void		  tree_man(void *, const struct roff_man *);
36
37void		  man_mdoc(void *, const struct roff_man *);
38void		  man_man(void *, const struct roff_man *);
39
40void		 *locale_alloc(const struct manoutput *);
41void		 *utf8_alloc(const struct manoutput *);
42void		 *ascii_alloc(const struct manoutput *);
43void		  ascii_free(void *);
44
45void		 *pdf_alloc(const struct manoutput *);
46void		 *ps_alloc(const struct manoutput *);
47void		  pspdf_free(void *);
48
49void		  terminal_mdoc(void *, const struct roff_man *);
50void		  terminal_man(void *, const struct roff_man *);
51void		  terminal_sepline(void *);
52
53void		  markdown_mdoc(void *, const struct roff_man *);
54