1 /*
2 * ult_src.h: Interface to finding the ultimate source of a page
3 *
4 * Copyright (C) 1990, 1991 John W. Eaton.
5 * Copyright (C) 1994, 1995 Graeme W. Wilford. (Wilf.)
6 * Copyright (C) 2002, 2003, 2011 Colin Watson.
7 *
8 * This file is part of man-db.
9 *
10 * man-db is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
14 *
15 * man-db is distributed in the hope that it will be useful, but
16 * WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with man-db; if not, write to the Free Software Foundation,
22 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
23 */
24
25 #include "gl_list.h"
26
27 #define SO_LINK 0001
28 #define SOFT_LINK 0002
29 #define HARD_LINK 0004
30
31 struct stat;
32
33 struct ult_value {
34 /* Path to the ultimate source file. */
35 char *path;
36 /* A list of `const char *`, containing a trace of the link chain
37 * from a given file. Any names listed here should not have
38 * `WHATIS_MAN` entries created for them.
39 */
40 gl_list_t trace;
41 };
42
43 extern void gripe_canonicalize_failed (const char *path);
44 extern const struct ult_value *ult_src (const char *name, const char *path,
45 struct stat *buf, int flags);