X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fmbsspn.c;h=272d54dd8e01c89df19254639100f7737f2d247c;hb=23eecb48e39afd0d267d64d40ba6bf97aa865e13;hp=8f399b0434216c0d3629ab1af76a9b575c66b1af;hpb=57fdfd3f8ec62b105c53bcdf6f127c35c7fe7391;p=gnulib.git diff --git a/lib/mbsspn.c b/lib/mbsspn.c index 8f399b043..272d54dd8 100644 --- a/lib/mbsspn.c +++ b/lib/mbsspn.c @@ -1,5 +1,5 @@ /* Searching a string for a character outside a given set of characters. - Copyright (C) 1999, 2002, 2006-2007 Free Software Foundation, Inc. + Copyright (C) 1999, 2002, 2006-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2007. This program is free software: you can redistribute it and/or modify @@ -20,9 +20,7 @@ /* Specification. */ #include -#if HAVE_MBRTOWC -# include "mbuiter.h" -#endif +#include "mbuiter.h" /* Find the first occurrence in the character string STRING of any character not in the character string REJECT. Return the number of bytes from the @@ -38,58 +36,54 @@ mbsspn (const char *string, const char *reject) { unsigned char uc = (unsigned char) reject[0]; -#if HAVE_MBRTOWC if (MB_CUR_MAX > 1) - { - mbui_iterator_t iter; + { + mbui_iterator_t iter; - 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)) - break; - return mbui_cur_ptr (iter) - string; - } + 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)) + break; + return mbui_cur_ptr (iter) - string; + } else -#endif - { - const char *ptr; + { + const char *ptr; - for (ptr = string; *ptr != '\0'; ptr++) - if ((unsigned char) *ptr != uc) - break; - return ptr - string; - } + for (ptr = string; *ptr != '\0'; ptr++) + if ((unsigned char) *ptr != uc) + break; + return ptr - string; + } } /* General case. */ -#if HAVE_MBRTOWC if (MB_CUR_MAX > 1) { mbui_iterator_t iter; for (mbui_init (iter, string); mbui_avail (iter); mbui_advance (iter)) - { - if (mb_len (mbui_cur (iter)) == 1) - { - if (mbschr (reject, * mbui_cur_ptr (iter)) == NULL) - goto found; - } - else - { - mbui_iterator_t aiter; + { + if (mb_len (mbui_cur (iter)) == 1) + { + if (mbschr (reject, * mbui_cur_ptr (iter)) == NULL) + goto found; + } + else + { + mbui_iterator_t aiter; - for (mbui_init (aiter, reject);; mbui_advance (aiter)) - { - if (!mbui_avail (aiter)) - goto found; - if (mb_equal (mbui_cur (aiter), mbui_cur (iter))) - break; - } - } - } + for (mbui_init (aiter, reject);; mbui_advance (aiter)) + { + if (!mbui_avail (aiter)) + goto found; + if (mb_equal (mbui_cur (aiter), mbui_cur (iter))) + break; + } + } + } found: return mbui_cur_ptr (iter) - string; } else -#endif return strspn (string, reject); }