diff options
| author | Tim J. Robbins <tjr@FreeBSD.org> | 2002-10-23 10:52:04 +0000 | 
|---|---|---|
| committer | Tim J. Robbins <tjr@FreeBSD.org> | 2002-10-23 10:52:04 +0000 | 
| commit | 1eb0f442c7ea9007709da6e632185e8a2be9ebc6 (patch) | |
| tree | 8c3b9bfca79a5f469d8b498a689ee36b22af39bc /lib/libc | |
| parent | ec23fdffc7fcd725bf28323c4c8ce47a20721dea (diff) | |
Notes
Diffstat (limited to 'lib/libc')
| -rw-r--r-- | lib/libc/string/wcsrchr.c | 34 | 
1 files changed, 12 insertions, 22 deletions
| diff --git a/lib/libc/string/wcsrchr.c b/lib/libc/string/wcsrchr.c index 9294b8d611eb..37c81ec8cdb7 100644 --- a/lib/libc/string/wcsrchr.c +++ b/lib/libc/string/wcsrchr.c @@ -1,5 +1,5 @@  /*- - * Copyright (c)1999 Citrus Project, + * Copyright (c) 2002 Tim J. Robbins   * All rights reserved.   *   * Redistribution and use in source and binary forms, with or without @@ -22,36 +22,26 @@   * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF   * SUCH DAMAGE. - * - *	citrus Id: wcsrchr.c,v 1.2 2000/12/21 05:07:25 itojun Exp   */  #include <sys/cdefs.h> -#if 0 -#if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: wcsrchr.c,v 1.1 2000/12/23 23:14:37 itojun Exp $"); -#endif /* LIBC_SCCS and not lint */ -#endif  __FBSDID("$FreeBSD$");  #include <wchar.h>  wchar_t * -wcsrchr(s, c) -	const wchar_t *s; -	wchar_t c; +wcsrchr(const wchar_t *s, wchar_t c)  { -	const wchar_t *p; +	const wchar_t *last; -	p = s; -	while (*p) -		p++; -	while (s <= p) { -		if (*p == c) { -			/* LINTED interface specification */ -			return (wchar_t *)p; -		} -		p--; +	last = NULL; +	for (;;) { +		if (*s == c) +			last = s; +		if (*s == L'\0') +			break; +		s++;  	} -	return NULL; + +	return ((wchar_t *)last);  } | 
