diff --git a/ChangeLog b/ChangeLog index 76ebf663ad..f9a95f079b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-12-10 Matthias Clasen + + * configure.in: Check for crt_extern.h and _NSGetEnviron. + * gdk/x11/gdkspawn-x11.c: Fix compilation on Darwin where + environ is not available. (#384168, Min Sik Kim) + 2006-12-07 Paolo Maggi Fixes bug #383407 diff --git a/configure.in b/configure.in index 5a55b06f26..b005dfa49d 100644 --- a/configure.in +++ b/configure.in @@ -728,6 +728,10 @@ else pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config" pixbuf_deplibs_check=`$pixbuf_libtool_config | \ grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \ +# Checks for gdkspawn +AC_CHECK_HEADERS(crt_externs.h) +AC_CHECK_FUNCS(_NSGetEnviron) + sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'` if test "x$pixbuf_deplibs_check" = "xnone" || \ test "x$pixbuf_deplibs_check" = "xunknown" || \ diff --git a/gdk/x11/gdkspawn-x11.c b/gdk/x11/gdkspawn-x11.c index ced2b93e8b..f290213490 100644 --- a/gdk/x11/gdkspawn-x11.c +++ b/gdk/x11/gdkspawn-x11.c @@ -22,13 +22,25 @@ #include #include +#ifdef HAVE_CRT_EXTERNS_H +#include /* for _NSGetEnviron */ +#endif + #include "gdkspawn.h" #include #include #include "gdkalias.h" + +#ifdef HAVE__NSGETENVIRON +#define environ (*_NSGetEnviron()) +#else +/* According to the Single Unix Specification, environ is not in + * any system header, although unistd.h often declares it. + */ extern char **environ; +#endif /** * gdk_make_spawn_environment_for_screen: