mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-08-09 10:11:34 +02:00
(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.
This commit is contained in:
+10
-13
@@ -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;
|
||||
const char *base = name;
|
||||
|
||||
base = strrchr (name, '/');
|
||||
return base ? base + 1 : (char *) name;
|
||||
while (*name)
|
||||
{
|
||||
if (*name == '/')
|
||||
base = name + 1;
|
||||
++name;
|
||||
}
|
||||
return (char *) base;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user