summaryrefslogtreecommitdiffstats
path: root/mandocdb.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2011-12-28 00:32:13 +0000
committerIngo Schwarze <schwarze@openbsd.org>2011-12-28 00:32:13 +0000
commit9ce737999e4dfba3414d61dcd62441d7eb9b21cd (patch)
treea2eec002443e4c0efe4c23d48564a3d96527d973 /mandocdb.c
parentded221b99d048a37cdadaf7d919805c6219db29f (diff)
downloadmandoc-9ce737999e4dfba3414d61dcd62441d7eb9b21cd.tar.gz
Do not skip manuals shared across architectures when building databases.
Diffstat (limited to 'mandocdb.c')
-rw-r--r--mandocdb.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/mandocdb.c b/mandocdb.c
index fa59d564..ff75b7d1 100644
--- a/mandocdb.c
+++ b/mandocdb.c
@@ -615,8 +615,8 @@ index_merge(const struct of *of, struct mparse *mp,
/*
* By default, skip a file if the manual section
- * and architecture given in the file disagree
- * with the directory where the file is located.
+ * given in the file disagrees with the directory
+ * where the file is located.
*/
skip = 0;
@@ -631,6 +631,21 @@ index_merge(const struct of *of, struct mparse *mp,
skip = 1;
}
+ /*
+ * Manual page directories exist for each kernel
+ * architecture as returned by machine(1).
+ * However, many manuals only depend on the
+ * application architecture as returned by arch(1).
+ * For example, some (2/ARM) manuals are shared
+ * across the "armish" and "zaurus" kernel
+ * architectures.
+ * A few manuals are even shared across completely
+ * different architectures, for example fdformat(1)
+ * on amd64, i386, sparc, and sparc64.
+ * Thus, warn about architecture mismatches,
+ * but don't skip manuals for this reason.
+ */
+
assert(of->arch);
assert(march);
if (strcasecmp(march, of->arch)) {
@@ -639,7 +654,7 @@ index_merge(const struct of *of, struct mparse *mp,
"architecture \"%s\" manual "
"in \"%s\" directory\n",
fn, march, of->arch);
- skip = 1;
+ march = of->arch;
}
/*