This bug fix was necessary: 2007-02-11 Bruno Haible <[EMAIL PROTECTED]>
* lib/mbsspn.c (mbsspn): Fix bug. Remove unnecessary strlen call. --- lib/mbsspn.c 5 Feb 2007 03:23:34 -0000 1.1 +++ lib/mbsspn.c 11 Feb 2007 22:36:25 -0000 @@ -47,8 +47,8 @@ for (mbui_init (iter, string); mbui_avail (iter); mbui_advance (iter)) if (!(mb_len (mbui_cur (iter)) == 1 && (unsigned char) * mbui_cur_ptr (iter) == uc)) - return mbui_cur_ptr (iter) - string; - return strlen (string); + break; + return mbui_cur_ptr (iter) - string; } else #endif @@ -71,25 +71,24 @@ { if (mb_len (mbui_cur (iter)) == 1) { - if (mbschr (reject, (unsigned char) * mbui_cur_ptr (iter)) == NULL) - return mbui_cur_ptr (iter) - string; + if (mbschr (reject, * mbui_cur_ptr (iter)) == NULL) + goto found; } else { mbui_iterator_t aiter; - for (mbui_init (aiter, reject); - mbui_avail (aiter); - mbui_advance (aiter)) + for (mbui_init (aiter, reject);; mbui_advance (aiter)) { if (!mbui_avail (aiter)) - return mbui_cur_ptr (iter) - string; + goto found; if (mb_equal (mbui_cur (aiter), mbui_cur (iter))) break; } } } - return strlen (string); + found: + return mbui_cur_ptr (iter) - string; } else #endif