Branch Coverage

xs/extract.xs
Criterion Covered Total %
branch 64 96 66.6


line true false branch
24 0 4 if (page_index >= pdfmake_reader_page_count(reader_sv->reader))
28 0 4 if (!rpage)
33 4 0 if (err != PDFMAKE_OK || content_buf.len == 0) {
0 4 if (err != PDFMAKE_OK || content_buf.len == 0) {
43 0 4 if (!interp) {
52 4 0 if (resources) {
65 0 4 if (err != PDFMAKE_OK) {
100 54 0 if (items > 3) include_invisible = (int)SvIV(ST(3));
103 0 54 if (page_index >= pdfmake_reader_page_count(reader_sv->reader))
107 0 54 if (!rpage)
111 54 0 if (err != PDFMAKE_OK || content_buf.len == 0) {
0 54 if (err != PDFMAKE_OK || content_buf.len == 0) {
120 0 54 if (!interp) {
128 54 0 if (resources)
139 54 0 if (reader_sv->reader->catalog) {
144 1 53 if (str_root) {
155 0 54 if (err != PDFMAKE_OK) {
162 238 54 for (size_t b = 0; b < result->len; b++) {
171 672 238 for (size_t l = 0; l < block->len; l++) {
181 2091 672 for (size_t w = 0; w < line->len; w++) {
193 12155 2091 for (size_t g = 0; g < word->len; g++) {
195 2091 10064 if (gl->font_size > word_font_size)
199 12110 45 if (cp < 0x80) {
201 0 45 } else if (cp < 0x800) {
204 45 0 } else if (cp < 0x10000) {
222 5 2086 if (word->mcid >= 0) {
226 5 0 if (role_id) {
232 5 0 if (role_name) {
275 0 2 if (page_index >= pdfmake_reader_page_count(reader_sv->reader))
281 2 0 if (err != PDFMAKE_OK || content_buf.len == 0) {
0 2 if (err != PDFMAKE_OK || content_buf.len == 0) {
287 0 2 if (!interp) {
293 2 0 if (resources) pdfmake_interp_set_resources(interp, resources);
301 0 2 if (err != PDFMAKE_OK) {
310 1 2 for (size_t ti = 0; ti < tlist->len; ti++) {
321 4 1 for (size_t r = 0; r < t->rows; r++) {
323 12 4 for (size_t c = 0; c < t->cols; c++) {
325 12 0 const char *txt = t->cells[idx] ? t->cells[idx] : "";
355 0 2 if (!list) croak("PDF::Make::Extract: annot list alloc failed");
357 0 2 if (pdfmake_textract_annotations(reader_sv->reader, list) != PDFMAKE_OK) {
363 3 2 for (size_t i = 0; i < list->len; i++) {
366 3 0 if (r->kind) hv_stores(hv, "kind", newSVpv(r->kind, 0));
367 3 0 if (r->page_index != (size_t)-1)
370 12 3 for (int k = 0; k < 4; k++)
374 3 0 SV *tsv = newSVpv(r->text ? r->text : "", 0);
378 2 1 if (r->author) {
383 2 1 if (r->subject) {
388 1 2 if (r->field_name) {