X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fmbsspn.c;h=921c953897f583532a6803bfe9ac61cb0da1f748;hb=fb7fde6f658ac18b7ab7ca61dca9a290cc8c3348;hp=f25c9096c1412314230a89fb03ad46fe2109b9fa;hpb=2a2eb440165889566a738cd355381b4b28870206;p=gnulib.git diff --git a/lib/mbsspn.c b/lib/mbsspn.c index f25c9096c..921c95389 100644 --- a/lib/mbsspn.c +++ b/lib/mbsspn.c @@ -47,8 +47,8 @@ mbsspn (const char *string, const char *reject) 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 @@ mbsspn (const char *string, const char *reject) { 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