- {
- if (MB_CUR_MAX > 1)
- {
- mbui_iterator_t string_iter;
- bool word_boundary_before;
- bool word_boundary_after;
-
- mbui_init (string_iter, string);
- word_boundary_before = true;
- if (mbui_cur_ptr (string_iter) < tsub_in_string)
- {
- mbchar_t last_char_before_tsub;
- do
- {
- if (!mbui_avail (string_iter))
- abort ();
- last_char_before_tsub = mbui_cur (string_iter);
- mbui_advance (string_iter);
- }
- while (mbui_cur_ptr (string_iter) < tsub_in_string);
- if (mb_isalnum (last_char_before_tsub))
- word_boundary_before = false;
- }
-
- mbui_init (string_iter, tsub_in_string);
- {
- mbui_iterator_t tsub_iter;
-
- for (mbui_init (tsub_iter, tsub);
- mbui_avail (tsub_iter);
- mbui_advance (tsub_iter))
- {
- if (!mbui_avail (string_iter))
- abort ();
- mbui_advance (string_iter);
- }
- }
- word_boundary_after = true;
- if (mbui_avail (string_iter))
- {
- mbchar_t first_char_after_tsub = mbui_cur (string_iter);
- if (mb_isalnum (first_char_after_tsub))
- word_boundary_after = false;
- }
-
- if (word_boundary_before && word_boundary_after)
- {
- found = true;
- break;
- }
-
- mbui_init (string_iter, tsub_in_string);
- if (!mbui_avail (string_iter))
- break;
- string = tsub_in_string + mb_len (mbui_cur (string_iter));
- }
- else
- {
- bool word_boundary_before;
- const char *p;
- bool word_boundary_after;
-
- word_boundary_before = true;
- if (string < tsub_in_string)
- if (isalnum ((unsigned char) tsub_in_string[-1]))
- word_boundary_before = false;
-
- p = tsub_in_string + strlen (tsub);
- word_boundary_after = true;
- if (*p != '\0')
- if (isalnum ((unsigned char) *p))
- word_boundary_after = false;
-
- if (word_boundary_before && word_boundary_after)
- {
- found = true;
- break;
- }
-
- if (*tsub_in_string == '\0')
- break;
- string = tsub_in_string + 1;
- }
- }
+ {
+ if (MB_CUR_MAX > 1)
+ {
+ mbui_iterator_t string_iter;
+ bool word_boundary_before;
+ bool word_boundary_after;
+
+ mbui_init (string_iter, string);
+ word_boundary_before = true;
+ if (mbui_cur_ptr (string_iter) < tsub_in_string)
+ {
+ mbchar_t last_char_before_tsub;
+ do
+ {
+ if (!mbui_avail (string_iter))
+ abort ();
+ last_char_before_tsub = mbui_cur (string_iter);
+ mbui_advance (string_iter);
+ }
+ while (mbui_cur_ptr (string_iter) < tsub_in_string);
+ if (mb_isalnum (last_char_before_tsub))
+ word_boundary_before = false;
+ }
+
+ mbui_init (string_iter, tsub_in_string);
+ {
+ mbui_iterator_t tsub_iter;
+
+ for (mbui_init (tsub_iter, tsub);
+ mbui_avail (tsub_iter);
+ mbui_advance (tsub_iter))
+ {
+ if (!mbui_avail (string_iter))
+ abort ();
+ mbui_advance (string_iter);
+ }
+ }
+ word_boundary_after = true;
+ if (mbui_avail (string_iter))
+ {
+ mbchar_t first_char_after_tsub = mbui_cur (string_iter);
+ if (mb_isalnum (first_char_after_tsub))
+ word_boundary_after = false;
+ }
+
+ if (word_boundary_before && word_boundary_after)
+ {
+ found = true;
+ break;
+ }
+
+ mbui_init (string_iter, tsub_in_string);
+ if (!mbui_avail (string_iter))
+ break;
+ string = tsub_in_string + mb_len (mbui_cur (string_iter));
+ }
+ else
+ {
+ bool word_boundary_before;
+ const char *p;
+ bool word_boundary_after;
+
+ word_boundary_before = true;
+ if (string < tsub_in_string)
+ if (isalnum ((unsigned char) tsub_in_string[-1]))
+ word_boundary_before = false;
+
+ p = tsub_in_string + strlen (tsub);
+ word_boundary_after = true;
+ if (*p != '\0')
+ if (isalnum ((unsigned char) *p))
+ word_boundary_after = false;
+
+ if (word_boundary_before && word_boundary_after)
+ {
+ found = true;
+ break;
+ }
+
+ if (*tsub_in_string == '\0')
+ break;
+ string = tsub_in_string + 1;
+ }
+ }