summaryrefslogtreecommitdiff
path: root/lib/mbsspn.c
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2007-02-11 22:38:58 +0000
committerBruno Haible <bruno@clisp.org>2007-02-11 22:38:58 +0000
commit1006ae023bf3da7c67d8ce4f0d357fac2128bcce (patch)
tree57067463d5c9317dd5b89c0682717dae518b3b27 /lib/mbsspn.c
parentbea1ec67e345abcdee32bb4f88749544d35c6773 (diff)
downloadgnulib-1006ae023bf3da7c67d8ce4f0d357fac2128bcce.tar.gz
Fix bug. Remove unnecessary strlen call.
Diffstat (limited to 'lib/mbsspn.c')
-rw-r--r--lib/mbsspn.c17
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