X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;ds=sidebyside;f=index%2Fkcompare.c;h=c0575baaaffb29cee31d9bf5b15f314f46ed4cda;hb=29357d2be4bc20d412d38bcb29876daedda28637;hp=d326493b521ff2fa1136b7bf9b234bdff4b36b11;hpb=ca19a15163ee74ee0c6765bfef4fd9794627e26a;p=idzebra-moved-to-github.git diff --git a/index/kcompare.c b/index/kcompare.c index d326493..c0575ba 100644 --- a/index/kcompare.c +++ b/index/kcompare.c @@ -4,7 +4,16 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: kcompare.c,v $ - * Revision 1.8 1995-09-28 09:19:42 adam + * Revision 1.11 1995-10-06 16:33:37 adam + * Use attribute mappings. + * + * Revision 1.10 1995/09/29 14:01:41 adam + * Bug fixes. + * + * Revision 1.9 1995/09/28 12:10:32 adam + * Bug fixes. Field prefix used in queries. + * + * Revision 1.8 1995/09/28 09:19:42 adam * xfree/xmalloc used everywhere. * Extract/retrieve method seems to work for text records. * @@ -83,7 +92,30 @@ int key_compare (const void *p1, const void *p2) return 0; } +int key_qsort_compare (const void *p1, const void *p2) +{ + int r; + size_t l; + char *cp1 = *(char **) p1; + char *cp2 = *(char **) p2; + + if ((r = strcmp (cp1, cp2))) + return r; + l = strlen(cp1)+1; + if ((r = key_compare (cp1+l+1, cp2+l+1))) + return r; + return cp1[l] - cp2[l]; +} + int index_char_cvt (int c) { return tolower (c); } + +int index_word_prefix (char *string, int attset_ordinal, + int local_attribute) +{ + sprintf (string, "%c%04d", attset_ordinal + '0', local_attribute); + return 5; +} +