1struct manpage {
2     struct manpage *next;
3     char *filename;
4     int type;
5};
6
7#define TYPE_MAN	0x0001
8#define TYPE_CAT	0x0002
9#define TYPE_SCAT	0x0004
10#define TYPE_HTML	0x0008
11#define TYPE_XML	0x0010	/* not presently used */
12
13#define ONLY_ONE_PERSEC	0x0020	/* do not return more pages from one section */
14#define ONLY_ONE	0x0040	/* return only a single page */
15
16/* various standards have various ideas about where the cat pages
17   ought to live */
18#define FSSTND		0x0080
19#define	FHS		0x0100
20
21/* HP has a peculiar way to indicate that pages are compressed */
22#define DO_HP		0x0200	/* compressed file in man1.Z/ls.1 */
23
24/* IRIX has a peculiar cat page naming */
25#define DO_IRIX		0x0400	/* cat page ls.z, not ls.1.z */
26
27/* Sun uses both man and sman, where sman contains XML */
28#define DO_SUN		0x0800	/* unused today */
29
30/* NTFS cannot handle : in filenames */
31#define DO_WIN32	0x1000	/* turn :: into ? */
32
33extern struct manpage *
34manfile(const char *name, const char *section, int flags,
35        char **sectionlist, char **manpath,
36	const char *(*tocat)(const char *, const char *, int));
37