-/* $Id: trunc.c,v 1.31 2004-08-06 13:14:46 adam Exp $
+/* $Id: trunc.c,v 1.33 2004-08-11 13:35:04 adam Exp $
Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
Index Data Aps
key_compare_it);
for (i = to-from; --i >= 0; )
{
- ispt[i] = isamb_pp_open (zi->reg->isamb, isam_p[from+i]);
- if (isamb_pp_read (ispt[i], ti->tmpbuf))
- heap_insert (ti, ti->tmpbuf, i);
- else
- isamb_pp_close (ispt[i]);
+ if (isam_p[from+i]) {
+ ispt[i] = isamb_pp_open (zi->reg->isamb, isam_p[from+i]);
+ if (isamb_pp_read (ispt[i], ti->tmpbuf))
+ heap_insert (ti, ti->tmpbuf, i);
+ else
+ isamb_pp_close (ispt[i]);
+ }
}
while (ti->heapnum)
{
{
ISAMC_P i1 = *(ISAMC_P*) p1;
ISAMC_P i2 = *(ISAMC_P*) p2;
- int d;
+ zint d;
- d = (int) (isc_type (i1) - isc_type (i2));
- if (d)
- return d;
- d = isc_block (i1) - isc_block (i2);
+ d = (isc_type (i1) - isc_type (i2));
+ if (d == 0)
+ d = isc_block (i1) - isc_block (i2);
if (d > 0)
return 1;
else if (d < 0)