| line |
true |
false |
branch |
|
54
|
2439 |
19 |
while (t->p < t->end) { |
|
56
|
1820 |
619 |
if (c == ' ' || c == '\t' || c == '\r' || c == '\n' || c == '\f') { |
|
|
1820 |
0 |
if (c == ' ' || c == '\t' || c == '\r' || c == '\n' || c == '\f') { |
|
|
1820 |
0 |
if (c == ' ' || c == '\t' || c == '\r' || c == '\n' || c == '\f') { |
|
|
1638 |
182 |
if (c == ' ' || c == '\t' || c == '\r' || c == '\n' || c == '\f') { |
|
|
0 |
1638 |
if (c == ' ' || c == '\t' || c == '\r' || c == '\n' || c == '\f') { |
|
58
|
0 |
1638 |
} else if (c == '%') { |
|
60
|
0 |
0 |
while (t->p < t->end && *t->p != '\n' && *t->p != '\r') |
|
|
0 |
0 |
while (t->p < t->end && *t->p != '\n' && *t->p != '\r') |
|
|
0 |
0 |
while (t->p < t->end && *t->p != '\n' && *t->p != '\r') |
|
69
|
0 |
0 |
return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F'); |
|
|
0 |
0 |
return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F'); |
|
|
0 |
0 |
return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F'); |
|
|
0 |
0 |
return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F'); |
|
|
0 |
0 |
return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F'); |
|
|
0 |
0 |
return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F'); |
|
73
|
384 |
0 |
if (c >= '0' && c <= '9') return c - '0'; |
|
|
371 |
13 |
if (c >= '0' && c <= '9') return c - '0'; |
|
74
|
0 |
13 |
if (c >= 'a' && c <= 'f') return c - 'a' + 10; |
|
|
0 |
0 |
if (c >= 'a' && c <= 'f') return c - 'a' + 10; |
|
75
|
13 |
0 |
if (c >= 'A' && c <= 'F') return c - 'A' + 10; |
|
|
13 |
0 |
if (c >= 'A' && c <= 'F') return c - 'A' + 10; |
|
90
|
145 |
0 |
if (t->p >= t->end || *t->p != '<') return -1; |
|
|
0 |
145 |
if (t->p >= t->end || *t->p != '<') return -1; |
|
96
|
531 |
0 |
while (t->p < t->end && *t->p != '>') { |
|
|
386 |
145 |
while (t->p < t->end && *t->p != '>') { |
|
98
|
384 |
2 |
if (c == ' ' || c == '\t' || c == '\r' || c == '\n') continue; |
|
|
384 |
0 |
if (c == ' ' || c == '\t' || c == '\r' || c == '\n') continue; |
|
|
384 |
0 |
if (c == ' ' || c == '\t' || c == '\r' || c == '\n') continue; |
|
|
0 |
384 |
if (c == ' ' || c == '\t' || c == '\r' || c == '\n') continue; |
|
100
|
0 |
384 |
if (v < 0) return -1; |
|
101
|
192 |
192 |
if (nibble_hi < 0) { |
|
104
|
0 |
192 |
if (written >= out_cap) return -1; |
|
110
|
0 |
145 |
if (nibble_hi >= 0) { |
|
111
|
0 |
0 |
if (written >= out_cap) return -1; |
|
114
|
145 |
0 |
if (t->p >= t->end || *t->p != '>') return -1; |
|
|
0 |
145 |
if (t->p >= t->end || *t->p != '>') return -1; |
|
129
|
107 |
0 |
if (n < 0 || n > 4) return -1; |
|
|
0 |
107 |
if (n < 0 || n > 4) return -1; |
|
131
|
112 |
107 |
for (i = 0; i < n; i++) { |
|
151
|
38 |
0 |
if (n < 0 || (n % 2) != 0) return -1; |
|
|
0 |
38 |
if (n < 0 || (n % 2) != 0) return -1; |
|
155
|
40 |
38 |
while (i + 1 < n) { |
|
161
|
3 |
37 |
if (hi >= 0xD800 && hi <= 0xDBFF && i + 1 < n) { |
|
|
0 |
3 |
if (hi >= 0xD800 && hi <= 0xDBFF && i + 1 < n) { |
|
|
0 |
0 |
if (hi >= 0xD800 && hi <= 0xDBFF && i + 1 < n) { |
|
163
|
0 |
0 |
if (lo >= 0xDC00 && lo <= 0xDFFF) { |
|
|
0 |
0 |
if (lo >= 0xDC00 && lo <= 0xDFFF) { |
|
169
|
0 |
40 |
if (written >= out_cap) return -1; |
|
185
|
559 |
0 |
if (t->p < t->end && (*t->p == '-' || *t->p == '+')) { |
|
|
559 |
0 |
if (t->p < t->end && (*t->p == '-' || *t->p == '+')) { |
|
|
0 |
559 |
if (t->p < t->end && (*t->p == '-' || *t->p == '+')) { |
|
186
|
0 |
0 |
if (*t->p == '-') negative = 1; |
|
191
|
654 |
0 |
while (t->p < t->end && *t->p >= '0' && *t->p <= '9') { |
|
|
376 |
278 |
while (t->p < t->end && *t->p >= '0' && *t->p <= '9') { |
|
|
95 |
281 |
while (t->p < t->end && *t->p >= '0' && *t->p <= '9') { |
|
196
|
483 |
76 |
if (!any) { t->p = start; return -1; } |
|
197
|
0 |
76 |
*out = negative ? -v : v; |
|
211
|
0 |
286 |
if ((size_t)(t->end - t->p) < kwlen) { t->p = save; return 0; } |
|
212
|
210 |
76 |
if (memcmp(t->p, kw, kwlen) != 0) { t->p = save; return 0; } |
|
214
|
76 |
0 |
if (t->p + kwlen < t->end) { |
|
216
|
58 |
18 |
if (!(c == ' ' || c == '\t' || c == '\r' || c == '\n' || |
|
|
58 |
0 |
if (!(c == ' ' || c == '\t' || c == '\r' || c == '\n' || |
|
|
58 |
0 |
if (!(c == ' ' || c == '\t' || c == '\r' || c == '\n' || |
|
|
0 |
58 |
if (!(c == ' ' || c == '\t' || c == '\r' || c == '\n' || |
|
|
0 |
0 |
if (!(c == ' ' || c == '\t' || c == '\r' || c == '\n' || |
|
|
0 |
0 |
if (!(c == ' ' || c == '\t' || c == '\r' || c == '\n' || |
|
217
|
0 |
0 |
c == '<' || c == '[' || c == '/' || c == '%')) { |
|
|
0 |
0 |
c == '<' || c == '[' || c == '/' || c == '%')) { |
|
234
|
5 |
2 |
if (need <= cm->entry_cap) return 0; |
|
235
|
0 |
2 |
new_cap = cm->entry_cap ? cm->entry_cap : 64; |
|
236
|
0 |
2 |
while (new_cap < need) new_cap *= 2; |
|
238
|
0 |
2 |
if (!n) return -1; |
|
248
|
14 |
17 |
if (need <= cm->range_cap) return 0; |
|
249
|
0 |
17 |
new_cap = cm->range_cap ? cm->range_cap : 16; |
|
250
|
0 |
17 |
while (new_cap < need) new_cap *= 2; |
|
252
|
0 |
17 |
if (!n) return -1; |
|
263
|
7 |
0 |
if (uni_count == 0 || uni_count > PDFMAKE_CMAP_MAX_UNI) return -1; |
|
|
0 |
7 |
if (uni_count == 0 || uni_count > PDFMAKE_CMAP_MAX_UNI) return -1; |
|
264
|
0 |
7 |
if (cmap_reserve_entries(cm, cm->entry_count + 1) < 0) return -1; |
|
268
|
9 |
7 |
for (i = 0; i < uni_count; i++) e->uni[i] = uni[i]; |
|
276
|
0 |
31 |
if (hi < lo) return -1; |
|
277
|
0 |
31 |
if (cmap_reserve_ranges(cm, cm->range_count + 1) < 0) return -1; |
|
298
|
7 |
2 |
for (i = 0; i < count; i++) { |
|
300
|
0 |
7 |
if (code_w < 0) return -1; |
|
301
|
7 |
0 |
if (cm->code_width == 0 || code_w > cm->code_width) |
|
|
0 |
7 |
if (cm->code_width == 0 || code_w > cm->code_width) |
|
305
|
0 |
7 |
if (n <= 0) return -1; |
|
307
|
0 |
7 |
if (cmap_add_entry(cm, code, uni, (size_t)n) < 0) return -1; |
|
334
|
31 |
17 |
for (i = 0; i < count; i++) { |
|
337
|
31 |
0 |
if (lw < 0 || hw < 0) return -1; |
|
|
0 |
31 |
if (lw < 0 || hw < 0) return -1; |
|
339
|
31 |
0 |
if (cm->code_width == 0 || w > cm->code_width) cm->code_width = w; |
|
|
0 |
31 |
if (cm->code_width == 0 || w > cm->code_width) cm->code_width = w; |
|
342
|
0 |
31 |
if (t->p >= t->end) return -1; |
|
344
|
31 |
0 |
if (*t->p == '<') { |
|
347
|
0 |
31 |
if (n <= 0) return -1; |
|
349
|
31 |
0 |
if (n == 1) { |
|
351
|
0 |
31 |
if (cmap_add_range(cm, lo, hi, uni[0]) < 0) return -1; |
|
356
|
0 |
0 |
for (c = lo; c <= hi; c++) { |
|
357
|
0 |
0 |
for (j = 0; j < n; j++) u[j] = uni[j]; |
|
360
|
0 |
0 |
if (n > 0) u[n - 1] += delta; |
|
361
|
0 |
0 |
if (cmap_add_entry(cm, c, u, (size_t)n) < 0) return -1; |
|
364
|
0 |
0 |
} else if (*t->p == '[') { |
|
367
|
0 |
0 |
for (c = lo; c <= hi; c++) { |
|
369
|
0 |
0 |
if (t->p >= t->end || *t->p != '<') return -1; |
|
|
0 |
0 |
if (t->p >= t->end || *t->p != '<') return -1; |
|
371
|
0 |
0 |
if (n2 <= 0) return -1; |
|
372
|
0 |
0 |
if (cmap_add_entry(cm, c, uni2, (size_t)n2) < 0) return -1; |
|
375
|
0 |
0 |
if (t->p >= t->end || *t->p != ']') return -1; |
|
|
0 |
0 |
if (t->p >= t->end || *t->p != ']') return -1; |
|
396
|
19 |
19 |
for (i = 0; i < count; i++) { |
|
399
|
19 |
0 |
if (lw < 0 || hw < 0) return -1; |
|
|
0 |
19 |
if (lw < 0 || hw < 0) return -1; |
|
401
|
0 |
19 |
if (cm->code_width == 0 || w > cm->code_width) cm->code_width = w; |
|
|
0 |
0 |
if (cm->code_width == 0 || w > cm->code_width) cm->code_width = w; |
|
403
|
0 |
19 |
if (!tok_match_keyword(t, "endcodespacerange")) return -1; |
|
437
|
19 |
0 |
if (!arena || !data || len == 0) return NULL; |
|
|
19 |
0 |
if (!arena || !data || len == 0) return NULL; |
|
|
0 |
19 |
if (!arena || !data || len == 0) return NULL; |
|
440
|
0 |
19 |
if (!cm) return NULL; |
|
449
|
578 |
0 |
while (tok.p < tok.end) { |
|
451
|
19 |
559 |
if (tok.p >= tok.end) break; |
|
455
|
76 |
483 |
if (tok_int(&tok, &count) == 0 && count > 0) { |
|
|
58 |
18 |
if (tok_int(&tok, &count) == 0 && count > 0) { |
|
464
|
19 |
20 |
} else if (tok_match_keyword(&tok, "begincodespacerange")) { |
|
470
|
80 |
19 |
*tok.p != ' ' && *tok.p != '\t' && |
|
|
80 |
0 |
*tok.p != ' ' && *tok.p != '\t' && |
|
471
|
99 |
0 |
*tok.p != '\r' && *tok.p != '\n' && |
|
|
80 |
0 |
*tok.p != '\r' && *tok.p != '\n' && |
|
|
79 |
1 |
*tok.p != '\r' && *tok.p != '\n' && |
|
472
|
79 |
0 |
*tok.p != '%') { |
|
477
|
0 |
38 |
if (rc != 0) { |
|
485
|
3646 |
418 |
*tok.p != ' ' && *tok.p != '\t' && |
|
|
3646 |
0 |
*tok.p != ' ' && *tok.p != '\t' && |
|
486
|
4064 |
0 |
*tok.p != '\r' && *tok.p != '\n' && |
|
|
3646 |
0 |
*tok.p != '\r' && *tok.p != '\n' && |
|
|
3563 |
83 |
*tok.p != '\r' && *tok.p != '\n' && |
|
487
|
3563 |
0 |
*tok.p != '%') { |
|
490
|
0 |
501 |
if (tok.p == save) tok.p++; /* safety: always make progress */ |
|
495
|
2 |
17 |
if (cm->entry_count > 1) { |
|
498
|
14 |
5 |
if (cm->range_count > 1) { |
|
502
|
0 |
19 |
if (cm->code_width == 0) cm->code_width = 2; /* default to 2-byte */ |
|
506
|
2 |
17 |
if (cm->entry_count > 0) { |
|
509
|
2 |
0 |
if (arena_entries) { |
|
517
|
17 |
2 |
if (cm->range_count > 0) { |
|
520
|
17 |
0 |
if (arena_ranges) { |
|
536
|
103 |
0 |
if (!cmap || !out || !out_count) return 0; |
|
|
103 |
0 |
if (!cmap || !out || !out_count) return 0; |
|
|
0 |
103 |
if (!cmap || !out || !out_count) return 0; |
|
539
|
7 |
96 |
if (cmap->entry_count > 0) { |
|
541
|
13 |
0 |
while (lo < hi) { |
|
544
|
7 |
6 |
if (mc == code) { |
|
547
|
9 |
7 |
for (k = 0; k < e->uni_count; k++) out[k] = e->uni[k]; |
|
551
|
2 |
4 |
if (mc < code) lo = mid + 1; |
|
557
|
96 |
0 |
if (cmap->range_count > 0) { |
|
560
|
141 |
96 |
while (lo < hi) { |
|
562
|
96 |
45 |
if (cmap->ranges[mid].lo <= code) lo = mid + 1; |
|
565
|
96 |
0 |
if (lo > 0) { |
|
567
|
96 |
0 |
if (code >= r->lo && code <= r->hi) { |
|
|
96 |
0 |
if (code >= r->lo && code <= r->hi) { |
|
579
|
0 |
0 |
return cmap ? cmap->code_width : 0; |
|
583
|
0 |
0 |
if (!cmap) return 0; |