- int j, j0 = -1;
- const char *mterm = NULL;
- const char *tst;
- RSET rset;
-
- for (j = 0; j <ord_no; j++)
- {
- if (ptr[j] < before &&
- (tst=scan_info_array[j].list[before-1-ptr[j]].term) &&
- (!mterm || strcmp (tst, mterm) > 0))
- {
- j0 = j;
- mterm = tst;
- }
- }
- if (j0 == -1)
- break;
-
- scan_term_untrans (zh, stream->mem, reg_id,
- &glist[before-1-i].term, mterm);
-
- rset = rset_trunc
- (zh, &scan_info_array[j0].list[before-1-ptr[j0]].isam_p, 1,
- glist[before-1-i].term, strlen(glist[before-1-i].term),
- NULL, 0, zapt->term->which,rset_nmem);
-
- ptr[j0]++;
-
- for (j = j0+1; j<ord_no; j++)
- {
- if (ptr[j] < before &&
- (tst=scan_info_array[j].list[before-1-ptr[j]].term) &&
- !strcmp (tst, mterm))
- {
- RSET rset2;
-
- rset2 = rset_trunc (zh,
- &scan_info_array[j].list[before-1-ptr[j]].isam_p, 1,
- glist[before-1-i].term,
- strlen(glist[before-1-i].term), NULL, 0,
- zapt->term->which, rset_nmem);
- rset = rsbool_create_and(rset_nmem,
- sizeof(struct it_key), key_compare_it,
- rset, rset2,
- key_logdump_txt);
- ptr[j]++;
- }
- }
+ int j, j0 = -1;
+ const char *mterm = NULL;
+ const char *tst;
+ RSET rset;
+
+ for (j = 0; j <ord_no; j++)
+ {
+ if (ptr[j] < before &&
+ (tst = scan_info_array[j].list[before-1-ptr[j]].term) &&
+ (!mterm || strcmp (tst, mterm) > 0))
+ {
+ j0 = j;
+ mterm = tst;
+ }
+ }
+ if (j0 == -1)
+ break;
+
+ scan_term_untrans (zh, stream->mem, reg_id,
+ &glist[before-1-i].term, mterm);
+
+ rset = rset_trunc
+ (zh, &scan_info_array[j0].list[before-1-ptr[j0]].isam_p, 1,
+ glist[before-1-i].term, strlen(glist[before-1-i].term),
+ NULL, 0, zapt->term->which,rset_nmem,
+ key_it_ctrl,key_it_ctrl->scope);
+
+ ptr[j0]++;
+
+ for (j = j0+1; j<ord_no; j++)
+ {
+ if (ptr[j] < before &&
+ (tst = scan_info_array[j].list[before-1-ptr[j]].term) &&
+ !strcmp (tst, mterm))
+ {
+ RSET rsets[2];
+
+ rsets[0] = rset;
+ rsets[1] = rset_trunc(
+ zh,
+ &scan_info_array[j].list[before-1-ptr[j]].isam_p, 1,
+ glist[before-1-i].term,
+ strlen(glist[before-1-i].term), NULL, 0,
+ zapt->term->which, rset_nmem,
+ key_it_ctrl, key_it_ctrl->scope);
+ rset = rsmulti_or_create(rset_nmem, key_it_ctrl,
+ 2, key_it_ctrl->scope, rsets);
+
+ ptr[j]++;
+ }
+ }