]> git.cameronkatri.com Git - mandoc.git/commitdiff
This is a little gross: Linux and Apple need lots some cajoling to work
authorKristaps Dzonsons <kristaps@bsd.lv>
Fri, 2 Dec 2011 00:21:56 +0000 (00:21 +0000)
committerKristaps Dzonsons <kristaps@bsd.lv>
Fri, 2 Dec 2011 00:21:56 +0000 (00:21 +0000)
with byte-swapping.  Tested on Mac.  Any Linux machines somebody can
test on?  Anybody?

While here, note the correct byte-size in mandocdb(8) and also note
field widths and endianness.  The btree is now endian-neutral.

apropos_db.c
config.h.post
mandocdb.8
mandocdb.c

index 4a305e59312b134f90954f8779b3e1bdca459622..856bde341ca0a11e847c5f6b03255c887109ba6c 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: apropos_db.c,v 1.18 2011/12/01 23:55:58 kristaps Exp $ */
+/*     $Id: apropos_db.c,v 1.19 2011/12/02 00:21:56 kristaps Exp $ */
 /*
  * Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2011 Ingo Schwarze <schwarze@openbsd.org>
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 #include <assert.h>
 #include <fcntl.h>
 #include <regex.h>
 #include <string.h>
 #include <unistd.h>
 
-#ifdef __linux__
+#if defined(__linux__)
+# include <endian.h>
 # include <db_185.h>
+#elif defined(__APPLE__)
+# include <libkern/OSByteOrder.h>
+# include <db.h>
 #else
 # include <db.h>
 #endif
index 3cdf9a7870a7f3551ca60a54ccec7160285ad92a..62ce4ea6f629ebae5048279f2ad0746e0406ff21 100644 (file)
 #  endif
 #endif
 
+#if defined(__APPLE__)
+# define htobe32(x) OSSwapHostToBigInt32(x)
+# define betoh32(x) OSSwapBigToHostInt32(x)
+# define htobe64(x) OSSwapHostToBigInt64(x)
+# define betoh64(x) OSSwapBigToHostInt64(x)
+#elif defined(__linux__)
+# define betoh32(x) be32toh(x)
+# define betoh64(x) be64toh(x)
+#endif
+
 #ifndef HAVE_STRLCAT
 extern size_t    strlcat(char *, const char *, size_t);
 #endif
index 4c0ef876ab7f29561e3ccc69fab511bf61428cff..e8e84ec80df4439a21d0e11c7e4c32a0c19ae164 100644 (file)
@@ -1,4 +1,4 @@
-.\"    $Id: mandocdb.8,v 1.10 2011/12/01 21:05:49 kristaps Exp $
+.\"    $Id: mandocdb.8,v 1.11 2011/12/02 00:21:56 kristaps Exp $
 .\"
 .\" Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
 .\"
@@ -14,7 +14,7 @@
 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 .\"
-.Dd $Mdocdate: December 1 2011 $
+.Dd $Mdocdate: December 2 2011 $
 .Dt MANDOCDB 8
 .Os
 .Sh NAME
@@ -137,11 +137,11 @@ The keyword database,
 is a
 .Xr btree 3
 database of NUL-terminated keywords (record length is non-zero string
-length plus one) mapping to a 8-byte binary field consisting of the
-keyword type and source
+length plus one) mapping to a 12-byte binary field consisting of the
+64-bit keyword type and 32-bit source
 .Sx Index Database
-record number.
-The type, a 64-bit bit-mask in host order, consists of the following
+record number, both in network-byte order.
+The typet bit-mask consists of the following
 values mapping into
 .Xr mdoc 7
 macro identifiers:
index bea939864509ea022d1e4b1bc3b0c87eb7f9174c..b81867c59cf0f218714de5c5ae8526c36747eddd 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mandocdb.c,v 1.20 2011/12/01 23:55:58 kristaps Exp $ */
+/*     $Id: mandocdb.c,v 1.21 2011/12/02 00:21:56 kristaps Exp $ */
 /*
  * Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2011 Ingo Schwarze <schwarze@openbsd.org>
 #include <string.h>
 #include <unistd.h>
 
-#ifdef __linux__
+#if defined(__linux__)
+# include <endian.h>
 # include <db_185.h>
+#elif defined(__APPLE__)
+# include <libkern/OSByteOrder.h>
+# include <db.h>
 #else
 # include <db.h>
 #endif