Lift the basename/libgen.h shenanigans back out of portability.c and make it a static inline in portability.h, and prototype dirname() while we're at it.
This commit is contained in:
parent
e910826c81
commit
468f155ece
@ -6,14 +6,6 @@
|
||||
|
||||
#include "toys.h"
|
||||
|
||||
#if defined(__GLIBC__)
|
||||
#include <libgen.h>
|
||||
char *basename(char *path)
|
||||
{
|
||||
return __xpg_basename(path);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined(__uClinux__)
|
||||
pid_t xfork(void)
|
||||
{
|
||||
|
@ -66,8 +66,12 @@ char *strptime(const char *buf, const char *format, struct tm *tm);
|
||||
// the table entry for the basename command. They didn't make a new function
|
||||
// with a different name for their new behavior because gnu.
|
||||
//
|
||||
// Implement our own in portability.c and don't use their broken header.
|
||||
char *basename(char *path);
|
||||
// Solution: don't use their broken header, provide an inline to redirect the
|
||||
// correct name to the broken name.
|
||||
|
||||
char *dirname(char *path);
|
||||
char *__xpg_basename (char *path);
|
||||
static inline char *basename(char *path) { return __xpg_basename(path); }
|
||||
|
||||
// uClibc pretends to be glibc and copied a lot of its bugs, but has a few more
|
||||
#if defined(__UCLIBC__)
|
||||
@ -137,9 +141,9 @@ int utimensat(int fd, const char *path, const struct timespec times[2], int flag
|
||||
#ifndef MNT_DETACH
|
||||
#define MNT_DETACH 2
|
||||
#endif
|
||||
#endif
|
||||
#endif // Old glibc
|
||||
|
||||
#endif
|
||||
#endif // glibc in general
|
||||
|
||||
#ifndef __GLIBC__
|
||||
// POSIX basename.
|
||||
|
@ -16,7 +16,6 @@ config DIRNAME
|
||||
*/
|
||||
|
||||
#include "toys.h"
|
||||
#include <libgen.h>
|
||||
|
||||
void dirname_main(void)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user