+ chain = icu_chain_create((uint8_t *) "en:word", (uint8_t *) "en");
+ step = icu_chain_insert_step(chain, ICU_chain_step_type_normalize,
+ (const uint8_t *) "[:Control:] Any-Remove",
+ &status);
+ step = icu_chain_insert_step(chain, ICU_chain_step_type_tokenize,
+ (const uint8_t *) "s",
+ &status);
+ step = icu_chain_insert_step(chain, ICU_chain_step_type_tokenize,
+ (const uint8_t *) "l",
+ &status);
+ step = icu_chain_insert_step(chain, ICU_chain_step_type_normalize,
+ (const uint8_t *)
+ "[[:WhiteSpace:][:Punctuation:]] Any-Remove",
+ &status);
+ step = icu_chain_insert_step(chain, ICU_chain_step_type_display,
+ (const uint8_t *)"",
+ &status);
+/* step = icu_chain_insert_step(chain, ICU_chain_step_type_normalize, */
+/* (const uint8_t *) "Lower", */
+/* &status); */
+ step = icu_chain_insert_step(chain, ICU_chain_step_type_casemap,
+ (const uint8_t *) "l",
+ &status);
+ step = icu_chain_insert_step(chain, ICU_chain_step_type_norm,
+ (const uint8_t *)"",
+ &status);
+/* step = icu_chain_insert_step(chain, ICU_chain_step_type_sort, */
+/* (const uint8_t *)"", */
+/* &status); */
+
+#endif
+
+ xmlFreeDoc(doc);
+ YAZ_CHECK(chain);
+
+ YAZ_CHECK(icu_chain_assign_cstr(chain, en_str, &status));
+
+ while (icu_chain_next_token(chain, &status)){
+ printf("%d '%s' '%s'\n",
+ icu_chain_get_token_count(chain),
+ icu_chain_get_norm(chain),
+ icu_chain_get_display(chain));
+ }
+
+ YAZ_CHECK_EQ(icu_chain_get_token_count(chain), 7);
+
+
+ YAZ_CHECK(icu_chain_assign_cstr(chain, "what is this?", &status));
+
+ while (icu_chain_next_token(chain, &status)){
+ printf("%d '%s' '%s'\n",
+ icu_chain_get_token_count(chain),
+ icu_chain_get_norm(chain),
+ icu_chain_get_display(chain));
+ }
+
+
+ YAZ_CHECK_EQ(icu_chain_get_token_count(chain), 3);
+
+ icu_chain_destroy(chain);
+}
+
+
+void test_bug_1140(void)
+{
+ const char * en_str
+ = "O Romeo, Romeo! wherefore art thou\t Romeo?";