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