-/* $Id: kcompare.c,v 1.55 2005-01-15 19:38:25 adam Exp $
- Copyright (C) 1995-2005
+/* $Id: kcompare.c,v 1.61 2006-08-16 13:16:36 adam Exp $
+ Copyright (C) 1995-2006
Index Data ApS
This file is part of the Zebra server.
for more details.
You should have received a copy of the GNU General Public License
-along with Zebra; see the file LICENSE.zebra. If not, write to the
-Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA.
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
*/
#include <stdlib.h>
#define CODEC_INLINE
#endif
-void key_logdump_txt (int logmask, const void *p, const char *txt)
+void key_logdump_txt(int logmask, const void *p, const char *txt)
{
struct it_key key;
+ if (!txt)
+ txt = "(none)";
if (p)
{
char formstr[128];
strcat(formstr, ".");
sprintf(formstr + strlen(formstr), ZINT_FORMAT, key.mem[i]);
}
- yaz_log (logmask, "%s %s", formstr, txt);
+ yaz_log(logmask, "%s %s", formstr, txt);
}
else
- yaz_log(logmask, " (null) %s",txt);
+ yaz_log(logmask, " (no key) %s",txt);
}
-void key_logdump (int logmask, const void *p)
+void key_logdump(int logmask, const void *p)
{
key_logdump_txt(logmask, p, "");
}
int i, l = ((struct it_key *) p1)->len;
if (((struct it_key *) p2)->len > l)
l = ((struct it_key *) p2)->len;
- assert (l <= 4 && l > 0);
+ assert (l <= IT_KEY_LEVEL_MAX && l > 0);
for (i = 0; i < l; i++)
{
if (((struct it_key *) p1)->mem[i] != ((struct it_key *) p2)->mem[i])
l = i1.len;
if (i2.len > l)
l = i2.len;
- assert (l <= 4 && l > 0);
+ assert (l <= IT_KEY_LEVEL_MAX && l > 0);
for (i = 0; i < l; i++)
{
if (i1.mem[i] != i2.mem[i])
return k.mem[k.len-1];
}
+zint key_get_segment(const void *p)
+{
+ struct it_key k;
+ memcpy (&k, p, sizeof(k));
+ return k.mem[k.len-2];
+}
+
int key_qsort_compare (const void *p1, const void *p2)
{
int r;
{
int i;
key->len = 0;
- for (i = 0; i<IT_KEY_LEVEL_MAX; i++)
+ for (i = 0; i < IT_KEY_LEVEL_MAX; i++)
key->mem[i] = 0;
}
struct iscz1_code_info *p = (struct iscz1_code_info *) vp;
int i;
p->key.len = 0;
- for (i = 0; i< IT_KEY_LEVEL_MAX; i++)
+ for (i = 0; i < IT_KEY_LEVEL_MAX; i++)
p->key.mem[i] = 0;
}
/* deal with leader + delta encoding .. */
d = 0;
- assert(tkey.len > 0 && tkey.len <= 4);
+ assert(tkey.len > 0 && tkey.len <= IT_KEY_LEVEL_MAX);
for (i = 0; i < tkey.len; i++)
{
d = tkey.mem[i] - p->key.mem[i];
ISAMC_M *key_isamc_m (Res res, ISAMC_M *me)
{
- isc_getmethod (me);
+ isamc_getmethod (me);
me->compare_item = key_compare;
me->log_item = key_logdump_txt;
return len;
}
+/*
+ * Local variables:
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ * vim: shiftwidth=4 tabstop=8 expandtab
+ */
+