X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fzrpn.c;h=07f009119d74f6485b8402e55d1d8999be80fe8b;hb=7b60afe0622f8b757421f72cfa591f8be7b7d107;hp=4c6641ee6863bb5bd3767589bb581da0c7182354;hpb=85a2a0b28cb516d28ac70b7824f2b7d4b07e56ae;p=idzebra-moved-to-github.git diff --git a/index/zrpn.c b/index/zrpn.c index 4c6641e..07f0091 100644 --- a/index/zrpn.c +++ b/index/zrpn.c @@ -4,7 +4,12 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: zrpn.c,v $ - * Revision 1.77 1998-05-20 10:12:22 adam + * Revision 1.78 1998-06-08 14:43:17 adam + * Added suport for EXPLAIN Proxy servers - added settings databasePath + * and explainDatabase to facilitate this. Increased maximum number + * of databases and attributes in one register. + * + * Revision 1.77 1998/05/20 10:12:22 adam * Implemented automatic EXPLAIN database maintenance. * Modified Zebra to work with ASN.1 compiled version of YAZ. * @@ -435,9 +440,10 @@ static void add_isam_p (const char *name, const char *info, assert (*info == sizeof(*p->isam_p_buf)); memcpy (p->isam_p_buf + p->isam_p_indx, info+1, sizeof(*p->isam_p_buf)); +#if 0 term_untrans (p->zh, p->reg_type, term_tmp, name+2); logf (LOG_DEBUG, "grep: %s", term_tmp); - +#endif (p->isam_p_indx)++; } @@ -829,6 +835,8 @@ static int field_term (ZebraHandle zh, Z_AttributesPlusTerm *zapt, local_attr = local_attr->next) { int ord; + char ord_buf[32]; + int i, ord_len; ord = zebraExplain_lookupSU (zh->zei, attp.attset_ordinal, local_attr->local); @@ -838,8 +846,13 @@ static int field_term (ZebraHandle zh, Z_AttributesPlusTerm *zapt, term_dict[prefix_len++] = '|'; else term_dict[prefix_len++] = '('; - term_dict[prefix_len++] = 1; - term_dict[prefix_len++] = ord; + + ord_len = key_SU_code (ord, ord_buf); + for (i = 0; ilist)); for (j = 0; jlist[j].term = NULL; - termz[prefix_len++] = ords[i]; + + prefix_len += key_SU_code (ords[i], termz + prefix_len); termz[prefix_len++] = reg_id; termz[prefix_len] = 0; strcpy (scan_info->prefix, termz);