From dafd2cb4e216cffc35592761f0b71f350d4532d8 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Fri, 19 Apr 1996 04:41:27 +0000 Subject: [PATCH] (basename): Rewrite so it doesn't rely on strrchr, and hence doesn't need to include string.h -- on some alpha-based OSF systems, there's a conflicting prototype for basename in string.h. Reported by Kaveh Ghazi. --- lib/basename.c | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/lib/basename.c b/lib/basename.c index a47b200e5f..7e0c1f611c 100644 --- a/lib/basename.c +++ b/lib/basename.c @@ -19,23 +19,20 @@ #include #endif -#if defined(STDC_HEADERS) || defined(HAVE_STRING_H) -#include -#else -#include -#ifndef strrchr -#define strrchr rindex -#endif -#endif - -/* Return NAME with any leading path stripped off. */ +/* Return NAME with any leading path stripped off. + Don't use strrchr/rindex. */ char * basename (name) const char *name; { - char *base; - - base = strrchr (name, '/'); - return base ? base + 1 : (char *) name; + const char *base = name; + + while (*name) + { + if (*name == '/') + base = name + 1; + ++name; + } + return (char *) base; } -- 2.47.2