/* This file is part of the Zebra server.
- Copyright (C) 1994-2010 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
*/
+#if HAVE_CONFIG_H
+#include <config.h>
+#endif
#include <stdlib.h>
#include <assert.h>
#include <string.h>
for (i = 0; i<ptr; i++)
{
/* consider this block number */
- if (!mb[i].block)
+ if (!mb[i].block)
{
mb[i].block = isamc_alloc_block (is, cat);
mb[i].dirty = 1;
/* consider next block pointer */
if (last && i == ptr-1)
mb[i+1].block = 0;
- else if (!mb[i+1].block)
+ else if (!mb[i+1].block)
{
mb[i+1].block = isamc_alloc_block (is, cat);
mb[i+1].dirty = 1;
/* Border set to initial fill or block size depending on
whether we are creating a new one or updating and old one.
*/
-
+
int fill = mb[ptr].block ? is->method->filecat[cat].bsize :
is->method->filecat[cat].ifill;
int off = (ptr||firstpos) ? ISAMC_BLOCK_OFFSET_N : ISAMC_BLOCK_OFFSET_1;
-
+
assert (ptr < 199);
return mb[ptr].offset + fill - off;
char i_item[128], *i_item_ptr;
int i_more, i_mode, i;
- ISAMC_PP pp;
+ ISAMC_PP pp;
char f_item[128], *f_item_ptr;
int f_more;
int last_dirty = 0;
int debug = is->method->debug;
-
+
struct isamc_merge_block mb[200];
zint firstpos = 0;
{
/* block to block boundary in the original file. */
f_more = 1;
- if (cat == pp->cat)
+ if (cat == pp->cat)
{
/* the resulting output is of the same category as the
- the original
+ the original
*/
if (r_offset <= mb[ptr].offset +is->method->filecat[cat].mfill)
{
int new_offset;
(*is->method->codec.encode)(r_clientData, &r_out_ptr, &src);
- new_offset = r_out_ptr - r_buf;
+ new_offset = r_out_ptr - r_buf;
numKeys++;
if (cat < is->max_cat && ptr >= is->method->filecat[cat].mblocks)
{
/* Max number blocks in current category reached ->
- must switch to next category (with larger block size)
+ must switch to next category (with larger block size)
*/
int j = 0;
}
if (mb[ptr].offset < r_offset)
{ /* make the final boundary offset */
- mb[++ptr].dirty = 1;
- mb[ptr].block = 0;
+ mb[++ptr].dirty = 1;
+ mb[ptr].block = 0;
mb[ptr].offset = r_offset;
}
else