Assorted bug reports with a few fixes for busybox 1.19.0 - dirname
Matthias Andree
mandree at FreeBSD.org
Mon Aug 29 00:25:05 UTC 2011
Am 29.08.2011 02:01, schrieb Tito:
> Hi,
> attached a alternative version of dirname()
> so that we don't need libgen.h for it.
> Tested only with dirname applet and seems to work.
> Needs to be tested with other code where it is called.
> Hints, critics and improvements are welcome.
Why the effort?
FreeBSD's dirname() and basename() don't mess with their arguments but
allocate a static buffer on first use, so no need to reimplement if
there's a good implementation in libc.
What I'm saying is that on non-GNU systems you'll usually need libgen.h
anyways, and if and only if you can identify GNU libc in platform.h feel
free to skip libgen.h and use the _GNU_SOURCE/string.h version, but
beware that defining _GNU_SOURCE enables GNU compatibility hacks on
other systems, so only do that if you're on Linux AND using glibc.
_________
¹) one might wonder if the POSIX-compliant basename() implementation in
GLIBC is intentionally bad so as to trick people into using the
non-portable version and lock them in with glibc. Yet another reason
not to use GLIBC-specifics. It makes at least the code more complex
without any real-world gains.
More information about the busybox
mailing list