| Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/coreutils/src/src/libstdbuf.c |
| Switch to Source code | Preprocessed file |
| Line | Source | Count | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | static const char * | - | ||||||||||||
| 2 | fileno_to_name (const int fd) | - | ||||||||||||
| 3 | { | - | ||||||||||||
| 4 | const char *ret = | - | ||||||||||||
| 5 | ((void *)0) | - | ||||||||||||
| 6 | ; | - | ||||||||||||
| 7 | - | |||||||||||||
| 8 | switch (fd) | - | ||||||||||||
| 9 | { | - | ||||||||||||
| 10 | case never executed: 0:case 0:never executed: case 0: | 0 | ||||||||||||
| 11 | ret = "stdin"; | - | ||||||||||||
| 12 | break; never executed: break; | 0 | ||||||||||||
| 13 | case never executed: 1:case 1:never executed: case 1: | 0 | ||||||||||||
| 14 | ret = "stdout"; | - | ||||||||||||
| 15 | break; never executed: break; | 0 | ||||||||||||
| 16 | case never executed: 2:case 2:never executed: case 2: | 0 | ||||||||||||
| 17 | ret = "stderr"; | - | ||||||||||||
| 18 | break; never executed: break; | 0 | ||||||||||||
| 19 | default never executed: :default:never executed: default: | 0 | ||||||||||||
| 20 | ret = "unknown"; | - | ||||||||||||
| 21 | break; never executed: break; | 0 | ||||||||||||
| 22 | } | - | ||||||||||||
| 23 | - | |||||||||||||
| 24 | return never executed: ret;return ret;never executed: return ret; | 0 | ||||||||||||
| 25 | } | - | ||||||||||||
| 26 | - | |||||||||||||
| 27 | static void | - | ||||||||||||
| 28 | apply_mode (FILE *stream, const char *mode) | - | ||||||||||||
| 29 | { | - | ||||||||||||
| 30 | char *buf = | - | ||||||||||||
| 31 | ((void *)0) | - | ||||||||||||
| 32 | ; | - | ||||||||||||
| 33 | int setvbuf_mode; | - | ||||||||||||
| 34 | size_t size = 0; | - | ||||||||||||
| 35 | - | |||||||||||||
| 36 | if (*
| 4 | ||||||||||||
| 37 | setvbuf_mode = executed 4 times by 1 test: setvbuf_mode = 2 ;Executed by:
| 4 | ||||||||||||
| 38 | 2 executed 4 times by 1 test: setvbuf_mode = 2 ;Executed by:
| 4 | ||||||||||||
| 39 | ; executed 4 times by 1 test: setvbuf_mode = 2 ;Executed by:
| 4 | ||||||||||||
| 40 | else if (*
| 2 | ||||||||||||
| 41 | setvbuf_mode = executed 2 times by 1 test: setvbuf_mode = 1 ;Executed by:
| 2 | ||||||||||||
| 42 | 1 executed 2 times by 1 test: setvbuf_mode = 1 ;Executed by:
| 2 | ||||||||||||
| 43 | ; executed 2 times by 1 test: setvbuf_mode = 1 ;Executed by:
| 2 | ||||||||||||
| 44 | else | - | ||||||||||||
| 45 | { | - | ||||||||||||
| 46 | setvbuf_mode = | - | ||||||||||||
| 47 | 0 | - | ||||||||||||
| 48 | ; | - | ||||||||||||
| 49 | _Static_assert ( | - | ||||||||||||
| 50 | (18446744073709551615UL) | - | ||||||||||||
| 51 | <= | - | ||||||||||||
| 52 | (0x7fffffffffffffffL * 2UL + 1UL) | - | ||||||||||||
| 53 | , "verify (" "SIZE_MAX <= ULONG_MAX" ")"); | - | ||||||||||||
| 54 | size = strtoul (mode, | - | ||||||||||||
| 55 | ((void *)0) | - | ||||||||||||
| 56 | , 10); | - | ||||||||||||
| 57 | if (size > 0
| 0-2 | ||||||||||||
| 58 | { | - | ||||||||||||
| 59 | if (!(buf = malloc (size))
| 0-2 | ||||||||||||
| 60 | { | - | ||||||||||||
| 61 | - | |||||||||||||
| 62 | - | |||||||||||||
| 63 | - | |||||||||||||
| 64 | fprintf ( | - | ||||||||||||
| 65 | stderr | - | ||||||||||||
| 66 | , | - | ||||||||||||
| 67 | - | |||||||||||||
| 68 | dcgettext (((void *)0), | - | ||||||||||||
| 69 | "failed to allocate a %" | - | ||||||||||||
| 70 | "l" "u" | - | ||||||||||||
| 71 | " byte stdio buffer\n" | - | ||||||||||||
| 72 | , 5) | - | ||||||||||||
| 73 | - | |||||||||||||
| 74 | , (uintmax_t) size); | - | ||||||||||||
| 75 | return; never executed: return; | 0 | ||||||||||||
| 76 | } | - | ||||||||||||
| 77 | } executed 2 times by 1 test: end of blockExecuted by:
| 2 | ||||||||||||
| 78 | else | - | ||||||||||||
| 79 | { | - | ||||||||||||
| 80 | fprintf ( | - | ||||||||||||
| 81 | stderr | - | ||||||||||||
| 82 | , | - | ||||||||||||
| 83 | dcgettext (((void *)0), | - | ||||||||||||
| 84 | "invalid buffering mode %s for %s\n" | - | ||||||||||||
| 85 | , 5) | - | ||||||||||||
| 86 | , | - | ||||||||||||
| 87 | mode, fileno_to_name (fileno (stream))); | - | ||||||||||||
| 88 | return; never executed: return; | 0 | ||||||||||||
| 89 | } | - | ||||||||||||
| 90 | } | - | ||||||||||||
| 91 | - | |||||||||||||
| 92 | if (setvbuf (stream, buf, setvbuf_mode, size) != 0
| 0-8 | ||||||||||||
| 93 | { | - | ||||||||||||
| 94 | fprintf ( | - | ||||||||||||
| 95 | stderr | - | ||||||||||||
| 96 | , | - | ||||||||||||
| 97 | dcgettext (((void *)0), | - | ||||||||||||
| 98 | "could not set buffering of %s to mode %s\n" | - | ||||||||||||
| 99 | , 5) | - | ||||||||||||
| 100 | , | - | ||||||||||||
| 101 | fileno_to_name (fileno (stream)), mode); | - | ||||||||||||
| 102 | free (buf); | - | ||||||||||||
| 103 | } never executed: end of block | 0 | ||||||||||||
| 104 | } executed 8 times by 1 test: end of blockExecuted by:
| 8 | ||||||||||||
| 105 | - | |||||||||||||
| 106 | - | |||||||||||||
| 107 | static void __attribute ((constructor)) | - | ||||||||||||
| 108 | stdbuf (void) | - | ||||||||||||
| 109 | { | - | ||||||||||||
| 110 | char *e_mode = getenv ("_STDBUF_E"); | - | ||||||||||||
| 111 | char *i_mode = getenv ("_STDBUF_I"); | - | ||||||||||||
| 112 | char *o_mode = getenv ("_STDBUF_O"); | - | ||||||||||||
| 113 | if (e_mode
| 1-5 | ||||||||||||
| 114 | apply_mode ( executed 1 time by 1 test: apply_mode ( stderr , e_mode);Executed by:
| 1 | ||||||||||||
| 115 | stderr executed 1 time by 1 test: apply_mode ( stderr , e_mode);Executed by:
| 1 | ||||||||||||
| 116 | , e_mode); executed 1 time by 1 test: apply_mode ( stderr , e_mode);Executed by:
| 1 | ||||||||||||
| 117 | if (i_mode
| 1-5 | ||||||||||||
| 118 | apply_mode ( executed 1 time by 1 test: apply_mode ( stdin , i_mode);Executed by:
| 1 | ||||||||||||
| 119 | stdin executed 1 time by 1 test: apply_mode ( stdin , i_mode);Executed by:
| 1 | ||||||||||||
| 120 | , i_mode); executed 1 time by 1 test: apply_mode ( stdin , i_mode);Executed by:
| 1 | ||||||||||||
| 121 | if (o_mode
| 0-6 | ||||||||||||
| 122 | apply_mode ( executed 6 times by 1 test: apply_mode ( stdout , o_mode);Executed by:
| 6 | ||||||||||||
| 123 | stdout executed 6 times by 1 test: apply_mode ( stdout , o_mode);Executed by:
| 6 | ||||||||||||
| 124 | , o_mode); executed 6 times by 1 test: apply_mode ( stdout , o_mode);Executed by:
| 6 | ||||||||||||
| 125 | } executed 6 times by 1 test: end of blockExecuted by:
| 6 | ||||||||||||
| Switch to Source code | Preprocessed file |