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