Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/coreutils/src/gnulib/lib/freadseek.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||
2 | - | |||||||||||||
3 | - | |||||||||||||
4 | - | |||||||||||||
5 | - | |||||||||||||
6 | - | |||||||||||||
7 | - | |||||||||||||
8 | - | |||||||||||||
9 | - | |||||||||||||
10 | - | |||||||||||||
11 | static void | - | ||||||||||||
12 | freadptrinc (FILE *fp, size_t increment) | - | ||||||||||||
13 | { | - | ||||||||||||
14 | - | |||||||||||||
15 | - | |||||||||||||
16 | - | |||||||||||||
17 | - | |||||||||||||
18 | fp->_IO_read_ptr += increment; | - | ||||||||||||
19 | } executed 110 times by 1 test: end of block Executed by:
| 110 | ||||||||||||
20 | - | |||||||||||||
21 | int | - | ||||||||||||
22 | freadseek (FILE *fp, size_t offset) | - | ||||||||||||
23 | { | - | ||||||||||||
24 | size_t total_buffered; | - | ||||||||||||
25 | int fd; | - | ||||||||||||
26 | - | |||||||||||||
27 | if (offset == 0
| 0-110 | ||||||||||||
28 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||
29 | - | |||||||||||||
30 | - | |||||||||||||
31 | - | |||||||||||||
32 | total_buffered = freadahead (fp); | - | ||||||||||||
33 | - | |||||||||||||
34 | - | |||||||||||||
35 | while (total_buffered > 0
| 0-110 | ||||||||||||
36 | { | - | ||||||||||||
37 | size_t buffered; | - | ||||||||||||
38 | - | |||||||||||||
39 | if (freadptr (fp, &buffered) !=
| 0-110 | ||||||||||||
40 | ((void *)0)
| 0-110 | ||||||||||||
41 | && buffered > 0
| 0-110 | ||||||||||||
42 | { | - | ||||||||||||
43 | size_t increment = (buffered < offset
| 0-110 | ||||||||||||
44 | - | |||||||||||||
45 | freadptrinc (fp, increment); | - | ||||||||||||
46 | offset -= increment; | - | ||||||||||||
47 | if (offset == 0
| 0-110 | ||||||||||||
48 | return executed 110 times by 1 test: 0;return 0; Executed by:
executed 110 times by 1 test: return 0; Executed by:
| 110 | ||||||||||||
49 | total_buffered -= increment; | - | ||||||||||||
50 | if (total_buffered == 0
| 0 | ||||||||||||
51 | break; never executed: break; | 0 | ||||||||||||
52 | } never executed: end of block | 0 | ||||||||||||
53 | - | |||||||||||||
54 | - | |||||||||||||
55 | if (fgetc (fp) ==
| 0 | ||||||||||||
56 | (-1)
| 0 | ||||||||||||
57 | ) | - | ||||||||||||
58 | goto never executed: eof;goto eof; never executed: goto eof; | 0 | ||||||||||||
59 | offset--; | - | ||||||||||||
60 | if (offset == 0
| 0 | ||||||||||||
61 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||
62 | total_buffered--; | - | ||||||||||||
63 | } never executed: end of block | 0 | ||||||||||||
64 | - | |||||||||||||
65 | - | |||||||||||||
66 | fd = fileno (fp); | - | ||||||||||||
67 | if (fd >= 0
| 0 | ||||||||||||
68 | 1
| 0 | ||||||||||||
69 | ) >= 0
| 0 | ||||||||||||
70 | { | - | ||||||||||||
71 | - | |||||||||||||
72 | return never executed: return rpl_fseeko (fp, offset, 1 ); never executed: return rpl_fseeko (fp, offset, 1 ); | 0 | ||||||||||||
73 | rpl_fseeko never executed: return rpl_fseeko (fp, offset, 1 ); | 0 | ||||||||||||
74 | (fp, offset, never executed: return rpl_fseeko (fp, offset, 1 ); | 0 | ||||||||||||
75 | 1 never executed: return rpl_fseeko (fp, offset, 1 ); | 0 | ||||||||||||
76 | ); never executed: return rpl_fseeko (fp, offset, 1 ); | 0 | ||||||||||||
77 | } | - | ||||||||||||
78 | else | - | ||||||||||||
79 | { | - | ||||||||||||
80 | - | |||||||||||||
81 | - | |||||||||||||
82 | char buf[4096]; | - | ||||||||||||
83 | - | |||||||||||||
84 | do | - | ||||||||||||
85 | { | - | ||||||||||||
86 | size_t count = (sizeof (buf) < offset
| 0 | ||||||||||||
87 | if (fread (buf, 1, count, fp) < count
| 0 | ||||||||||||
88 | goto never executed: eof;goto eof; never executed: goto eof; | 0 | ||||||||||||
89 | offset -= count; | - | ||||||||||||
90 | } never executed: end of block | 0 | ||||||||||||
91 | while (offset > 0
| 0 | ||||||||||||
92 | - | |||||||||||||
93 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||
94 | } | - | ||||||||||||
95 | - | |||||||||||||
96 | eof: | - | ||||||||||||
97 | - | |||||||||||||
98 | if (ferror (fp)
| 0 | ||||||||||||
99 | return never executed: return (-1) ; never executed: return (-1) ; | 0 | ||||||||||||
100 | (-1) never executed: return (-1) ; | 0 | ||||||||||||
101 | ; never executed: return (-1) ; | 0 | ||||||||||||
102 | else | - | ||||||||||||
103 | - | |||||||||||||
104 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||
105 | } | - | ||||||||||||
Switch to Source code | Preprocessed file |