On Sun, 22 Nov 2009 11:07:36 +0800, Jjgod Jiang <gzjjgod at gmail.com> wrote: > Add missing GNU extensions strdup() and getline(). The C library > shipped with Mac OS X does not include them (though it does support > some GNU extensions when _GNU_SOURCE is defined), so we have to > add these two. The getline() implementation is a modified version > of getdelim() from GNU Libc. Awesome!
> diff --git a/lib/xutil.c b/lib/xutil.c > index 6fa5eb0..805b236 100644 > --- a/lib/xutil.c > +++ b/lib/xutil.c > @@ -79,6 +79,105 @@ xstrdup (const char *s) > return ret; > } > > +#ifdef __APPLE__ Not awesome. This should be done in a capabilites way, for example strndup was added to FreeBSD in 7.2 (which is this current release of the 7 line), and so for older versions of FreeBSD strndup will be needed. getdelim() and getline() came in FreeBSD 8, so they'll be needed for the entire 7 line. So Instead of just assuming __APPLE__ this should be done by determing if the symbols are generally needed. alex