- if (1)
- {
- int ord;
- int use = zebra_maps_sort(zh->reg->zebra_maps,
- sk->u.sortAttributes,
- &sort_criteria[i].numerical);
- yaz_log(log_level_sort, "use value = %d", use);
- if (use == -1)
- {
- zebra_setError(
- zh, YAZ_BIB1_USE_ATTRIBUTE_REQUIRED_BUT_NOT_SUPPLIED, 0);
- return ZEBRA_FAIL;
- }
- ord = zebraExplain_lookup_attr_su_any_index(zh->reg->zei,
- VAL_IDXPATH, use);
- if (ord == -1)
- {
- zebra_setError(
- zh, YAZ_BIB1_CANNOT_SORT_ACCORDING_TO_SEQUENCE, 0);
- return ZEBRA_FAIL;
- }
- sort_criteria[i].ord = ord;
- }
+ res = zebra_sort_get_ord(zh, sk->u.sortAttributes,
+
+ &sort_criteria[i].ord,
+ &sort_criteria[i].numerical);
+ if (sks->which != Z_SortKeySpec_null && res != ZEBRA_OK)
+ return ZEBRA_FAIL;