Fix fscan return val check
[idzebra-moved-to-github.git] / isamb / isamb.c
index 3b72464..13bb0cf 100644 (file)
@@ -1,8 +1,5 @@
-/* $Id: isamb.c,v 1.95 2007-11-28 10:38:10 adam Exp $
-   Copyright (C) 1995-2007
-   Index Data ApS
-
-This file is part of the Zebra server.
+/* This file is part of the Zebra server.
+   Copyright (C) 1994-2009 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
@@ -50,14 +47,17 @@ struct ISAMB_head {
 #define INT_ENCODE 1
 
 /* maximum size of encoded buffer */
-#define DST_ITEM_MAX 256
+#define DST_ITEM_MAX 5000
+
+/* max page size for _any_ isamb use */
+#define ISAMB_MAX_PAGE 32768
 
 #define ISAMB_MAX_LEVEL 10
 /* approx 2*max page + max size of item */
-#define DST_BUF_SIZE (2*4096+300)
+#define DST_BUF_SIZE (2*ISAMB_MAX_PAGE+DST_ITEM_MAX+100)
 
 /* should be maximum block size of multiple thereof */
-#define ISAMB_CACHE_ENTRY_SIZE 4096
+#define ISAMB_CACHE_ENTRY_SIZE ISAMB_MAX_PAGE
 
 /* CAT_MAX: _must_ be power of 2 */
 #define CAT_MAX 4
@@ -789,7 +789,7 @@ int insert_int(ISAMB b, struct ISAMB_block *p, void *lookahead_item,
 #if INT_ENCODE
        const char *sub_item_ptr = sub_item;
 #endif
-        assert(sub_size < 128 && sub_size > 1);
+        assert(sub_size < DST_ITEM_MAX && sub_size > 1);
 
         memcpy(dst, startp, src - startp);
                 
@@ -1294,7 +1294,7 @@ void isamb_merge(ISAMB b, ISAM_P *pos, ISAMC_I *stream)
 #endif
 
             encode_ptr(&dst, p->pos);
-           assert(sub_size < 128 && sub_size > 1);
+           assert(sub_size < DST_ITEM_MAX && sub_size > 1);
 #if INT_ENCODE
            (*b->method->codec.reset)(c1);
            (*b->method->codec.encode)(c1, &dst, &sub_item_ptr);
@@ -1640,6 +1640,7 @@ int isamb_pp_forward(ISAMB_PP pp, void *buf, const void *untilb)
        dst = dst0;
        if (p->offset == p->size) goto again;
     }
+    pp->returned_numbers++; 
     return 1;
 }
 
@@ -1667,6 +1668,7 @@ void isamb_set_root_ptr(ISAMB b, zint root_ptr)
 /*
  * Local variables:
  * c-basic-offset: 4
+ * c-file-style: "Stroustrup"
  * indent-tabs-mode: nil
  * End:
  * vim: shiftwidth=4 tabstop=8 expandtab