On Monday 29 August 2011 02:25:05 Matthias Andree wrote:
> 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?

Hi,
because we already have alternative  basename implementations
in libbb get_last_path_component.c that could be used/fixed/extended
to remove the few basename occurences (if there are any)
and with an alternative dirname implementation we don't need to
care about libgen.h or __GNU_SOURCE at all.

Ciao,
Tito 

> 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.
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to