Redefining basename_r to mean something random seems popular (bionic and freebsd
both did it) so use getbasename instead.
This commit is contained in:
parent
9b93dd397b
commit
1c028ca33d
@ -919,11 +919,14 @@ void mode_to_string(mode_t mode, char *buf)
|
||||
*buf = c;
|
||||
}
|
||||
|
||||
char *basename_r(char *name)
|
||||
// basename() can modify its argument or return a pointer to a constant string
|
||||
// This just gives after the last '/' or the whole stirng if no /
|
||||
char *getbasename(char *name)
|
||||
{
|
||||
char *s = strrchr(name, '/');
|
||||
|
||||
if (s) return s+1;
|
||||
|
||||
return name;
|
||||
}
|
||||
|
||||
|
@ -286,7 +286,7 @@ char *num_to_sig(int sig);
|
||||
|
||||
mode_t string_to_mode(char *mode_str, mode_t base);
|
||||
void mode_to_string(mode_t mode, char *buf);
|
||||
char *basename_r(char *name);
|
||||
char *getbasename(char *name);
|
||||
void names_to_pid(char **names, int (*callback)(pid_t pid, char *name));
|
||||
|
||||
pid_t xvforkwrap(pid_t pid);
|
||||
|
@ -157,19 +157,11 @@ int utimensat(int fd, const char *path, const struct timespec times[2], int flag
|
||||
|
||||
#endif // glibc in general
|
||||
|
||||
#if !defined(__GLIBC__) && !defined(__BIONIC__)
|
||||
#if !defined(__GLIBC__)
|
||||
// POSIX basename.
|
||||
#include <libgen.h>
|
||||
#endif
|
||||
|
||||
// glibc was handled above; for 32-bit bionic we need to avoid a collision
|
||||
// with toybox's basename_r so we can't include <libgen.h> even though that
|
||||
// would give us a POSIX basename(3).
|
||||
#if defined(__BIONIC__)
|
||||
char *basename(char *path);
|
||||
char *dirname(char *path);
|
||||
#endif
|
||||
|
||||
// Work out how to do endianness
|
||||
|
||||
#ifndef __APPLE__
|
||||
|
@ -70,7 +70,7 @@ static char *path2mod(char *file, char *mod)
|
||||
if (!file) return NULL;
|
||||
if (!mod) mod = xmalloc(MODNAME_LEN);
|
||||
|
||||
from = basename_r(file);
|
||||
from = getbasename(file);
|
||||
|
||||
for (i = 0; i < (MODNAME_LEN-1) && from[i] && from[i] != '.'; i++)
|
||||
mod[i] = (from[i] == '-') ? '_' : from[i];
|
||||
|
@ -440,7 +440,7 @@ static void scan_pid(int pid)
|
||||
|
||||
if ((p = strchr(line, ' '))) *p = 0; // "/bin/netstat -ntp" -> "/bin/netstat"
|
||||
snprintf(TT.current_name, sizeof(TT.current_name), "%d/%s",
|
||||
pid, basename_r(line)); // "584/netstat"
|
||||
pid, getbasename(line)); // "584/netstat"
|
||||
free(line);
|
||||
|
||||
fd_dir = xmprintf("/proc/%d/fd", pid);
|
||||
|
Loading…
Reference in New Issue
Block a user