X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fstrnlen.c;h=b6c710269cd50d9ec6c18d33df3b27ff72b8908c;hb=0822bcc5bbeddba780a4c68b62a310ccb9db875d;hp=f5681ca383919053795d35fc4dba5f96388b8121;hpb=e09a10a64b73f68041ba64de52dba9c91d04bca1;p=gnulib.git diff --git a/lib/strnlen.c b/lib/strnlen.c index f5681ca38..b6c710269 100644 --- a/lib/strnlen.c +++ b/lib/strnlen.c @@ -1,5 +1,5 @@ /* Find the length of STRING, but scan at most MAXLEN characters. - Copyright (C) 1996, 1997, 1998, 2000 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 2000-2002 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -21,7 +21,18 @@ # include #endif -#include +#if HAVE_STRING_H +# if !STDC_HEADERS && HAVE_MEMORY_H +# include +# endif +/* Temporarily redefine strnlen so that an inconsistent prototype + (on at least AIX4.3.2.0 w/gcc-2.95.3) doesn't cause trouble. */ +# define strnlen system_strnlen +# include +# undef strnlen +#else +# include +#endif #ifndef HAVE_DECL_MEMCHR "this configure-time declaration test was not run" @@ -44,7 +55,7 @@ size_t __strnlen (const char *string, size_t maxlen) { const char *end = memchr (string, '\0', maxlen); - return end ? end - string : maxlen; + return end ? (size_t) (end - string) : maxlen; } #ifdef weak_alias weak_alias (__strnlen, strnlen)