diff options
Diffstat (limited to 'lib/libc/gen/basename.c')
-rw-r--r-- | lib/libc/gen/basename.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/lib/libc/gen/basename.c b/lib/libc/gen/basename.c index 9552ab3..9588c28 100644 --- a/lib/libc/gen/basename.c +++ b/lib/libc/gen/basename.c @@ -40,18 +40,12 @@ __FBSDID("$FreeBSD$"); #include <sys/param.h> char * -basename(path) +basename_r(path, bname) const char *path; + char *bname; { - static char *bname = NULL; const char *endp, *startp; - if (bname == NULL) { - bname = (char *)malloc(MAXPATHLEN); - if (bname == NULL) - return(NULL); - } - /* Empty or NULL string gets treated as "." */ if (path == NULL || *path == '\0') { (void)strcpy(bname, "."); @@ -82,3 +76,17 @@ basename(path) bname[endp - startp + 1] = '\0'; return(bname); } + +char * +basename(path) + const char *path; +{ + static char *bname = NULL; + + if (bname == NULL) { + bname = (char *)malloc(MAXPATHLEN); + if (bname == NULL) + return (NULL); + } + return (basename_r(path, bname)); +} |