File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libiconv / srclib / msvc-nothrow.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Mar 17 13:38:46 2021 UTC (3 years, 3 months ago) by misho
Branches: libiconv, MAIN
CVS tags: v1_16p0, HEAD
libiconv 1.16

    1: /* Wrappers that don't throw invalid parameter notifications
    2:    with MSVC runtime libraries.
    3:    Copyright (C) 2011-2019 Free Software Foundation, Inc.
    4: 
    5:    This program is free software; you can redistribute it and/or modify
    6:    it under the terms of the GNU General Public License as published by
    7:    the Free Software Foundation; either version 3, or (at your option)
    8:    any later version.
    9: 
   10:    This program is distributed in the hope that it will be useful,
   11:    but WITHOUT ANY WARRANTY; without even the implied warranty of
   12:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   13:    GNU General Public License for more details.
   14: 
   15:    You should have received a copy of the GNU General Public License along
   16:    with this program; if not, see <https://www.gnu.org/licenses/>.  */
   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: 
   27: #if HAVE_MSVC_INVALID_PARAMETER_HANDLER
   28: # include "msvc-inval.h"
   29: #endif
   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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>