From 1006ae023bf3da7c67d8ce4f0d357fac2128bcce Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sun, 11 Feb 2007 22:38:58 +0000 Subject: [PATCH] Fix bug. Remove unnecessary strlen call. --- ChangeLog | 2 ++ lib/mbsspn.c | 17 ++++++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index c10aea205..2bbc6e52e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2007-02-11 Bruno Haible + * lib/mbsspn.c (mbsspn): Fix bug. Remove unnecessary strlen call. + * modules/mbsspn-tests: New file. * tests/test-mbsspn.sh: New file. * tests/test-mbsspn.c: New file. 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 -- 2.11.0