xref: /openbsd/usr.bin/mandoc/manconf.h (revision 90f584c6)
1*90f584c6Sschwarze /* $OpenBSD: manconf.h,v 1.9 2020/07/21 15:08:49 schwarze Exp $ */
24de77decSschwarze /*
3beabc24cSschwarze  * Copyright (c) 2011,2015,2017,2018,2020 Ingo Schwarze <schwarze@openbsd.org>
44de77decSschwarze  * Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
54de77decSschwarze  *
64de77decSschwarze  * Permission to use, copy, modify, and distribute this software for any
74de77decSschwarze  * purpose with or without fee is hereby granted, provided that the above
84de77decSschwarze  * copyright notice and this permission notice appear in all copies.
94de77decSschwarze  *
104de77decSschwarze  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES
114de77decSschwarze  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
124de77decSschwarze  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
134de77decSschwarze  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
144de77decSschwarze  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
154de77decSschwarze  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
164de77decSschwarze  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17beabc24cSschwarze  *
18beabc24cSschwarze  * Public interface to man(1) configuration management.
19beabc24cSschwarze  * For use by the main program and by the formatters.
204de77decSschwarze  */
214de77decSschwarze 
224de77decSschwarze /* List of unique, absolute paths to manual trees. */
234de77decSschwarze 
244de77decSschwarze struct	manpaths {
254de77decSschwarze 	char	**paths;
264de77decSschwarze 	size_t	  sz;
274de77decSschwarze };
284de77decSschwarze 
294de77decSschwarze /* Data from -O options and man.conf(5) output directives. */
304de77decSschwarze 
314de77decSschwarze struct	manoutput {
324de77decSschwarze 	char	 *includes;
334de77decSschwarze 	char	 *man;
34*90f584c6Sschwarze 	char	 *outfilename;
354de77decSschwarze 	char	 *paper;
364de77decSschwarze 	char	 *style;
37d17f6067Sschwarze 	char	 *tag;
38*90f584c6Sschwarze 	char	 *tagfilename;
394de77decSschwarze 	size_t	  indent;
404de77decSschwarze 	size_t	  width;
414de77decSschwarze 	int	  fragment;
424de77decSschwarze 	int	  mdoc;
43385121c9Sschwarze 	int	  noval;
443327fa00Sschwarze 	int	  synopsisonly;
45beabc24cSschwarze 	int	  tag_found;
463327fa00Sschwarze 	int	  toc;
474de77decSschwarze };
484de77decSschwarze 
494de77decSschwarze struct	manconf {
504de77decSschwarze 	struct manoutput	  output;
514de77decSschwarze 	struct manpaths		  manpath;
524de77decSschwarze };
534de77decSschwarze 
544de77decSschwarze 
554de77decSschwarze void	 manconf_parse(struct manconf *, const char *, char *, char *);
564b502eb4Sschwarze int	 manconf_output(struct manoutput *, const char *, int);
574de77decSschwarze void	 manconf_free(struct manconf *);
5819b6bef7Sschwarze void	 manpath_base(struct manpaths *);
59