Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Dec 2008 20:42:05 +0100
From:      Max Laier <max@love2party.net>
To:        freebsd-arch@freebsd.org
Cc:        Florian Smeets <flo@kasimir.com>, d@delphij.net
Subject:   Re: Adding strndup(3) to libc viable/useful?
Message-ID:  <200812042042.06181.max@love2party.net>
In-Reply-To: <e7db6d980812041127t6109ebbcr8a68822bdd91cc92@mail.gmail.com>
References:  <49381DD4.2000506@kasimir.com> <49382502.1040403@delphij.net> <e7db6d980812041127t6109ebbcr8a68822bdd91cc92@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 04 December 2008 20:27:01 Peter Wemm wrote:
> On Thu, Dec 4, 2008 at 10:44 AM, Xin LI <delphij@delphij.net> wrote:
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> >
> > Hi, Florian,
> >
> > Florian Smeets wrote:
> >> Hi,
> >>
> >> first of all i hope arch is the correct place to discuss this.
> >>
> >> While porting an application to FreeBSD i found that FreeBSDs libc does
> >> not have strndup. NetBSD added this about 2 years ago. A port of this to
> >> FreeBSD was very easy.
> >>
> >> There are 13 ports in the ports tree right now that patch in strndup via
> >> a patch in the files/ dir, well actually 12 bring there own version of
> >> strndup and one replaces it with a call to malloc/strncpy.
> >>
> >> Would it make sense to add this to our libc? A patch which does this is
> >> available here at http://webmail.solomo.de/~flo/strndup.patch
> >>
> >> I don't know if there is such a thing as minimum number of ports to
> >> require a function so that it can be added to the base system...
> >>
> >> Any feedback appreciated.
> >
> > I think whether or not to add it really depends on how popular it is :)
> >  We included strdup() because it is a very common extension.
> >
> > Your patch looks fine but perhaps it would be a good idea to explicitly
> > mention that this is not a commonly implemented GNU extension
> > (inheritedly, this could reduce portability).
>
> glibc has had this for a long time and the trend for this function
> seems to be gaining ground.  I think solaris is the last remaining
> major holdout.
>
> str*() namespace belongs to the implementation (us).
>
> There are lots of places where I've seen strndup() implemented as
> compatability shims.  Everything from Asterisk to Varnish.  I wouldn't
> be suprised if there were ports that had this knowledge hard coded.
>
> FWIW, there are a bunch of other useful utility str*() and mem*()
> functions that glibc has that we do not.

strnvis! (from OpenBSD)

> I've run into the lack of fmemopen() in the past.  I found an
> implementation from rwatson.

-- 
/"\  Best regards,                      | mlaier@freebsd.org
\ /  Max Laier                          | ICQ #67774661
 X   http://pf4freebsd.love2party.net/  | mlaier@EFnet
/ \  ASCII Ribbon Campaign              | Against HTML Mail and News



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200812042042.06181.max>