pristine/cdb-0.75-traversal.diff2
author "Tomas Zeman <tomas.zeman@sun.com>"
Fri, 19 Oct 2007 11:09:15 +0200
changeset 0 6ba86bca35c0
permissions -rw-r--r--
Imported cdb-0.75-traversal patch
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
     1
diff -uNr cdb-0.75/FILES cdb-0.75-fefe/FILES
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
     2
--- cdb-0.75/FILES	Sat Feb 19 21:42:05 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
     3
+++ cdb-0.75-fefe/FILES	Wed Sep 27 21:54:44 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
     4
@@ -76,3 +76,21 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
     5
 uint32.h2
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
     6
 uint32_pack.c
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
     7
 uint32_unpack.c
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
     8
+traverse.c
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
     9
+cdbdump.1
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    10
+cdbget.1
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    11
+cdbmake.1
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    12
+cdbstats.1
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    13
+cdbtest.1
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    14
+cdbnext.c
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    15
+cdb_datalen.3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    16
+cdb_datapos.3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    17
+cdb_find.3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    18
+cdb_firstkey.3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    19
+cdb_free.3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    20
+cdb_init.3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    21
+cdb_keylen.3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    22
+cdb_keypos.3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    23
+cdb_nextkey.3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    24
+cdb_read.3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    25
+cdb_successor.3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    26
diff -uNr cdb-0.75/Makefile cdb-0.75-fefe/Makefile
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    27
--- cdb-0.75/Makefile	Sat Feb 19 21:42:05 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    28
+++ cdb-0.75-fefe/Makefile	Wed Sep 27 21:46:39 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    29
@@ -87,13 +87,17 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    30
 	./compile byte_diff.c
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    31
 
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    32
 cdb.a: \
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    33
-makelib cdb.o cdb_hash.o cdb_make.o
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    34
-	./makelib cdb.a cdb.o cdb_hash.o cdb_make.o
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    35
+makelib cdb.o cdb_hash.o cdb_make.o cdb_traverse.o
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    36
+	./makelib cdb.a cdb.o cdb_hash.o cdb_make.o cdb_traverse.o
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    37
 
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    38
 cdb.o: \
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    39
 compile cdb.c readwrite.h error.h seek.h byte.h cdb.h uint32.h
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    40
 	./compile cdb.c
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    41
 
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    42
+cdb_traverse.o: \
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    43
+compile cdb_traverse.c cdb.h uint32.h seek.h
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    44
+	./compile cdb_traverse.c
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    45
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    46
 cdb_hash.o: \
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    47
 compile cdb_hash.c cdb.h uint32.h
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    48
 	./compile cdb_hash.c
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    49
@@ -244,7 +248,7 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    50
 
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    51
 prog: \
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    52
 cdbget cdbmake cdbdump cdbstats cdbtest cdbmake-12 cdbmake-sv rts \
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    53
-testzero
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    54
+testzero traverse cdbnext
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    55
 
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    56
 rts: \
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    57
 warn-auto.sh rts.sh conf-home
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    58
@@ -318,3 +322,26 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    59
 seek_cur.o
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    60
 	./makelib unix.a error.o open_read.o open_trunc.o \
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    61
 	error_str.o seek_set.o seek_cur.o
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    62
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    63
+traverse: \
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    64
+load traverse.o cdb.a uint32_unpack.o byte_copy.o seek_set.o \
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    65
+error.o byte_diff.o fmt_ulong.o
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    66
+	./load traverse cdb.a uint32_unpack.o byte_copy.o seek_set.o \
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    67
+	error.o byte_diff.o fmt_ulong.o
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    68
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    69
+traverse.o: \
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    70
+compile traverse.c cdb.h uint32.h fmt.h
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    71
+	./compile traverse.c
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    72
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    73
+cdbnext: \
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    74
+load cdbnext.o cdb.a buffer.a byte.a error.o error_str.o seek_set.o
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    75
+	./load cdbnext cdb.a buffer.a byte.a error.o error_str.o \
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    76
+	seek_set.o
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    77
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    78
+cdbnext.o: \
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    79
+compile cdbnext.c exit.h scan.h str.h buffer.h strerr.h cdb.h \
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    80
+uint32.h
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    81
+	./compile cdbnext.c
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    82
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    83
+clean:
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    84
+	rm -f `cat TARGETS`
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    85
diff -uNr cdb-0.75/TARGETS cdb-0.75-fefe/TARGETS
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    86
--- cdb-0.75/TARGETS	Sat Feb 19 21:42:05 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    87
+++ cdb-0.75-fefe/TARGETS	Wed Sep 27 21:35:15 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    88
@@ -64,3 +64,8 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    89
 it
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    90
 setup
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    91
 check
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    92
+traverse
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    93
+traverse.o
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    94
+cdb_traverse.o
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    95
+cdbnext
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    96
+cdbnext.o
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    97
diff -uNr cdb-0.75/cdb.h cdb-0.75-fefe/cdb.h
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    98
--- cdb-0.75/cdb.h	Sat Feb 19 21:42:05 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
    99
