Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/coreutils/src/gnulib/lib/binary-io.h |
Source code | Switch to Preprocessed file |
Line | Source | Count |
---|---|---|
1 | /* Binary mode I/O. | - |
2 | Copyright (C) 2001, 2003, 2005, 2008-2018 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 | __gl_setmode (int fd _GL_UNUSED, int mode _GL_UNUSED) | - |
51 | { | - |
52 | return O_BINARY; executed 16507 times by 13 tests: return 0 ; Executed by:
| 16507 |
53 | } | - |
54 | #endif | - |
55 | - | |
56 | #if defined __DJGPP__ || defined __EMX__ | - |
57 | extern int __gl_setmode_check (int); | - |
58 | #else | - |
59 | BINARY_IO_INLINE int | - |
60 | __gl_setmode_check (int fd _GL_UNUSED) { return 0; } executed 16507 times by 13 tests: return 0; Executed by:
| 16507 |
61 | #endif | - |
62 | - | |
63 | /* Set FD's mode to MODE, which should be either O_TEXT or O_BINARY. | - |
64 | Return the old mode if successful, -1 (setting errno) on failure. | - |
65 | Ordinarily this function would be called 'setmode', since that is | - |
66 | its name on MS-Windows, but it is called 'set_binary_mode' here | - |
67 | to avoid colliding with a BSD function of another name. */ | - |
68 | - | |
69 | BINARY_IO_INLINE int | - |
70 | set_binary_mode (int fd, int mode) | - |
71 | { | - |
72 | int r = __gl_setmode_check (fd); | - |
73 | return r != 0 ? r : __gl_setmode (fd, mode); executed 16507 times by 13 tests: return r != 0 ? r : __gl_setmode (fd, mode); Executed by:
| 16507 |
74 | } | - |
75 | - | |
76 | /* This macro is obsolescent. */ | - |
77 | #define SET_BINARY(fd) ((void) set_binary_mode (fd, O_BINARY)) | - |
78 | - | |
79 | _GL_INLINE_HEADER_END | - |
80 | - | |
81 | #endif /* _BINARY_H */ | - |
Source code | Switch to Preprocessed file |