OpenCoverage

mbswidth.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/coreutils/src/gnulib/lib/mbswidth.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7-
8-
9-
10-
11-
12-
13-
14-
15-
16-
17-
18-
19-
20-
21int-
22gnu_mbswidth (const char *string, int flags)-
23{-
24 return
executed 7664 times by 4 tests: return mbsnwidth (string, strlen (string), flags);
Executed by:
  • df
  • ls
  • pr
  • vdir
mbsnwidth (string, strlen (string), flags);
executed 7664 times by 4 tests: return mbsnwidth (string, strlen (string), flags);
Executed by:
  • df
  • ls
  • pr
  • vdir
7664
25}-
26-
27-
28-
29-
30-
31int-
32mbsnwidth (const char *string, size_t nbytes, int flags)-
33{-
34 const char *p = string;-
35 const char *plimit = p + nbytes;-
36 int width;-
37-
38 width = 0;-
39 if (-
40 (
(__ctype_get_m...ur_max ()) > 1Description
TRUEnever evaluated
FALSEevaluated 7886 times by 5 tests
Evaluated by:
  • df
  • ls
  • pr
  • sort
  • vdir
__ctype_get_mb_cur_max ())
(__ctype_get_m...ur_max ()) > 1Description
TRUEnever evaluated
FALSEevaluated 7886 times by 5 tests
Evaluated by:
  • df
  • ls
  • pr
  • sort
  • vdir
0-7886
41 > 1
(__ctype_get_m...ur_max ()) > 1Description
TRUEnever evaluated
FALSEevaluated 7886 times by 5 tests
Evaluated by:
  • df
  • ls
  • pr
  • sort
  • vdir
)
0-7886
42 {-
43 while (p < plimit
p < plimitDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
44 switch (*p)-
45 {-
46 case
never executed: case ' ':
' ':
never executed: case ' ':
case
never executed: case '!':
'!':
never executed: case '!':
case
never executed: case '"':
'"':
never executed: case '"':
case
never executed: case '#':
'#':
never executed: case '#':
case
never executed: case '%':
'%':
never executed: case '%':
0
47 case
never executed: case '&':
'&':
never executed: case '&':
case
never executed: case '\'':
'\'':
never executed: case '\'':
case
never executed: case '(':
'(':
never executed: case '(':
case
never executed: case ')':
')':
never executed: case ')':
case
never executed: case '*':
'*':
never executed: case '*':
0
48 case
never executed: case '+':
'+':
never executed: case '+':
case
never executed: case ',':
',':
never executed: case ',':
case
never executed: case '-':
'-':
never executed: case '-':
case
never executed: case '.':
'.':
never executed: case '.':
case
never executed: case '/':
'/':
never executed: case '/':
0
49 case
never executed: case '0':
'0':
never executed: case '0':
case
never executed: case '1':
'1':
never executed: case '1':
case
never executed: case '2':
'2':
never executed: case '2':
case
never executed: case '3':
'3':
never executed: case '3':
case
never executed: case '4':
'4':
never executed: case '4':
0
50 case
never executed: case '5':
'5':
never executed: case '5':
case
never executed: case '6':
'6':
never executed: case '6':
case
never executed: case '7':
'7':
never executed: case '7':
case
never executed: case '8':
'8':
never executed: case '8':
case
never executed: case '9':
'9':
never executed: case '9':
0
51 case
never executed: case ':':
':':
never executed: case ':':
case
never executed: case ';':
';':
never executed: case ';':
case
never executed: case '<':
'<':
never executed: case '<':
case
never executed: case '=':
'=':
never executed: case '=':
case
never executed: case '>':
'>':
never executed: case '>':
0
52 case
never executed: case '?':
'?':
never executed: case '?':
0
53 case
never executed: case 'A':
'A':
never executed: case 'A':
case
never executed: case 'B':
'B':
never executed: case 'B':
case
never executed: case 'C':
'C':
never executed: case 'C':
case
never executed: case 'D':
'D':
never executed: case 'D':
case
never executed: case 'E':
'E':
never executed: case 'E':
0
54 case
never executed: case 'F':
'F':
never executed: case 'F':
case
never executed: case 'G':
'G':
never executed: case 'G':
case
never executed: case 'H':
'H':
never executed: case 'H':
case
never executed: case 'I':
'I':
never executed: case 'I':
case
never executed: case 'J':
'J':
never executed: case 'J':
0
55 case
never executed: case 'K':
'K':
never executed: case 'K':
case
never executed: case 'L':
'L':
never executed: case 'L':
case
never executed: case 'M':
'M':
never executed: case 'M':
case
never executed: case 'N':
'N':
never executed: case 'N':
case
never executed: case 'O':
'O':
never executed: case 'O':
0
56 case
never executed: case 'P':
'P':
never executed: case 'P':
case
never executed: case 'Q':
'Q':
never executed: case 'Q':
case
never executed: case 'R':
'R':
never executed: case 'R':
case
never executed: case 'S':
'S':
never executed: case 'S':
case
never executed: case 'T':
'T':
never executed: case 'T':
0
57 case
never executed: case 'U':
'U':
never executed: case 'U':
case
never executed: case 'V':
'V':
never executed: case 'V':
case
never executed: case 'W':
'W':
never executed: case 'W':
case
never executed: case 'X':
'X':
never executed: case 'X':
case
never executed: case 'Y':
'Y':
never executed: case 'Y':
0
58 case
never executed: case 'Z':
'Z':
never executed: case 'Z':
0
59 case
never executed: case '[':
'[':
never executed: case '[':
case
never executed: case '\\':
'\\':
never executed: case '\\':
case
never executed: case ']':
']':
never executed: case ']':
case
never executed: case '^':
'^':
never executed: case '^':
case
never executed: case '_':
'_':
never executed: case '_':
0
60 case
never executed: case 'a':
'a':
never executed: case 'a':
case
never executed: case 'b':
'b':
never executed: case 'b':
case
never executed: case 'c':
'c':
never executed: case 'c':
case
never executed: case 'd':
'd':
never executed: case 'd':
case
never executed: case 'e':
'e':
never executed: case 'e':
0
61 case
never executed: case 'f':
'f':
never executed: case 'f':
case
never executed: case 'g':
'g':
never executed: case 'g':
case
never executed: case 'h':
'h':
never executed: case 'h':
case
never executed: case 'i':
'i':
never executed: case 'i':
case
never executed: case 'j':
'j':
never executed: case 'j':
0
62 case
never executed: case 'k':
'k':
never executed: case 'k':
case
never executed: case 'l':
'l':
never executed: case 'l':
case
never executed: case 'm':
'm':
never executed: case 'm':
case
never executed: case 'n':
'n':
never executed: case 'n':
case
never executed: case 'o':
'o':
never executed: case 'o':
0
63 case
never executed: case 'p':
'p':
never executed: case 'p':
case
never executed: case 'q':
'q':
never executed: case 'q':
case
never executed: case 'r':
'r':
never executed: case 'r':
case
never executed: case 's':
's':
never executed: case 's':
case
never executed: case 't':
't':
never executed: case 't':
0
64 case
never executed: case 'u':
'u':
never executed: case 'u':
case
never executed: case 'v':
'v':
never executed: case 'v':
case
never executed: case 'w':
'w':
never executed: case 'w':
case
never executed: case 'x':
'x':
never executed: case 'x':
case
never executed: case 'y':
'y':
never executed: case 'y':
0
65 case
never executed: case 'z':
'z':
never executed: case 'z':
case
never executed: case '{':
'{':
never executed: case '{':
case
never executed: case '|':
'|':
never executed: case '|':
case
never executed: case '}':
'}':
never executed: case '}':
case
never executed: case '~':
'~':
never executed: case '~':
0
66-
67 p++;-
68 width++;-
69 break;
never executed: break;
0
70 default
never executed: default:
:
never executed: default:
0
71-
72 {-
73 mbstate_t mbstate;-
74 memset (&mbstate, 0, sizeof mbstate);-
75 do-
76 {-
77 wchar_t wc;-
78 size_t bytes;-
79 int w;-
80-
81 bytes = -
82 rpl_mbrtowc -
83 (&wc, p, plimit - p, &mbstate);-
84-
85 if (bytes == (size_t) -1
bytes == (size_t) -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
86-
87 {-
88 if (!(flags & 1)
!(flags & 1)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
89 {-
90 p++;-
91 width++;-
92 break;
never executed: break;
0
93 }-
94 else-
95 return
never executed: return -1;
-1;
never executed: return -1;
0
96 }-
97-
98 if (bytes == (size_t) -2
bytes == (size_t) -2Description
TRUEnever evaluated
FALSEnever evaluated
)
0
99-
100 {-
101 if (!(flags & 1)
!(flags & 1)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
102 {-
103 p = plimit;-
104 width++;-
105 break;
never executed: break;
0
106 }-
107 else-
108 return
never executed: return -1;
-1;
never executed: return -1;
0
109 }-
110-
111 if (bytes == 0
bytes == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
112-
113 bytes = 1;
never executed: bytes = 1;
0
114-
115 w = wcwidth (wc);-
116 if (w >= 0
w >= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
117-
118 {-
119 if (w > 0x7fffffff - width
w > 0x7fffffff - widthDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
120 goto
never executed: goto overflow;
overflow;
never executed: goto overflow;
0
121 width += w;-
122 }
never executed: end of block
0
123 else-
124-
125 if (!(flags & 2)
!(flags & 2)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
126 {-
127 if (!iswcntrl (wc)
!iswcntrl (wc)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
128 {-
129 if (width == 0x7fffffff
width == 0x7fffffffDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
130 goto
never executed: goto overflow;
overflow;
never executed: goto overflow;
0
131 width++;-
132 }
never executed: end of block
0
133 }
never executed: end of block
0
134 else-
135 return
never executed: return -1;
-1;
never executed: return -1;
0
136-
137 p += bytes;-
138 }
never executed: end of block
0
139 while (! mbsinit (&mbstate)
! mbsinit (&mbstate)Description
TRUEnever evaluated
FALSEnever evaluated
);
0
140 }-
141 break;
never executed: break;
0
142 }-
143 return
never executed: return width;
width;
never executed: return width;
0
144 }-
145-
146 while (p < plimit
p < plimitDescription
TRUEevaluated 48607 times by 5 tests
Evaluated by:
  • df
  • ls
  • pr
  • sort
  • vdir
FALSEevaluated 7886 times by 5 tests
Evaluated by:
  • df
  • ls
  • pr
  • sort
  • vdir
)
7886-48607
147 {-
148 unsigned char c = (unsigned char) *p++;-
149-
150 if (-
151 ((*
((*__ctype_b_l...int) _ISprint)Description
TRUEevaluated 48583 times by 5 tests
Evaluated by:
  • df
  • ls
  • pr
  • sort
  • vdir
FALSEevaluated 24 times by 1 test
Evaluated by:
  • sort
__ctype_b_loc ())[(int) ((
((*__ctype_b_l...int) _ISprint)Description
TRUEevaluated 48583 times by 5 tests
Evaluated by:
  • df
  • ls
  • pr
  • sort
  • vdir
FALSEevaluated 24 times by 1 test
Evaluated by:
  • sort
24-48583
152 c
((*__ctype_b_l...int) _ISprint)Description
TRUEevaluated 48583 times by 5 tests
Evaluated by:
  • df
  • ls
  • pr
  • sort
  • vdir
FALSEevaluated 24 times by 1 test
Evaluated by:
  • sort
24-48583
153 ))] & (unsigned short int) _ISprint)
((*__ctype_b_l...int) _ISprint)Description
TRUEevaluated 48583 times by 5 tests
Evaluated by:
  • df
  • ls
  • pr
  • sort
  • vdir
FALSEevaluated 24 times by 1 test
Evaluated by:
  • sort
24-48583
154 )-
155 {-
156 if (width == 0x7fffffff
width == 0x7fffffffDescription
TRUEnever evaluated
FALSEevaluated 48583 times by 5 tests
Evaluated by:
  • df
  • ls
  • pr
  • sort
  • vdir
)
0-48583
157 goto
never executed: goto overflow;
overflow;
never executed: goto overflow;
0
158 width++;-
159 }
executed 48583 times by 5 tests: end of block
Executed by:
  • df
  • ls
  • pr
  • sort
  • vdir
48583
160 else if (!(flags & 2)
!(flags & 2)Description
TRUEevaluated 24 times by 1 test
Evaluated by:
  • sort
FALSEnever evaluated
)
0-24
161 {-
162 if (!
! ((*__ctype_b...int) _IScntrl)Description
TRUEnever evaluated
FALSEevaluated 24 times by 1 test
Evaluated by:
  • sort
0-24
163 ((*__ctype_b_loc ())[(int) ((
! ((*__ctype_b...int) _IScntrl)Description
TRUEnever evaluated
FALSEevaluated 24 times by 1 test
Evaluated by:
  • sort
0-24
164 c
! ((*__ctype_b...int) _IScntrl)Description
TRUEnever evaluated
FALSEevaluated 24 times by 1 test
Evaluated by:
  • sort
0-24
165 ))] & (unsigned short int) _IScntrl)
! ((*__ctype_b...int) _IScntrl)Description
TRUEnever evaluated
FALSEevaluated 24 times by 1 test
Evaluated by:
  • sort
0-24
166 )-
167 {-
168 if (width == 0x7fffffff
width == 0x7fffffffDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
169 goto
never executed: goto overflow;
overflow;
never executed: goto overflow;
0
170 width++;-
171 }
never executed: end of block
0
172 }
executed 24 times by 1 test: end of block
Executed by:
  • sort
24
173 else-
174 return
never executed: return -1;
-1;
never executed: return -1;
0
175 }-
176 return
executed 7886 times by 5 tests: return width;
Executed by:
  • df
  • ls
  • pr
  • sort
  • vdir
width;
executed 7886 times by 5 tests: return width;
Executed by:
  • df
  • ls
  • pr
  • sort
  • vdir
7886
177-
178 overflow:-
179 return
never executed: return 0x7fffffff;
0x7fffffff;
never executed: return 0x7fffffff;
0
180}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.1.2