LCOV - GNU Libidn - gltests/binary-io.h

LCOV - code coverage report
Current view: top level - gltests - binary-io.h (source / functions) Hit Total Coverage
Test: GNU Libidn Lines: 4 4 100.0 %
Date: 2020年07月22日 17:53:13 Functions: 2 2 100.0 %
Legend: Lines: hit not hit

 Line data Source code
 1  : /* Binary mode I/O.
 2  : Copyright (C) 2001, 2003, 2005, 2008-2020 Free Software Foundation, Inc.
 3  : 
 4  : This program is free software: you can redistribute it and/or modify
 5  : it under the terms of the GNU General Public License as published by
 6  : the Free Software Foundation; either version 3 of the License, or
 7  : (at your option) any later version.
 8  : 
 9  : This program is distributed in the hope that it will be useful,
 10  : but WITHOUT ANY WARRANTY; without even the implied warranty of
 11  : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 12  : GNU General Public License for more details.
 13  : 
 14  : You should have received a copy of the GNU General Public License
 15  : along with this program. If not, see <https://www.gnu.org/licenses/>. */
 16  : 
 17  : #ifndef _BINARY_H
 18  : #define _BINARY_H
 19  : 
 20  : /* For systems that distinguish between text and binary I/O.
 21  : O_BINARY is guaranteed by the gnulib <fcntl.h>. */
 22  : #include <fcntl.h>
 23  : 
 24  : /* The MSVC7 <stdio.h> doesn't like to be included after '#define fileno ...',
 25  : so we include it here first. */
 26  : #include <stdio.h>
 27  : 
 28  : #ifndef _GL_INLINE_HEADER_BEGIN
 29  : #error "Please include config.h first."
 30  : #endif
 31  : _GL_INLINE_HEADER_BEGIN
 32  : #ifndef BINARY_IO_INLINE
 33  : # define BINARY_IO_INLINE _GL_INLINE
 34  : #endif
 35  : 
 36  : #if O_BINARY
 37  : # if defined __EMX__ || defined __DJGPP__ || defined __CYGWIN__
 38  : # include <io.h> /* declares setmode() */
 39  : # define __gl_setmode setmode
 40  : # else
 41  : # define __gl_setmode _setmode
 42  : # undef fileno
 43  : # define fileno _fileno
 44  : # endif
 45  : #else
 46  : /* On reasonable systems, binary I/O is the only choice. */
 47  : /* Use a function rather than a macro, to avoid gcc warnings
 48  : "warning: statement with no effect". */
 49  : BINARY_IO_INLINE int
 50  1 : __gl_setmode (int fd _GL_UNUSED, int mode _GL_UNUSED)
 51  : {
 52  1 : return O_BINARY;
 53  : }
 54  : #endif
 55  : 
 56  : /* Set FD's mode to MODE, which should be either O_TEXT or O_BINARY.
 57  : Return the old mode if successful, -1 (setting errno) on failure.
 58  : Ordinarily this function would be called 'setmode', since that is
 59  : its name on MS-Windows, but it is called 'set_binary_mode' here
 60  : to avoid colliding with a BSD function of another name. */
 61  : 
 62  : #if defined __DJGPP__ || defined __EMX__
 63  : extern int set_binary_mode (int fd, int mode);
 64  : #else
 65  : BINARY_IO_INLINE int
 66  1 : set_binary_mode (int fd, int mode)
 67  : {
 68  1 : return __gl_setmode (fd, mode);
 69  : }
 70  : #endif
 71  : 
 72  : /* This macro is obsolescent. */
 73  : #define SET_BINARY(fd) ((void) set_binary_mode (fd, O_BINARY))
 74  : 
 75  : _GL_INLINE_HEADER_END
 76  : 
 77  : #endif /* _BINARY_H */

Generated by: LCOV version 1.13

AltStyle によって変換されたページ (->オリジナル) /