diff options
author | Bruno Haible <bruno@clisp.org> | 2011-09-24 01:48:27 +0200 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2011-09-24 01:48:27 +0200 |
commit | 4040b3bddb086e8230b0d9356297e971729a9c44 (patch) | |
tree | 05e1c87740f00e3cb2c5f43dad3338e7f11defe2 | |
parent | 175142a8e0d3446ddb0c9709d00c5f377b4bf475 (diff) | |
download | gnulib-4040b3bddb086e8230b0d9356297e971729a9c44.tar.gz |
getdtablesize: Support for MSVC 9.
* lib/getdtablesize.c: Include msvc-inval.h.
(_setmaxstdio_nothrow): New function.
(_setmaxstdio): Redefine it.
* m4/getdtablesize.m4 (gl_PREREQ_GETDTABLESIZE): New macro.
* modules/getdtablesize (Depends-on): Add msvc-inval.
(configure.ac): Invoke gl_PREREQ_GETDTABLESIZE.
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | lib/getdtablesize.c | 23 | ||||
-rw-r--r-- | m4/getdtablesize.m4 | 7 | ||||
-rw-r--r-- | modules/getdtablesize | 2 |
4 files changed, 41 insertions, 1 deletions
@@ -1,5 +1,15 @@ 2011-09-23 Bruno Haible <bruno@clisp.org> + getdtablesize: Support for MSVC 9. + * lib/getdtablesize.c: Include msvc-inval.h. + (_setmaxstdio_nothrow): New function. + (_setmaxstdio): Redefine it. + * m4/getdtablesize.m4 (gl_PREREQ_GETDTABLESIZE): New macro. + * modules/getdtablesize (Depends-on): Add msvc-inval. + (configure.ac): Invoke gl_PREREQ_GETDTABLESIZE. + +2011-09-23 Bruno Haible <bruno@clisp.org> + signal-h: Rename from signal. * modules/signal-h: Renamed from modules/signal. * modules/pthread_sigmask (Depends-on): Update. diff --git a/lib/getdtablesize.c b/lib/getdtablesize.c index 60e7f5af1d..a07c4a2ea5 100644 --- a/lib/getdtablesize.c +++ b/lib/getdtablesize.c @@ -24,6 +24,29 @@ #include <stdio.h> +#include "msvc-inval.h" + +#if HAVE_MSVC_INVALID_PARAMETER_HANDLER +static inline int +_setmaxstdio_nothrow (int newmax) +{ + int result; + + TRY_MSVC_INVAL + { + result = _setmaxstdio (newmax); + } + CATCH_MSVC_INVAL + { + result = -1; + } + DONE_MSVC_INVAL; + + return result; +} +# define _setmaxstdio _setmaxstdio_nothrow +#endif + /* Cache for the previous getdtablesize () result. */ static int dtablesize; diff --git a/m4/getdtablesize.m4 b/m4/getdtablesize.m4 index 40a598bc13..5f0fbf266e 100644 --- a/m4/getdtablesize.m4 +++ b/m4/getdtablesize.m4 @@ -1,4 +1,4 @@ -# getdtablesize.m4 serial 2 +# getdtablesize.m4 serial 3 dnl Copyright (C) 2008-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -12,3 +12,8 @@ AC_DEFUN([gl_FUNC_GETDTABLESIZE], HAVE_GETDTABLESIZE=0 fi ]) + +# Prerequisites of lib/getdtablesize.c. +AC_DEFUN([gl_PREREQ_GETDTABLESIZE], [ + AC_REQUIRE([AC_C_INLINE]) +]) diff --git a/modules/getdtablesize b/modules/getdtablesize index 3b195c0c85..109be1fda1 100644 --- a/modules/getdtablesize +++ b/modules/getdtablesize @@ -7,11 +7,13 @@ m4/getdtablesize.m4 Depends-on: unistd +msvc-inval [test $HAVE_GETDTABLESIZE = 0] configure.ac: gl_FUNC_GETDTABLESIZE if test $HAVE_GETDTABLESIZE = 0; then AC_LIBOBJ([getdtablesize]) + gl_PREREQ_GETDTABLESIZE fi gl_UNISTD_MODULE_INDICATOR([getdtablesize]) |