From 4954d47ab01624855fdf4bcf0a86fb86f6381638 Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Wed, 18 Jun 2008 08:32:25 +0000 Subject: - fixes from Tito --- libbb/strrstr.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'libbb/strrstr.c') diff --git a/libbb/strrstr.c b/libbb/strrstr.c index 5a2685920..126fed75c 100644 --- a/libbb/strrstr.c +++ b/libbb/strrstr.c @@ -13,19 +13,16 @@ * The strrstr() function finds the last occurrence of the substring needle * in the string haystack. The terminating nul characters are not compared. */ -char* strrstr(const char *haystack, const char *needle) +char *strrstr(const char *haystack, const char *needle) { char *r = NULL; - - if (!needle[0]) - return r; - while (1) { - char *p = strstr(haystack, needle); - if (!p) - return r; + + do { + char *p = strstr(haystack, needle); + if (p) r = p; - haystack = p + 1; - } + } while (*haystack++); + return r; } #ifdef __DO_STRRSTR_TEST -- cgit v1.2.3