diff options
Diffstat (limited to 'libguile/filesys.c')
-rw-r--r-- | libguile/filesys.c | 44 |
1 files changed, 23 insertions, 21 deletions
diff --git a/libguile/filesys.c b/libguile/filesys.c index 8ac6bd246..72b45e92a 100644 --- a/libguile/filesys.c +++ b/libguile/filesys.c @@ -29,24 +29,22 @@ # include <config.h> #endif -/* AIX requires this to be the first thing in the file. The #pragma - directive is indented so pre-ANSI compilers will ignore it, rather - than choke on it. */ -#ifndef __GNUC__ -# if HAVE_ALLOCA_H -# include <alloca.h> -# else -# ifdef _AIX -# pragma alloca -# else -# ifndef alloca /* predefined by HP cc +Olibcalls */ -char *alloca (); -# endif -# endif +/* This blob per the Autoconf manual (under "Particular Functions"). */ +#if HAVE_ALLOCA_H +# include <alloca.h> +#elif defined __GNUC__ +# define alloca __builtin_alloca +#elif defined _AIX +# define alloca __alloca +#elif defined _MSC_VER +# include <malloc.h> +# define alloca _alloca +#else +# include <stddef.h> +# ifdef __cplusplus +extern "C" # endif -#endif -#if HAVE_MALLOC_H -#include <malloc.h> /* alloca on mingw, though its not used on that system */ +void *alloca (size_t); #endif #include <stdio.h> @@ -202,10 +200,14 @@ char *alloca (); # define fchmod(fd, mode) (-1) #endif /* __MINGW32__ */ -/* This definition is for Solaris 10, it's probably not right elsewhere, but - that's ok, it shouldn't be used elsewhere. */ -#if ! HAVE_DIRFD -#define dirfd(dirstream) (dirstream->dd_fd) +/* dirfd() returns the file descriptor underlying a "DIR*" directory stream. + Found on MacOS X for instance. The following definition is for Solaris + 10, it's probably not right elsewhere, but that's ok, it shouldn't be + used elsewhere. Crib note: If we need more then gnulib has a dirfd.m4 + figuring out how to get the fd (dirfd function, dirfd macro, dd_fd field, + or d_fd field). */ +#ifndef dirfd +#define dirfd(dirstream) ((dirstream)->dd_fd) #endif |