xref: /illumos-gate/usr/src/cmd/mandoc/manconf.h (revision 4d131170e62381276a07ffc0aeb1b62e527d940c)
1*4d131170SRobert Mustacchi /* $OpenBSD: manconf.h,v 1.7 2018/11/22 11:30:15 schwarze Exp $ */
2371584c2SYuri Pankov /*
3*4d131170SRobert Mustacchi  * Copyright (c) 2011,2015,2017,2018,2020 Ingo Schwarze <schwarze@openbsd.org>
4371584c2SYuri Pankov  * Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
5371584c2SYuri Pankov  *
6371584c2SYuri Pankov  * Permission to use, copy, modify, and distribute this software for any
7371584c2SYuri Pankov  * purpose with or without fee is hereby granted, provided that the above
8371584c2SYuri Pankov  * copyright notice and this permission notice appear in all copies.
9371584c2SYuri Pankov  *
10371584c2SYuri Pankov  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES
11371584c2SYuri Pankov  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12371584c2SYuri Pankov  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
13371584c2SYuri Pankov  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14371584c2SYuri Pankov  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15371584c2SYuri Pankov  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16371584c2SYuri Pankov  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17*4d131170SRobert Mustacchi  *
18*4d131170SRobert Mustacchi  * Public interface to man(1) configuration management.
19*4d131170SRobert Mustacchi  * For use by the main program and by the formatters.
20371584c2SYuri Pankov  */
21371584c2SYuri Pankov 
22371584c2SYuri Pankov /* List of unique, absolute paths to manual trees. */
23371584c2SYuri Pankov 
24371584c2SYuri Pankov struct	manpaths {
25371584c2SYuri Pankov 	char	**paths;
26371584c2SYuri Pankov 	size_t	  sz;
27371584c2SYuri Pankov };
28371584c2SYuri Pankov 
29371584c2SYuri Pankov /* Data from -O options and man.conf(5) output directives. */
30371584c2SYuri Pankov 
31371584c2SYuri Pankov struct	manoutput {
32371584c2SYuri Pankov 	char	 *includes;
33371584c2SYuri Pankov 	char	 *man;
34*4d131170SRobert Mustacchi 	char	 *outfilename;
35371584c2SYuri Pankov 	char	 *paper;
36371584c2SYuri Pankov 	char	 *style;
37cec8643bSMichal Nowak 	char	 *tag;
38*4d131170SRobert Mustacchi 	char	 *tagfilename;
39371584c2SYuri Pankov 	size_t	  indent;
40371584c2SYuri Pankov 	size_t	  width;
41371584c2SYuri Pankov 	int	  fragment;
42371584c2SYuri Pankov 	int	  mdoc;
43a40ea1a7SYuri Pankov 	int	  noval;
44cec8643bSMichal Nowak 	int	  synopsisonly;
45*4d131170SRobert Mustacchi 	int	  tag_found;
46cec8643bSMichal Nowak 	int	  toc;
47371584c2SYuri Pankov };
48371584c2SYuri Pankov 
49371584c2SYuri Pankov struct	manconf {
50371584c2SYuri Pankov 	struct manoutput	  output;
51371584c2SYuri Pankov 	struct manpaths		  manpath;
52371584c2SYuri Pankov };
53371584c2SYuri Pankov 
54371584c2SYuri Pankov 
55371584c2SYuri Pankov void	 manconf_parse(struct manconf *, const char *, char *, char *);
56a40ea1a7SYuri Pankov int	 manconf_output(struct manoutput *, const char *, int);
57371584c2SYuri Pankov void	 manconf_free(struct manconf *);
58c66b8046SYuri Pankov void	 manpath_base(struct manpaths *);
59