diff options
author | Bruno Haible <bruno@clisp.org> | 2007-02-11 22:38:58 +0000 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2007-02-11 22:38:58 +0000 |
commit | 1006ae023bf3da7c67d8ce4f0d357fac2128bcce (patch) | |
tree | 57067463d5c9317dd5b89c0682717dae518b3b27 /lib/mbsspn.c | |
parent | bea1ec67e345abcdee32bb4f88749544d35c6773 (diff) | |
download | gnulib-1006ae023bf3da7c67d8ce4f0d357fac2128bcce.tar.gz |
Fix bug. Remove unnecessary strlen call.
Diffstat (limited to 'lib/mbsspn.c')
-rw-r--r-- | lib/mbsspn.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/lib/mbsspn.c b/lib/mbsspn.c index f25c9096c1..921c953897 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 |