RPM: get version from IDMETA
[idzebra-moved-to-github.git] / index / records.c
index d1f99a3..490c358 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of the Zebra server.
-   Copyright (C) 1994-2009 Index Data
+   Copyright (C) 1994-2011 Index Data
 
 Zebra is free software; you can redistribute it and/or modify it under
 the terms of the GNU General Public License as published by the Free
@@ -32,6 +32,9 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  *      (length, data) - pairs
  *      length = 0 if same as previous
  */
+#if HAVE_CONFIG_H
+#include <config.h>
+#endif
 #include <stdio.h>
 #include <stdlib.h>
 #include <assert.h>
@@ -280,6 +283,28 @@ static ZEBRA_RES rec_write_tmp_buf(Records p, int size, zint *sysnos)
     return ZEBRA_OK;
 }
 
+int rec_check_compression_method(int compression_method)
+{
+    switch(compression_method)
+    {
+    case REC_COMPRESS_ZLIB:
+#if HAVE_ZLIB_H
+        return 1;
+#else
+        return 0;
+#endif
+    case REC_COMPRESS_BZIP2:
+#if HAVE_BZLIB_H
+        return 1;
+#else
+        return 0;
+#endif
+    case REC_COMPRESS_NONE:
+        return 1;
+    }
+    return 0;
+}
+
 Records rec_open(BFiles bfs, int rw, int compression_method)
 {
     Records p;
@@ -912,6 +937,21 @@ Record rec_get_root(Records p)
     return rec_get(p, rec_sysno_to_ext(1));
 }
 
+Record rec_get_next(Records p, Record rec)
+{
+    Record next = 0;
+    zint next_sysno_int = rec_sysno_to_int(rec->sysno);
+
+    while (!next)
+    {
+         ++next_sysno_int;
+        if (next_sysno_int == p->head.index_last)
+            break;
+        next = rec_get(p, rec_sysno_to_ext(next_sysno_int));
+    }
+    return next;
+}
+
 static Record rec_new_int(Records p)
 {
     int i;