25 char sort_string_buf[64], sort_flags[64];
33 while ((sscanf(arg,
"%63s %63s%n", sort_string_buf,
34 sort_flags, &off)) == 2 && off > 1)
37 char *sort_string_sep;
38 char *sort_string = sort_string_buf;
49 if ((sort_string_sep = strchr(sort_string,
'=')))
61 while (i < 10 && sort_string && sort_string_sep)
72 sort_string = strchr(sort_string,
',');
76 sort_string_sep = strchr(sort_string,
'=');
92 for (i = 0; sort_flags[i]; i++)
94 switch (sort_flags[i])
125 i += strlen(sort_flags+i) - 1;
338 int num_sortspec = 0;
344 for (i = 0; i < num_sortspec; i++)
349 int case_sensitive = 0;
350 const char *missing = 0;
353 if (num_arg > 2 && arg[2][0])
354 ascending = atoi(arg[2]);
355 if (num_arg > 3 && arg[3][0])
356 case_sensitive = atoi(arg[3]);
357 if (num_arg > 4 && arg[4][0])
370 if (!strcmp(missing,
"omit")) {
373 else if (!strcmp(missing,
"abort"))
375 else if (!strcmp(missing,
"lowValue")) {
378 else if (!strcmp(missing,
"highValue")) {
397 int num_sortspec = 0;
402 nmem_strsplit(nmem,
",", solr_sortkeys, &sortspec, &num_sortspec);
403 for (i = 0; i < num_sortspec; i++)
408 int case_sensitive = 0;
int yaz_matchstr(const char *s1, const char *s2)
match strings - independent of case and '-'
Header for YAZ iconv interface.
NMEM nmem_create(void)
returns new NMEM handle
void nmem_destroy(NMEM n)
destroys NMEM handle and memory associated with it
void nmem_strsplitx(NMEM nmem, const char *delim, const char *dstr, char ***darray, int *num, int collapse)
allocates sub strings out of string using certain delimitors
void nmem_strsplit_blank(NMEM nmem, const char *dstr, char ***darray, int *num)
splits string into sub strings delimited by blanks
void nmem_strsplit(NMEM nmem, const char *delim, const char *dstr, char ***darray, int *num)
allocates sub strings out of string using certain delimitors
Odr_null * odr_nullval(void)
Odr_int odr_atoi(const char *s)
char * odr_strdup(ODR o, const char *str)
Odr_int * odr_intdup(ODR o, Odr_int v)
void * odr_malloc(ODR o, size_t size)
Odr_oid * odr_oiddup(ODR odr, const Odr_oid *o)
const Odr_oid yaz_oid_attset_bib_1[]
int yaz_solr_sortkeys_to_sort_spec(const char *solr_sortkeys, WRBUF w)
int yaz_sort_spec_to_type7(Z_SortKeySpecList *sksl, WRBUF pqf)
int yaz_srw_sortkeys_to_sort_spec(const char *srw_sortkeys, WRBUF w)
int yaz_sort_spec_to_solr_sortkeys(Z_SortKeySpecList *sksl, WRBUF w)
int yaz_sort_spec_to_srw_sortkeys(Z_SortKeySpecList *sksl, WRBUF w)
int yaz_sort_spec_to_cql(Z_SortKeySpecList *sksl, WRBUF w)
Z_SortKeySpecList * yaz_sort_spec(ODR out, const char *arg)
parse sort spec string
Header for SortSpec parsing.
union Z_AttributeElement::@50 value
Z_AttributeSetId * attributeSet
Z_AttributeElement ** attributes
union Z_SortElement::@66 u
Odr_oct * missingValueData
union Z_SortKeySpec::@65 u
Z_SortElement * sortElement
Odr_int * caseSensitivity
Z_SortAttributes * sortAttributes
Z_InternationalString * sortField
void wrbuf_insert(WRBUF b, size_t pos, const char *buf, size_t size)
inserts buffer into WRBUF at some position
void wrbuf_printf(WRBUF b, const char *fmt,...)
writes printf result to WRBUF
void wrbuf_puts(WRBUF b, const char *buf)
appends C-string to WRBUF
void wrbuf_write(WRBUF b, const char *buf, size_t size)
append constant size buffer to WRBUF
Header for WRBUF (growing buffer)
ASN.1 Module Z39-50-APDU-1995.
#define Z_AttributeValue_numeric
#define Z_SortElement_generic
#define Z_SortKeySpec_missingValueData
#define Z_SortKeySpec_caseSensitive
#define Z_SortKey_sortAttributes
#define Z_SortKey_sortField
#define Z_SortKeySpec_null
#define Z_SortKeySpec_caseInsensitive
#define Z_SortKeySpec_ascending
#define Z_SortKeySpec_abort
#define Z_SortKeySpec_descending