From 3632e2fabdbfe3a279e2464088af05fbe2956e1d Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Fri, 15 Jun 2001 20:02:37 +0000 Subject: Make strrchr not call other string functions. Hopefully speeding it a bit. --- libc/string/string.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'libc/string/string.c') diff --git a/libc/string/string.c b/libc/string/string.c index bb524eeac..27649b43b 100644 --- a/libc/string/string.c +++ b/libc/string/string.c @@ -197,21 +197,20 @@ weak_alias(strchr, index); /********************** Function strrchr ************************************/ #ifdef L_strrchr + char *strrchr(const char *str, int c) { register char *prev = 0; register char *ptr = (char *) str; - /* For null it's just like strlen */ - if (c == '\0') - return ptr + strlen(ptr); - - /* everything else just step along the string. */ - while ((ptr = strchr(ptr, c)) != 0) { - prev = ptr; + while (*ptr != '\0') { + if (*ptr == c) + prev = ptr; ptr++; } - return prev; + if (c == '\0') + return(ptr); + return(prev); } weak_alias(strrchr, rindex); -- cgit v1.2.3