]>
Commit | Line | Data |
---|---|---|
6ec2e0f5 SDJ |
1 | /* Wrappers that don't throw invalid parameter notifications |
2 | with MSVC runtime libraries. | |
dc6c21da | 3 | Copyright (C) 2011-2022 Free Software Foundation, Inc. |
6ec2e0f5 | 4 | |
dc6c21da TT |
5 | This file is free software: you can redistribute it and/or modify |
6 | it under the terms of the GNU Lesser General Public License as | |
7 | published by the Free Software Foundation; either version 2.1 of the | |
8 | License, or (at your option) any later version. | |
6ec2e0f5 | 9 | |
dc6c21da | 10 | This file is distributed in the hope that it will be useful, |
6ec2e0f5 SDJ |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
dc6c21da | 13 | GNU Lesser General Public License for more details. |
6ec2e0f5 | 14 | |
dc6c21da TT |
15 | You should have received a copy of the GNU Lesser General Public License |
16 | along with this program. If not, see <https://www.gnu.org/licenses/>. */ | |
6ec2e0f5 SDJ |
17 | |
18 | #include <config.h> | |
19 | ||
20 | /* Specification. */ | |
21 | #include "msvc-nothrow.h" | |
22 | ||
23 | /* Get declarations of the native Windows API functions. */ | |
24 | #define WIN32_LEAN_AND_MEAN | |
25 | #include <windows.h> | |
26 | ||
c0c3707f CB |
27 | #if HAVE_MSVC_INVALID_PARAMETER_HANDLER |
28 | # include "msvc-inval.h" | |
29 | #endif | |
6ec2e0f5 SDJ |
30 | |
31 | #undef _get_osfhandle | |
32 | ||
33 | #if HAVE_MSVC_INVALID_PARAMETER_HANDLER | |
34 | intptr_t | |
35 | _gl_nothrow_get_osfhandle (int fd) | |
36 | { | |
37 | intptr_t result; | |
38 | ||
39 | TRY_MSVC_INVAL | |
40 | { | |
41 | result = _get_osfhandle (fd); | |
42 | } | |
43 | CATCH_MSVC_INVAL | |
44 | { | |
45 | result = (intptr_t) INVALID_HANDLE_VALUE; | |
46 | } | |
47 | DONE_MSVC_INVAL; | |
48 | ||
49 | return result; | |
50 | } | |
51 | #endif |