-/*
- * Copyright (C) 1994-1999, Index Data
- * All rights reserved.
- * Sebastian Hammer, Adam Dickmeiss, Heikki Levanto
- * log at the end
- *
- * $Id
- */
+/* $Id: kcompare.c,v 1.40 2002-08-02 19:26:55 adam Exp $
+ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002
+ Index Data Aps
+
+This file is part of the Zebra server.
+
+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
+Software Foundation; either version 2, or (at your option) any later
+version.
+
+Zebra is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+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.
+*/
+
+
#include <stdlib.h>
return 0;
}
+char *key_print_it (const void *p, char *buf)
+{
+ const struct it_key *i = p;
+ sprintf (buf, "%d:%d", i->sysno, i->seqno);
+ return buf;
+}
+
int key_compare (const void *p1, const void *p2)
{
struct it_key i1, i2;
return me;
}
-#if ZMBOL
-
ISAMC_M key_isamc_m (Res res, ISAMC_M me)
{
isc_getmethod (me);
return me;
}
-#endif
-
-int key_SU_code (int ch, char *out)
+int key_SU_encode (int ch, char *out)
{
int i;
for (i = 0; ch; i++)
{
- if (ch > 63)
- out[i] = 128 + (ch & 63);
+ if (ch >= 64)
+ out[i] = 65 + (ch & 63);
else
out[i] = 1 + ch;
ch = ch >> 6;
}
return i;
+ /* in out
+ 0 1
+ 1 2
+ 63 64
+ 64 65, 2
+ 65 66, 2
+ 127 128, 2
+ 128 65, 3
+ 191 128, 3
+ 192 65, 4
+ */
}
+int key_SU_decode (int *ch, const unsigned char *out)
+{
+ int len = 1;
+ int fact = 1;
+ *ch = 0;
+ for (len = 1; *out >= 65; len++, out++)
+ {
+ *ch += (*out - 65) * fact;
+ fact <<= 6;
+ }
+ *ch += (*out - 1) * fact;
+ return len;
+}
/*
* $Log: kcompare.c,v $
- * Revision 1.35 1999-11-30 13:48:03 adam
+ * Revision 1.40 2002-08-02 19:26:55 adam
+ * Towards GPL
+ *
+ * Revision 1.39 2002/04/12 14:55:22 adam
+ * key_print_it
+ *
+ * Revision 1.38 2002/04/05 08:46:26 adam
+ * Zebra with full functionality
+ *
+ * Revision 1.37 2001/11/19 23:08:30 adam
+ * Added const qualifier for name parameter of key_SU_decode.
+ *
+ * Revision 1.36 2001/10/15 19:53:43 adam
+ * POSIX thread updates. First work on term sets.
+ *
+ * Revision 1.35 1999/11/30 13:48:03 adam
* Improved installation. Updated for inclusion of YAZ header files.
*
* Revision 1.34 1999/07/14 13:21:34 heikki