X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fmsvc-inval.c;h=1873e23be4c9d46d95a8b7bea7ea5a07db430829;hb=533101a268dc5015a140ff4695d8eeb04fbe57b6;hp=ba3c799fd9833ba35f25eeb94ccba87b894f3d04;hpb=37398f7c95b0435a583adc6ee2d35ccdf06411e4;p=gnulib.git
diff --git a/lib/msvc-inval.c b/lib/msvc-inval.c
index ba3c799fd..1873e23be 100644
--- a/lib/msvc-inval.c
+++ b/lib/msvc-inval.c
@@ -1,5 +1,5 @@
/* Invalid parameter handler for MSVC runtime libraries.
- Copyright (C) 2011 Free Software Foundation, Inc.
+ Copyright (C) 2011-2013 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,34 +12,51 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation,
- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+ with this program; if not, see . */
#include
/* Specification. */
#include "msvc-inval.h"
-#if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER \
+ && !(MSVC_INVALID_PARAMETER_HANDLING == SANE_LIBRARY_HANDLING)
-/* Get declarations of the Win32 API functions. */
-# define WIN32_LEAN_AND_MEAN
-# include
+/* Get _invalid_parameter_handler type and _set_invalid_parameter_handler
+ declaration. */
+# include
-# if defined _MSC_VER
+# if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING
-static void cdecl
+static void __cdecl
gl_msvc_invalid_parameter_handler (const wchar_t *expression,
const wchar_t *function,
const wchar_t *file,
unsigned int line,
uintptr_t dummy)
{
- RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL);
}
# else
+/* Get declarations of the native Windows API functions. */
+# define WIN32_LEAN_AND_MEAN
+# include
+
+# if defined _MSC_VER
+
+static void __cdecl
+gl_msvc_invalid_parameter_handler (const wchar_t *expression,
+ const wchar_t *function,
+ const wchar_t *file,
+ unsigned int line,
+ uintptr_t dummy)
+{
+ RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL);
+}
+
+# else
+
/* An index to thread-local storage. */
static DWORD tls_index;
static int tls_initialized /* = 0 */;
@@ -77,7 +94,7 @@ gl_msvc_inval_current (void)
}
}
-static void cdecl
+static void __cdecl
gl_msvc_invalid_parameter_handler (const wchar_t *expression,
const wchar_t *function,
const wchar_t *file,
@@ -93,6 +110,8 @@ gl_msvc_invalid_parameter_handler (const wchar_t *expression,
RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL);
}
+# endif
+
# endif
static int gl_msvc_inval_initialized /* = 0 */;