xref: /dflybsd-src/contrib/mdocml/manconf.h (revision 1e4d43f9c96723e4e55543d240f182e1aac9a4c2)
1*99db7d0eSSascha Wildner /* $OpenBSD: manconf.h,v 1.7 2018/11/22 11:30:15 schwarze Exp $ */
254ba9607SSascha Wildner /*
3*99db7d0eSSascha Wildner  * Copyright (c) 2011,2015,2017,2018,2020 Ingo Schwarze <schwarze@openbsd.org>
454ba9607SSascha Wildner  * Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
554ba9607SSascha Wildner  *
654ba9607SSascha Wildner  * Permission to use, copy, modify, and distribute this software for any
754ba9607SSascha Wildner  * purpose with or without fee is hereby granted, provided that the above
854ba9607SSascha Wildner  * copyright notice and this permission notice appear in all copies.
954ba9607SSascha Wildner  *
1054ba9607SSascha Wildner  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES
1154ba9607SSascha Wildner  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1254ba9607SSascha Wildner  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
1354ba9607SSascha Wildner  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1454ba9607SSascha Wildner  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1554ba9607SSascha Wildner  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1654ba9607SSascha Wildner  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17*99db7d0eSSascha Wildner  *
18*99db7d0eSSascha Wildner  * Public interface to man(1) configuration management.
19*99db7d0eSSascha Wildner  * For use by the main program and by the formatters.
2054ba9607SSascha Wildner  */
2154ba9607SSascha Wildner 
2254ba9607SSascha Wildner /* List of unique, absolute paths to manual trees. */
2354ba9607SSascha Wildner 
2454ba9607SSascha Wildner struct	manpaths {
2554ba9607SSascha Wildner 	char	**paths;
2654ba9607SSascha Wildner 	size_t	  sz;
2754ba9607SSascha Wildner };
2854ba9607SSascha Wildner 
2954ba9607SSascha Wildner /* Data from -O options and man.conf(5) output directives. */
3054ba9607SSascha Wildner 
3154ba9607SSascha Wildner struct	manoutput {
3254ba9607SSascha Wildner 	char	 *includes;
3354ba9607SSascha Wildner 	char	 *man;
34*99db7d0eSSascha Wildner 	char	 *outfilename;
3554ba9607SSascha Wildner 	char	 *paper;
3654ba9607SSascha Wildner 	char	 *style;
3754ba9607SSascha Wildner 	char	 *tag;
38*99db7d0eSSascha Wildner 	char	 *tagfilename;
3954ba9607SSascha Wildner 	size_t	  indent;
4054ba9607SSascha Wildner 	size_t	  width;
4154ba9607SSascha Wildner 	int	  fragment;
4254ba9607SSascha Wildner 	int	  mdoc;
4354ba9607SSascha Wildner 	int	  noval;
4454ba9607SSascha Wildner 	int	  synopsisonly;
45*99db7d0eSSascha Wildner 	int	  tag_found;
4654ba9607SSascha Wildner 	int	  toc;
4754ba9607SSascha Wildner };
4854ba9607SSascha Wildner 
4954ba9607SSascha Wildner struct	manconf {
5054ba9607SSascha Wildner 	struct manoutput	  output;
5154ba9607SSascha Wildner 	struct manpaths		  manpath;
5254ba9607SSascha Wildner };
5354ba9607SSascha Wildner 
5454ba9607SSascha Wildner 
5554ba9607SSascha Wildner void	 manconf_parse(struct manconf *, const char *, char *, char *);
5654ba9607SSascha Wildner int	 manconf_output(struct manoutput *, const char *, int);
5754ba9607SSascha Wildner void	 manconf_free(struct manconf *);
5854ba9607SSascha Wildner void	 manpath_base(struct manpaths *);
59