+++ cdb-0.75-fefe/cdb.h	Wed Sep 27 21:02:59 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   100
@@ -31,7 +31,14 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   101
 extern int cdb_findnext(struct cdb *,char *,unsigned int);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   102
 extern int cdb_find(struct cdb *,char *,unsigned int);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   103
 
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   104
+extern int cdb_firstkey(struct cdb *c,uint32 *kpos);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   105
+extern int cdb_nextkey(struct cdb *c,uint32 *kpos);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   106
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   107
+extern int cdb_successor(struct cdb *c,char *,unsigned int);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   108
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   109
 #define cdb_datapos(c) ((c)->dpos)
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   110
 #define cdb_datalen(c) ((c)->dlen)
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   111
+#define cdb_keypos(c) ((c)->kpos)
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   112
+#define cdb_keylen(c) ((c)->dpos-(c)->kpos)
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   113
 
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   114
 #endif
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   115
diff -uNr cdb-0.75/cdb_datalen.3 cdb-0.75-fefe/cdb_datalen.3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   116
--- cdb-0.75/cdb_datalen.3	Thu Jan  1 01:00:00 1970
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   117
+++ cdb-0.75-fefe/cdb_datalen.3	Wed Sep 27 21:52:34 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   118
@@ -0,0 +1,17 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   119
+.TH cdb_datalen 3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   120
+.SH NAME
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   121
+cdb_datalen \- get length of data
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   122
+.SH SYNTAX
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   123
+.B #include <cdb.h>
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   124
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   125
+unsigned int cdb_datalen(struct cdb *\fIc\fR);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   126
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   127
+.SH DESCRIPTION
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   128
+.B cdb_datalen
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   129
+returns the length of the data associated with the last key you looked
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   130
+up with cdb_find or cdb_findnext.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   131
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   132
+Use cdb_datapos to get the position of the data.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   133
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   134
+.SH "SEE ALSO"
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   135
+cdb_datapos(3), cdb_keylen(3), cdb_keypos(3)
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   136
diff -uNr cdb-0.75/cdb_datapos.3 cdb-0.75-fefe/cdb_datapos.3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   137
--- cdb-0.75/cdb_datapos.3	Thu Jan  1 01:00:00 1970
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   138
+++ cdb-0.75-fefe/cdb_datapos.3	Wed Sep 27 21:52:37 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   139
@@ -0,0 +1,17 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   140
+.TH cdb_datapos 3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   141
+.SH NAME
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   142
+cdb_datapos \- get position of data
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   143
+.SH SYNTAX
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   144
+.B #include <cdb.h>
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   145
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   146
+uint32 cdb_datapos(struct cdb *\fIc\fR);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   147
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   148
+.SH DESCRIPTION
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   149
+.B cdb_datapos
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   150
+returns the position of the data associated with the last key you looked
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   151
+up using cdb_find or cdb_findnext.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   152
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   153
+Use cdb_datalen to get the length of the data.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   154
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   155
+.SH "SEE ALSO"
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   156
+cdb_datalen(3), cdb_keypos(3), cdb_keylen(3)
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   157
diff -uNr cdb-0.75/cdb_find.3 cdb-0.75-fefe/cdb_find.3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   158
--- cdb-0.75/cdb_find.3	Thu Jan  1 01:00:00 1970
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   159
+++ cdb-0.75-fefe/cdb_find.3	Wed Sep 27 21:53:03 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   160
@@ -0,0 +1,42 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   161
+.TH cdb_find 3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   162
+.SH NAME
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   163
+cdb_find \- look up a key in a constant database
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   164
+.SH SYNTAX
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   165
+.B #include <cdb.h>
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   166
+.br
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   167
+.B #include <uint32.h>
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   168
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   169
+int cdb_find(struct cdb *\fIc\fR,char *\fIkey\fR,unsigned int \fIkeylen\fR);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   170
+.br
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   171
+int cdb_datalen(struct cdb *\fIc\fR);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   172
+.br
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   173
+int cdb_datapos(struct cdb *\fIc\fR);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   174
+.br
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   175
+int cdb_findnext(struct cdb *\fIc\fR,char *\fIkey\fR,unsigned int \fIkeylen\fR);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   176
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   177
+.SH DESCRIPTION
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   178
+\fBcdb_find\fR looks for \fIkey\fR. If cdb_find returns 0, the database
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   179
+does not contain that key; stop. If cdb_find returns -1, there was a
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   180
+read error; abort.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   181
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   182
+\fBcdb_datalen\fR returns the length of the data associated with the
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   183
+\fIkey\fR.  Use it to allocate a pointer \fIp\fR with enough space to
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   184
+hold the data.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   185
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   186
+\fBcdb_datapos\fR returns the position of the data inside the file.  Use
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   187
+it as argument to cdb_read to retrieve the data.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   188
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   189
+There may be several records under a single key. You can use
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   190
+\fBcdb_findnext\fR to find the next record under this key.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   191
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   192
+.SH EXAMPLE
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   193
+static struct cdb;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   194
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   195
+if (cdb_find(&c,key,strlen(key)>0) {
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   196
+  char *buf=alloca(cdb_datalen(&c));
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   197
+  cdb_read(&c,buf,cdb_datalen(&c),cdb_datapos(&c));
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   198
+  write(1,buf,cdb_datalen(&c));
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   199
+.br
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   200
+}
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   201
+.SH "SEE ALSO"
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   202
+cdb_read(3), cdb_init(3), cdb_free(3), cdbmake(1)
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   203
diff -uNr cdb-0.75/cdb_firstkey.3 cdb-0.75-fefe/cdb_firstkey.3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   204
--- cdb-0.75/cdb_firstkey.3	Thu Jan  1 01:00:00 1970
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   205
+++ cdb-0.75-fefe/cdb_firstkey.3	Wed Sep 27 21:53:07 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   206
@@ -0,0 +1,19 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   207
+.TH cdb_firstkey 3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   208
+.SH NAME
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   209
+cdb_firstkey \- find first physical record in constant database
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   210
+.SH SYNTAX
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   211
+.B #include <cdb.h>
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   212
+.br
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   213
+.B #include <uint32.h>
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   214
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   215
+int cdb_firstkey(struct cdb *\fIc\fR,uint32 *\fIkpos\fR);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   216
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   217
+.SH DESCRIPTION
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   218
+\fBcdb_firstkey\fR finds the physically first record in the constant
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   219
+database.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   220
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   221
+You can use cdb_datapos or cdb_keypos to get \fIposition\fR and
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   222
+cdb_datalen and cdb_keylen to get \fIlen\fR.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   223
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   224
+.SH "SEE ALSO"
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   225
+cdb_nextkey(3), cdb_successor(3)
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   226
diff -uNr cdb-0.75/cdb_free.3 cdb-0.75-fefe/cdb_free.3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   227
--- cdb-0.75/cdb_free.3	Thu Jan  1 01:00:00 1970
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   228
+++ cdb-0.75-fefe/cdb_free.3	Wed Sep 27 21:53:10 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   229
@@ -0,0 +1,17 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   230
+.TH cdb_free 3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   231
+.SH NAME
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   232
+cdb_free \- close a constant databased
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   233
+.SH SYNTAX
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   234
+.B #include <cdb.h>
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   235
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   236
+int cdb_free(struct cdb *\fIc\fR);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   237
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   238
+.SH DESCRIPTION
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   239
+.B cdb_free
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   240
+removes any memory mapping that cdb_init might have established.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   241
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   242
+It will not close the file descriptor that you passed to cdb_init or
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   243
+attempt to call free() on the struct cdb pointer.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   244
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   245
+.SH "SEE ALSO"
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   246
+cdb_free(3), cdb_read(3), cdb_find(3), cdbmake(1)
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   247
diff -uNr cdb-0.75/cdb_init.3 cdb-0.75-fefe/cdb_init.3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   248
--- cdb-0.75/cdb_init.3	Thu Jan  1 01:00:00 1970
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   249
+++ cdb-0.75-fefe/cdb_init.3	Wed Sep 27 21:53:12 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   250
@@ -0,0 +1,20 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   251
+.TH cdb_init 3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   252
+.SH NAME
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   253
+cdb_init \- open a constant database
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   254
+.SH SYNTAX
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   255
+.B #include <cdb.h>
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   256
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   257
+int cdb_init(struct cdb *\fIc\fR,int \fIfd\fR);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   258
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   259
+.SH DESCRIPTION
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   260
+.B cdb_init
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   261
+places information about \fIfd\fR into a struct cdb variable \fIc\fR.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   262
+\fIfd\fR has to be a seekable file previously opened for reading.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   263
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   264
+On systems that support mmap, cdb_init will try to map the whole
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   265
+constant database into memory.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   266
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   267
+The inverse operation to cdb_init is cdb_free.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   268
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   269
+.SH "SEE ALSO"
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   270
+cdb_free(3), cdb_read(3), cdb_find(3), cdbmake(1)
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   271
diff -uNr cdb-0.75/cdb_keylen.3 cdb-0.75-fefe/cdb_keylen.3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   272
--- cdb-0.75/cdb_keylen.3	Thu Jan  1 01:00:00 1970
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   273
+++ cdb-0.75-fefe/cdb_keylen.3	Wed Sep 27 21:53:14 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   274
@@ -0,0 +1,16 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   275
+.TH cdb_keylen 3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   276
+.SH NAME
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   277
+cdb_keylen \- get length of key
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   278
+.SH SYNTAX
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   279
+.B #include <cdb.h>
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   280
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   281
+unsigned int cdb_keylen(struct cdb *\fIc\fR);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   282
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   283
+.SH DESCRIPTION
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   284
+.B cdb_keylen
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   285
+returns the length of the key cdb_firstkey or cdb_nextkey found.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   286
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   287
+Use cdb_keypos to get the position of the key.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   288
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   289
+.SH "SEE ALSO"
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   290
+cdb_keypos(3), cdb_datalen(3), cdb_datapos(3)
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   291
diff -uNr cdb-0.75/cdb_keypos.3 cdb-0.75-fefe/cdb_keypos.3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   292
--- cdb-0.75/cdb_keypos.3	Thu Jan  1 01:00:00 1970
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   293
+++ cdb-0.75-fefe/cdb_keypos.3	Wed Sep 27 21:53:16 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   294
@@ -0,0 +1,16 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   295
+.TH cdb_keypos 3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   296
+.SH NAME
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   297
+cdb_keypos \- get position of key
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   298
+.SH SYNTAX
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   299
+.B #include <cdb.h>
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   300
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   301
+uint32 cdb_keypos(struct cdb *\fIc\fR);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   302
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   303
+.SH DESCRIPTION
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   304
+.B cdb_keypos
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   305
+returns the position of the key cdb_firstkey or cdb_nextkey found.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   306
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   307
+Use cdb_keylen to get the length of the key.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   308
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   309
+.SH "SEE ALSO"
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   310
+cdb_keylen(3), cdb_datapos(3), cdb_datalen(3)
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   311
diff -uNr cdb-0.75/cdb_nextkey.3 cdb-0.75-fefe/cdb_nextkey.3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   312
--- cdb-0.75/cdb_nextkey.3	Thu Jan  1 01:00:00 1970
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   313
+++ cdb-0.75-fefe/cdb_nextkey.3	Wed Sep 27 21:52:17 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   314
@@ -0,0 +1,19 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   315
+.TH cdb_nextkey 3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   316
+.SH NAME
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   317
+cdb_nextkey \- find next physical record in constant database
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   318
+.SH SYNTAX
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   319
+.B #include <cdb.h>
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   320
+.br
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   321
+.B #include <uint32.h>
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   322
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   323
+int cdb_nextkey(struct cdb *\fIc\fR,uint32 *\fIkpos\fR);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   324
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   325
+.SH DESCRIPTION
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   326
+\fBcdb_nextkey\fR finds the next physical record in the constant
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   327
+database.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   328
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   329
+You can use cdb_datapos or cdb_keypos to get \fIposition\fR and
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   330
+cdb_datalen and cdb_keylen to get \fIlen\fR.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   331
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   332
+.SH "SEE ALSO"
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   333
+cdb_firstkey(3), cdb_successor(3)
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   334
diff -uNr cdb-0.75/cdb_read.3 cdb-0.75-fefe/cdb_read.3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   335
--- cdb-0.75/cdb_read.3	Thu Jan  1 01:00:00 1970
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   336
+++ cdb-0.75-fefe/cdb_read.3	Wed Sep 27 21:53:22 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   337
@@ -0,0 +1,20 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   338
+.TH cdb_read 3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   339
+.SH NAME
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   340
+cdb_read \- read bytes from a constant database
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   341
+.SH SYNTAX
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   342
+.B #include <cdb.h>
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   343
+.br
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   344
+.B #include <uint32.h>
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   345
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   346
+int cdb_read(struct cdb *\fIc\fR,char *\fIbuf\fR,unsigned int \fIlen\fR,uint32 \fIposition\fR);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   347
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   348
+.SH DESCRIPTION
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   349
+\fBcdb_read\fR reads \fIlen\fR bytes starting at \fIposition\fR from
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   350
+\fIc\fR to buf.  You can use cdb_datapos or cdb_keypos to get
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   351
+\fIposition\fR and cdb_datalen and cdb_keylen to get \fIlen\fR.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   352
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   353
+\fIbuf\fR needs to point to a memory region large enough to hold
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   354
+\fIlen\fR bytes.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   355
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   356
+.SH "SEE ALSO"
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   357
+cdb_find(3), cdb_init(3), cdb_free(3), cdbmake(1)
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   358
diff -uNr cdb-0.75/cdb_successor.3 cdb-0.75-fefe/cdb_successor.3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   359
--- cdb-0.75/cdb_successor.3	Thu Jan  1 01:00:00 1970
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   360
+++ cdb-0.75-fefe/cdb_successor.3	Wed Sep 27 21:53:23 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   361
@@ -0,0 +1,21 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   362
+.TH cdb_successor 3
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   363
+.SH NAME
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   364
+cdb_successor \- find next record
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   365
+.SH SYNTAX
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   366
+.B #include <cdb.h>
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   367
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   368
+int cdb_successor(struct cdb *\fIc\fR,char *\fIkey\fR,unsigned int \fIklen\fR);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   369
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   370
+.SH DESCRIPTION
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   371
+\fBcdb_successor\fR finds the record that follows \fIkey\fR.  If
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   372
+\fIkey\fR is NULL, cdb_successor finds the first record.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   373
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   374
+\fBNOTE!\fR  The database must not contain keys with more than one
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   375
+associated record or this API will lead to infinite loops!  Use
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   376
+cdb_firstkey and cdb_nextkey instead.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   377
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   378
+You can use cdb_datapos or cdb_keypos to get \fIposition\fR and
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   379
+cdb_datalen and cdb_keylen to get \fIlen\fR.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   380
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   381
+.SH "SEE ALSO"
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   382
+cdb_firstkey(3), cdb_nextkey(3)
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   383
diff -uNr cdb-0.75/cdb_traverse.c cdb-0.75-fefe/cdb_traverse.c
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   384
--- cdb-0.75/cdb_traverse.c	Thu Jan  1 01:00:00 1970
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   385
+++ cdb-0.75-fefe/cdb_traverse.c	Wed Sep 27 21:39:18 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   386
@@ -0,0 +1,41 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   387
+#include "cdb.h"
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   388
+#include "seek.h"
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   389
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   390
+static int doit(struct cdb *c,uint32 *kpos) {
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   391
+  char buf[8];
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   392
+  uint32 eod,klen;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   393
+  if (cdb_read(c,buf,4,0)) return -1;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   394
+  uint32_unpack(buf,&eod);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   395
+  if (eod<8 || eod-8<*kpos) return 0;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   396
+  c->kpos=*kpos+8;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   397
+  if (c->kpos<*kpos) return -1; /* wraparound */
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   398
+  cdb_findstart(c);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   399
+  c->hslots=1;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   400
+  if (cdb_read(c,buf,8,*kpos) == -1) return -1;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   401
+  uint32_unpack(buf,&klen);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   402
+  uint32_unpack(buf+4,&c->dlen);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   403
+  c->dpos=c->kpos+klen;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   404
+  *kpos+=8+klen+c->dlen;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   405
+  return 1;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   406
+}
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   407
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   408
+int cdb_firstkey(struct cdb *c,uint32 *kpos) {
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   409
+  *kpos=2048;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   410
+  return doit(c,kpos);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   411
+}
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   412
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   413
+int cdb_nextkey(struct cdb *c,uint32 *kpos) {
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   414
+  return doit(c,kpos);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   415
+}
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   416
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   417
+int cdb_successor(struct cdb *c,char *key,unsigned int klen) {
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   418
+  int r;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   419
+  uint32 kpos;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   420
+  if (key) {
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   421
+    r=cdb_find(c,key,klen);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   422
+    if (r<1) return r;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   423
+    kpos=c->dpos+c->dlen;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   424
+  } else
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   425
+    kpos=2048;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   426
+  return doit(c,&kpos);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   427
+}
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   428
diff -uNr cdb-0.75/cdbdump.1 cdb-0.75-fefe/cdbdump.1
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   429
--- cdb-0.75/cdbdump.1	Thu Jan  1 01:00:00 1970
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   430
+++ cdb-0.75-fefe/cdbdump.1	Wed Sep 27 20:27:54 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   431
@@ -0,0 +1,17 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   432
+.TH cdbdump 1
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   433
+.SH NAME
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   434
+cdbdump \- print the contents of a constant database
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   435
+.SH SYNOPSIS
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   436
+.B cdbdump
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   437
+.SH DESCRIPTION
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   438
+.B cbddump
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   439
+reads a constant database from its standard input
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   440
+and prints its contents, in
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   441
+.B cbdmake
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   442
+format,
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   443
+on standard output.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   444
+.SH "SEE ALSO"
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   445
+cdbget(1),
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   446
+cdbmake(1),
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   447
+cdb_firstkey(3),
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   448
+cdb_nextkey(3)
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   449
diff -uNr cdb-0.75/cdbget.1 cdb-0.75-fefe/cdbget.1
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   450
--- cdb-0.75/cdbget.1	Thu Jan  1 01:00:00 1970
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   451
+++ cdb-0.75-fefe/cdbget.1	Sun Apr 30 14:31:33 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   452
@@ -0,0 +1,38 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   453
+.TH cdbget 1
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   454
+.SH NAME
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   455
+cdbget \- look up one key in a constant database
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   456
+.SH SYNOPSIS
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   457
+.B cdbget
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   458
+.I key
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   459
+.SH DESCRIPTION
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   460
+.B cdbget
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   461
+searches for a record indexed by
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   462
+.I key
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   463
+in a constant database.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   464
+The constant database must be readable (and seekable)
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   465
+on
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   466
+.BR cdbget 's
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   467
+standard input.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   468
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   469
+.B cdbget
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   470
+normally (1) prints the data in the first matching record
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   471
+and (2) exits 0.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   472
+Note that
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   473
+.B cdbget
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   474
+does not check for write errors,
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   475
+so it should be used only inside a pipe.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   476
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   477
+If
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   478
+.I key
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   479
+is not in the database,
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   480
+.B cdbget
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   481
+exits 1 without printing anything.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   482
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   483
+If
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   484
+.B cdbget
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   485
+encounters a read error,
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   486
+it complains and exits 111.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   487
+.SH "SEE ALSO"
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   488
+cdbdump(1),
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   489
+cdbmake(1),
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   490
+cdb(3)
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   491
diff -uNr cdb-0.75/cdbmake.1 cdb-0.75-fefe/cdbmake.1
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   492
--- cdb-0.75/cdbmake.1	Thu Jan  1 01:00:00 1970
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   493
+++ cdb-0.75-fefe/cdbmake.1	Sun Apr 30 14:31:33 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   494
@@ -0,0 +1,113 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   495
+.TH cdbmake 1
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   496
+.SH NAME
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   497
+cdbmake \- create a constant database
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   498
+.SH SYNOPSIS
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   499
+.B cdbmake
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   500
+.I file
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   501
+.I temp
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   502
+.SH DESCRIPTION
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   503
+.B cdbmake
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   504
+reads a series of encoded records from its standard input
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   505
+and writes a constant database to
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   506
+.IR file .
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   507
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   508
+Records are indexed by
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   509
+.BR keys .
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   510
+A key is a string.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   511
+.I file
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   512
+is structured so that another program, starting from a key,
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   513
+can quickly find the relevant record.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   514
+.B cdbmake
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   515
+allows several records with the same key,
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   516
+although (1) most readers only take the first record
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   517
+and (2)
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   518
+.B cdbmake
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   519
+slows down somewhat if there are many records with the same key.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   520
+Note that
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   521
+.B cdbmake
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   522
+preserves the order of records in
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   523
+.IR file .
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   524
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   525
+A record is encoded for
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   526
+.B cdbmake
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   527
+as
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   528
+.B +\fIklen\fB,\fIdlen\fB:\fIkey\fB->\fIdata
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   529
+followed by a newline.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   530
+Here
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   531
+.I klen
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   532
+is the number of bytes in
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   533
+.IR key
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   534
+and
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   535
+.I dlen
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   536
+is the number of bytes in
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   537
+.IR data .
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   538
+The end of data is indicated by an extra newline.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   539
+For example:
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   540
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   541
+.EX
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   542
+   +3,5:one->Hello
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   543
+.br
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   544
+   +3,7:two->Goodbye
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   545
+.br
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   546
+   
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   547
+.EE
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   548
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   549
+.I key
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   550
+and
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   551
+.I data
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   552
+may contain any characters, including colons, dashes, newlines, and nulls.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   553
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   554
+.B cdbmake
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   555
+ensures that
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   556
+.I file
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   557
+is updated atomically,
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   558
+so programs reading
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   559
+.I file
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   560
+never have to wait for
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   561
+.B cdbmake
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   562
+to finish.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   563
+It does this by first writing the database to
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   564
+.I temp
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   565
+and then moving
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   566
+.I temp
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   567
+on top of
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   568
+.IR file .
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   569
+If
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   570
+.I temp
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   571
+already exists,
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   572
+it is destroyed.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   573
+The directories containing
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   574
+.I temp
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   575
+and
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   576
+.I file
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   577
+must be writable to
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   578
+.BR cdbmake ;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   579
+they must also be on the same filesystem.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   580
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   581
+.B cdbmake
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   582
+always makes sure that
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   583
+.I temp
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   584
+is safely written to disk before it replaces
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   585
+.IR file .
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   586
+If the input is in a bad format or if
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   587
+.B cdbmake
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   588
+has any trouble writing
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   589
+.I temp
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   590
+to disk,
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   591
+.B cdbmake
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   592
+complains and leaves
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   593
+.I file
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   594
+alone.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   595
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   596
+Keys and data do not have to fit into memory,
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   597
+but
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   598
+.B cdbmake
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   599
+needs roughly 16 bytes of memory per record.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   600
+A database cannot exceed 4 gigabytes.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   601
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   602
+.I file
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   603
+is portable across machines.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   604
+.SH "SEE ALSO"
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   605
+cdbdump(1),
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   606
+cdbget(1),
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   607
+cdbstats(1)
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   608
diff -uNr cdb-0.75/cdbnext.c cdb-0.75-fefe/cdbnext.c
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   609
--- cdb-0.75/cdbnext.c	Thu Jan  1 01:00:00 1970
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   610
+++ cdb-0.75-fefe/cdbnext.c	Wed Sep 27 21:43:32 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   611
@@ -0,0 +1,51 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   612
+#include "exit.h"
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   613
+#include "scan.h"
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   614
+#include "str.h"
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   615
+#include "buffer.h"
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   616
+#include "strerr.h"
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   617
+#include "cdb.h"
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   618
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   619
+#define FATAL "cdbnext: fatal: "
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   620
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   621
+void die_read(void)
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   622
+{
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   623
+  strerr_die2sys(111,FATAL,"unable to read input: ");
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   624
+}
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   625
+void die_write(void)
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   626
+{
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   627
+  strerr_die2sys(111,FATAL,"unable to write output: ");
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   628
+}
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   629
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   630
+static struct cdb c;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   631
+char buf[1024];
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   632
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   633
+main(int argc,char **argv)
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   634
+{
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   635
+  char *key;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   636
+  int r;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   637
+  uint32 pos;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   638
+  uint32 len;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   639
+  unsigned long u = 0;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   640
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   641
+  key = argv[1];
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   642
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   643
+  cdb_init(&c,0);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   644
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   645
+  r=cdb_successor(&c,key,key?str_len(key):0);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   646
+  if (r == -1) die_read();
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   647
+  if (!r) _exit(100);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   648
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   649
+  pos = cdb_keypos(&c);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   650
+  len = cdb_keylen(&c);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   651
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   652
+  while (len > 0) {
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   653
+    r = sizeof buf;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   654
+    if (r > len) r = len;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   655
+    if (cdb_read(&c,buf,r,pos) == -1) die_read();
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   656
+    if (buffer_put(buffer_1small,buf,r) == -1) die_write();
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   657
+    pos += r;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   658
+    len -= r;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   659
+  }
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   660
+  if (buffer_flush(buffer_1small) == -1) die_write();
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   661
+  _exit(0);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   662
+}
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   663
diff -uNr cdb-0.75/cdbstats.1 cdb-0.75-fefe/cdbstats.1
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   664
--- cdb-0.75/cdbstats.1	Thu Jan  1 01:00:00 1970
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   665
+++ cdb-0.75-fefe/cdbstats.1	Sun Apr 30 14:31:33 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   666
@@ -0,0 +1,18 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   667
+.TH cdbstats 1
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   668
+.SH NAME
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   669
+cdbstats \- summarize the contents of a constant database
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   670
+.SH SYNOPSIS
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   671
+.B cdbstats
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   672
+.SH DESCRIPTION
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   673
+.B cdbstats
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   674
+reads a (seekable) constant database from its standard input
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   675
+and prints a few statistics:
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   676
+.B slots
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   677
+is the number of hash positions;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   678
+.B records
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   679
+is the number of records in the database;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   680
+.B d0
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   681
+is the number of records at distance 0 from their hash.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   682
+.SH "SEE ALSO"
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   683
+cdbdump(1),
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   684
+cdbmake(1)
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   685
diff -uNr cdb-0.75/cdbtest.1 cdb-0.75-fefe/cdbtest.1
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   686
--- cdb-0.75/cdbtest.1	Thu Jan  1 01:00:00 1970
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   687
+++ cdb-0.75-fefe/cdbtest.1	Sun Apr 30 14:31:33 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   688
@@ -0,0 +1,36 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   689
+.TH cdbtest 1
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   690
+.SH NAME
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   691
+cdbtest \- check retrieval from a constant database
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   692
+.SH SYNOPSIS
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   693
+.B cdbtest
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   694
+.SH DESCRIPTION
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   695
+.B cdbtest
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   696
+reads a (seekable) constant database from its standard input.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   697
+For each record in the database, it feeds the record's key to
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   698
+.B cdb_seek()
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   699
+and checks the result.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   700
+It prints tallies in several categories:
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   701
+.TP 5
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   702
+.B found
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   703
+is the number of records found correctly by their keys.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   704
+.TP
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   705
+.B different record
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   706
+is the number of records where a different record was found
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   707
+with the same key. This should not happen unless the database
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   708
+has multiple records with the same key.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   709
+.TP
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   710
+.B bad length
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   711
+is the number of records found but with the wrong data length.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   712
+This should never happen.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   713
+.TP
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   714
+.B not found
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   715
+is the number of records not found.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   716
+This should never happen.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   717
+.TP
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   718
+.B too long to test
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   719
+is the number of records with keys longer than 1024 bytes.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   720
+.B cdbtest
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   721
+doesn't bother testing these records.
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   722
+.SH "SEE ALSO"
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   723
+cdbget(1),
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   724
+cdb(3)
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   725
Binary files cdb-0.75/foo.cdb and cdb-0.75-fefe/foo.cdb differ
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   726
diff -uNr cdb-0.75/hier.c cdb-0.75-fefe/hier.c
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   727
--- cdb-0.75/hier.c	Sat Feb 19 21:42:05 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   728
+++ cdb-0.75-fefe/hier.c	Wed Sep 27 22:05:11 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   729
@@ -4,6 +4,10 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   730
 {
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   731
   h(auto_home,-1,-1,02755);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   732
   d(auto_home,"bin",-1,-1,02755);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   733
+  d(auto_home,"man",-1,-1,0755);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   734
+  d(auto_home,"man/man1",-1,-1,0755);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   735
+  d(auto_home,"man/man3",-1,-1,0755);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   736
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   737
 
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   738
   c(auto_home,"bin","cdbget",-1,-1,0755);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   739
   c(auto_home,"bin","cdbmake",-1,-1,0755);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   740
@@ -12,4 +16,22 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   741
   c(auto_home,"bin","cdbtest",-1,-1,0755);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   742
   c(auto_home,"bin","cdbmake-12",-1,-1,0755);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   743
   c(auto_home,"bin","cdbmake-sv",-1,-1,0755);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   744
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   745
+  c(auto_home,"man/man1","cdbdump.1",-1,-1,0755);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   746
+  c(auto_home,"man/man1","cdbget.1",-1,-1,0755);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   747
+  c(auto_home,"man/man1","cdbmake.1",-1,-1,0755);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   748
+  c(auto_home,"man/man1","cdbstats.1",-1,-1,0755);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   749
+  c(auto_home,"man/man1","cdbtest.1",-1,-1,0755);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   750
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   751
+  c(auto_home,"man/man3","cdb_datalen.3",-1,-1,0644);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   752
+  c(auto_home,"man/man3","cdb_datapos.3",-1,-1,0644);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   753
+  c(auto_home,"man/man3","cdb_find.3",-1,-1,0644);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   754
+  c(auto_home,"man/man3","cdb_firstkey.3",-1,-1,0644);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   755
+  c(auto_home,"man/man3","cdb_free.3",-1,-1,0644);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   756
+  c(auto_home,"man/man3","cdb_init.3",-1,-1,0644);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   757
+  c(auto_home,"man/man3","cdb_keylen.3",-1,-1,0644);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   758
+  c(auto_home,"man/man3","cdb_keypos.3",-1,-1,0644);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   759
+  c(auto_home,"man/man3","cdb_nextkey.3",-1,-1,0644);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   760
+  c(auto_home,"man/man3","cdb_read.3",-1,-1,0644);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   761
+  c(auto_home,"man/man3","cdb_successor.3",-1,-1,0644);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   762
 }
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   763
diff -uNr cdb-0.75/traverse.c cdb-0.75-fefe/traverse.c
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   764
--- cdb-0.75/traverse.c	Thu Jan  1 01:00:00 1970
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   765
+++ cdb-0.75-fefe/traverse.c	Wed Sep 27 18:41:38 2000
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   766
@@ -0,0 +1,43 @@
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   767
+#include <unistd.h>
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   768
+#include <sys/fcntl.h>
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   769
+#include <stdlib.h>
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   770
+#include <assert.h>
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   771
+#include "cdb.h"
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   772
+#include "fmt.h"
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   773
+
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   774
+main(int argc,char *argv[]) {
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   775
+  int fd;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   776
+  struct cdb c;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   777
+  char strnum[FMT_ULONG];
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   778
+  uint32 kpos;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   779
+  fd=open(argc>1?argv[1]:"foo.cdb",O_RDONLY);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   780
+  assert(fd>=0);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   781
+  cdb_init(&c,fd);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   782
+  if (cdb_firstkey(&c,&kpos)==1) {
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   783
+    do {
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   784
+      uint32 kp,klen,dp,dlen;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   785
+      char *key,*data;
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   786
+      kp=cdb_keypos(&c);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   787
+      klen=cdb_keylen(&c);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   788
+      dp=cdb_datapos(&c);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   789
+      dlen=cdb_datalen(&c);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   790
+      {
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   791
+	key=alloca(klen);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   792
+	data=alloca(dlen);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   793
+/*	printf("%lu %lu; %lu %lu\n",kp,klen,dp,dlen); */
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   794
+	assert(cdb_read(&c,key,klen,kp)==0);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   795
+	assert(cdb_read(&c,data,dlen,dp)==0);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   796
+	write(1,"+",1);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   797
+	write(1,strnum,fmt_ulong(strnum,klen));
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   798
+	write(1,",",1);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   799
+	write(1,strnum,fmt_ulong(strnum,dlen));
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   800
+	write(1,":",1);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   801
+	write(1,key,klen);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   802
+	write(1,"->",2);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   803
+	write(1,data,dlen);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   804
+	write(1,"\n",1);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   805
+      }
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   806
+    } while (cdb_nextkey(&c,&kpos)==1);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   807
+    write(1,"\n",1);
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   808
+  }
6ba86bca35c0 Imported cdb-0.75-traversal patch
"Tomas Zeman <tomas.zeman@sun.com>"
parents:
diff changeset
   809
+}