+
+static int term_100_icu(zebra_map_t zm,
+ const char **src, WRBUF term_dict, int space_split,
+ char *dst_term)
+{
+ int no = 0;
+ const char *res_buf = 0;
+ size_t res_len = 0;
+ int r = zebra_map_tokenize(zm, *src, strlen(*src),
+ &res_buf, &res_len);
+
+ yaz_log(YLOG_LOG, "term_100_icu r=%d", r);
+ if (r)
+ strcat(dst_term, *src);
+ *src += strlen(*src);
+ while (r)
+ {
+ int i;
+ no++;
+ for (i = 0; i < res_len; i++)
+ {
+ if (strchr(REGEX_CHARS, res_buf[i]))
+ wrbuf_putc(term_dict, '\\');
+ if (res_buf[i] < 32)
+ wrbuf_putc(term_dict, 1);
+ wrbuf_putc(term_dict, res_buf[i]);
+ }
+ r = zebra_map_tokenize(zm, 0, 0, &res_buf, &res_len);
+ }
+ return no;
+}
+