X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fbasename.c;h=7e0c1f611c7527f7576d764e6c19338886c03fab;hb=9730c386c1eb4450d04fa75037dab61e41038919;hp=a47b200e5fc55c016414f708c77d5764693b3eef;hpb=efa6ff0544d9e86b1a03e99373bb0c649a5b4281;p=gnulib.git diff --git a/lib/basename.c b/lib/basename.c index a47b200e5..7e0c1f611 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; }