diff options
author | Jim Meyering <jim@meyering.net> | 1996-04-19 04:41:27 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 1996-04-19 04:41:27 +0000 |
commit | 3751b3e9e1d95b6e6b0d076420ae549fa472b22f (patch) | |
tree | 1b31789dbea3bf730a1ef5114efc3bafd53ca04f /lib/basename.c | |
parent | 9243fffedb8a99ce0630e4433b1bdd9f7b839f13 (diff) | |
download | gnulib-3751b3e9e1d95b6e6b0d076420ae549fa472b22f.tar.gz |
(basename): Rewrite so it doesn't rely on strrchr,FILEUTILS-3_12l
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.
Diffstat (limited to 'lib/basename.c')
-rw-r--r-- | lib/basename.c | 25 |
1 files 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 <config.h> #endif -#if defined(STDC_HEADERS) || defined(HAVE_STRING_H) -#include <string.h> -#else -#include <strings.h> -#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; } |