The facet character set normalization - unlike sort/mergekey/relevance
must be null by default. For the 3 existing ones we uset the 7-bit
ascii naive implementation. This fixes test_facets.sh test.
+static const char *pp2_relevance_token_null(pp2_relevance_token_t prt);
static const char *pp2_relevance_token_a_to_z(pp2_relevance_token_t prt);
static const char *pp2_get_sort_ascii(pp2_relevance_token_t prt);
static const char *pp2_relevance_token_a_to_z(pp2_relevance_token_t prt);
static const char *pp2_get_sort_ascii(pp2_relevance_token_t prt);
-pp2_charset_t pp2_charset_create(struct icu_chain * icu_chn)
+pp2_charset_t pp2_charset_create_a_to_z(void)
+{
+ pp2_charset_t pct = pp2_charset_create(0);
+ pct->token_next_handler = pp2_relevance_token_a_to_z;
+ return pct;
+}
+
+pp2_charset_t pp2_charset_create(struct icu_chain *icu_chn)
{
pp2_charset_t pct = xmalloc(sizeof(*pct));
{
pp2_charset_t pct = xmalloc(sizeof(*pct));
- pct->token_next_handler = pp2_relevance_token_a_to_z;
+ pct->token_next_handler = pp2_relevance_token_null;
pct->get_sort_handler = pp2_get_sort_ascii;
pct->ref_count = 1;
#if YAZ_HAVE_ICU
pct->get_sort_handler = pp2_get_sort_ascii;
pct->ref_count = 1;
#if YAZ_HAVE_ICU
+static const char *pp2_relevance_token_null(pp2_relevance_token_t prt)
+{
+ const char *cp = prt->cp;
+
+ prt->last_cp = *cp ? cp : 0;
+ while (*cp)
+ cp++;
+ prt->cp = cp;
+ return prt->last_cp;
+}
#if YAZ_HAVE_ICU
static const char *pp2_relevance_token_icu(pp2_relevance_token_t prt)
#if YAZ_HAVE_ICU
static const char *pp2_relevance_token_icu(pp2_relevance_token_t prt)
pp2_charset_t pp2_charset_create_xml(xmlNode *xml_node);
pp2_charset_t pp2_charset_create(struct icu_chain * icu_chn);
pp2_charset_t pp2_charset_create_xml(xmlNode *xml_node);
pp2_charset_t pp2_charset_create(struct icu_chain * icu_chn);
+pp2_charset_t pp2_charset_create_a_to_z(void);
+
void pp2_charset_destroy(pp2_charset_t pct);
void pp2_charset_incref(pp2_charset_t pct);
void pp2_charset_destroy(pp2_charset_t pct);
void pp2_charset_incref(pp2_charset_t pct);
pp2_charset_incref(s->relevance_pct);
}
else
pp2_charset_incref(s->relevance_pct);
}
else
- s->relevance_pct = pp2_charset_create(0);
+ s->relevance_pct = pp2_charset_create_a_to_z();
pp2_charset_incref(s->sort_pct);
}
else
pp2_charset_incref(s->sort_pct);
}
else
- s->sort_pct = pp2_charset_create(0);
+ s->sort_pct = pp2_charset_create_a_to_z();
pp2_charset_incref(s->mergekey_pct);
}
else
pp2_charset_incref(s->mergekey_pct);
}
else
- s->mergekey_pct = pp2_charset_create(0);
+ s->mergekey_pct = pp2_charset_create_a_to_z();