* Sebastian Hammer, Adam Dickmeiss
*
* $Log: isamc.c,v $
- * Revision 1.9 1998-03-06 13:54:02 adam
+ * Revision 1.10 1998-03-11 11:18:18 adam
+ * Changed the isc_merge to take into account the mfill (minimum-fill).
+ *
+ * Revision 1.9 1998/03/06 13:54:02 adam
* Fixed two nasty bugs in isc_merge.
*
* Revision 1.8 1997/09/17 12:19:20 adam
{ 32, 28, 0, 3 },
{ 64, 54, 30, 0 },
#else
- { 32, 28, 0, 20 },
- { 512, 490, 100, 20 },
- { 4096, 3950, 1000, 20 },
- {32768, 32000, 10000, 0 },
+ { 32, 28, 20, 20 },
+ { 512, 490, 340, 20 },
+ { 4096, 3950, 3200, 20 },
+ {32768, 32000, 30000, 0 },
#endif
};
ISAMC_M m = xmalloc (sizeof(*m));
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: merge.c,v $
- * Revision 1.6 1998-03-06 13:54:03 adam
+ * Revision 1.7 1998-03-11 11:18:18 adam
+ * Changed the isc_merge to take into account the mfill (minimum-fill).
+ *
+ * Revision 1.6 1998/03/06 13:54:03 adam
* Fixed two nasty bugs in isc_merge.
*
* Revision 1.5 1997/02/12 20:42:43 adam
{
/* the resulting output is of the same category as the
the original
- */
- if (mb[ptr].offset == r_offset)
+ */
+ if (r_offset <= mb[ptr].offset +is->method->filecat[cat].mfill)
{
- /* the resulting output block is empty. Delete
+ /* the resulting output block is too small/empty. Delete
the original (if any)
- */
+ */
if (is->method->debug > 3)
logf (LOG_LOG, "isc: release A");
if (mb[ptr].block)
isc_release_block (is, pp->cat, mb[ptr].block);
mb[ptr].block = pp->pos;
- mb[ptr].dirty = 2;
+ mb[ptr].dirty = 1;
if (ptr > 0)
mb[ptr-1].dirty = 1;
}
/* is next input item the same as current except
for the delete flag? */
cmp = (*is->method->compare_item)(i_item, f_item);
- if (!cmp && i_mode)
+ if (!cmp && i_mode) /* delete/insert nop? */
{
/* yes! insert as if it was an insert only */
memcpy (r_item, i_item, i_item_ptr - i_item);