Branch Coverage

src/pdfmake_watermark.c
Criterion Covered Total %
branch 108 238 45.3


line true false branch
35 0 27 if (!font_name) return 0.5;
38 0 27 if (strstr(font_name, "Courier")) {
43 1 26 if (strstr(font_name, "Helvetica") || strstr(font_name, "Arial")) {
0 1 if (strstr(font_name, "Helvetica") || strstr(font_name, "Arial")) {
48 1 0 if (strstr(font_name, "Times")) {
62 0 28 if (!opts) return;
85 0 10 if (!opts) return;
108 0 27 if (!text) return 0.0;
127 0 24 if (!text) return NULL;
130 0 24 if (!wm) return NULL;
135 24 0 if (opts) {
143 0 24 if (!wm->data.text.text) {
165 0 1 if (image_obj_num == 0) return NULL;
168 0 1 if (!wm) return NULL;
173 1 0 if (opts) {
188 0 25 if (!wm) return;
190 24 1 if (wm->type == PDFMAKE_WM_TYPE_TEXT && wm->data.text.text) {
24 0 if (wm->type == PDFMAKE_WM_TYPE_TEXT && wm->data.text.text) {
208 0 6 if (!format) return NULL;
211 0 6 if (!stamp) return NULL;
216 6 0 if (opts) {
224 0 6 if (!stamp->data.text.format) {
244 0 3 if (!stamp) return NULL;
249 3 0 if (opts) {
256 3 0 stamp->data.bates.prefix = prefix ? strdup(prefix) : strdup("");
257 3 0 stamp->data.bates.suffix = suffix ? strdup(suffix) : strdup("");
259 3 0 stamp->data.bates.digits = digits > 0 ? digits : 6;
262 3 0 if (!stamp->data.bates.prefix || !stamp->data.bates.suffix) {
0 3 if (!stamp->data.bates.prefix || !stamp->data.bates.suffix) {
274 0 9 if (!stamp) return;
276 6 3 if (stamp->type == PDFMAKE_WM_STAMP_TEXT && stamp->data.text.format) {
6 0 if (stamp->type == PDFMAKE_WM_STAMP_TEXT && stamp->data.text.format) {
278 3 0 } else if (stamp->type == PDFMAKE_WM_STAMP_BATES) {
299 3 0 if (!wm || !out_x || !out_y || !out_rotation) return;
3 0 if (!wm || !out_x || !out_y || !out_rotation) return;
3 0 if (!wm || !out_x || !out_y || !out_rotation) return;
0 3 if (!wm || !out_x || !out_y || !out_rotation) return;
301 3 0 if (wm->type == PDFMAKE_WM_TYPE_TEXT) {
388 3 0 if (!stamp || !out_x || !out_y) return;
3 0 if (!stamp || !out_x || !out_y) return;
0 3 if (!stamp || !out_x || !out_y) return;
463 0 4 if (!format) return NULL;
468 0 4 if (!output) return NULL;
476 46 4 while (*src && (size_t)(dst - output) < out_size - 64) {
46 0 while (*src && (size_t)(dst - output) < out_size - 64) {
477 13 33 if (*src == '%' && *(src + 1)) {
13 0 if (*src == '%' && *(src + 1)) {
505 0 0 if (filename) {
536 5 0 size_t prefix_len = prefix ? strlen(prefix) : 0;
537 5 0 size_t suffix_len = suffix ? strlen(suffix) : 0;
542 0 5 if (!output) return NULL;
545 5 0 snprintf(output, prefix_len + digits + suffix_len + 16, format,
5 0 snprintf(output, prefix_len + digits + suffix_len + 16, format,
565 0 2 if (!doc) return 0;
568 0 2 if (opacity < 0.0) opacity = 0.0;
569 0 2 if (opacity > 1.0) opacity = 1.0;
572 0 2 if (!arena) return 0;
575 0 2 if (gs.kind != PDFMAKE_DICT) return 0;
599 35 6 for (p = text; *p; p++) {
600 0 35 switch (*p) {
648 3 0 if (gs_name) {
654 0 3 if (wm->opts.position == PDFMAKE_WM_POS_TILE) {
660 0 0 wm->data.text.text_width : wm->data.image.width;
662 0 0 wm->data.text.text_height : wm->data.image.height;
667 0 0 for (ty = 0; ty < page->height + content_height; ty += spacing_y) {
668 0 0 for (tx = 0; tx < page->width + content_width; tx += spacing_x) {
670 0 0 if (wm->type == PDFMAKE_WM_TYPE_TEXT) {
698 0 3 if (wm->opts.position == PDFMAKE_WM_POS_DIAGONAL) {
712 0 0 wm->data.text.text_width * wm->opts.scale :
717 0 3 } else if (rotation != 0.0) {
731 3 0 if (wm->type == PDFMAKE_WM_TYPE_TEXT) {
778 2 1 if (stamp->type == PDFMAKE_WM_STAMP_TEXT) {
789 0 3 if (!text) return PDFMAKE_ENOMEM;
836 3 0 if (!page || !wm) return PDFMAKE_EINVAL;
0 3 if (!page || !wm) return PDFMAKE_EINVAL;
839 0 3 if (wm->opts.opacity <= 0.0) {
846 3 0 if (wm->opts.opacity < 1.0) {
847 2 1 if (wm->extgstate_num == 0) {
850 3 0 if (wm->extgstate_num) {
858 3 0 if (wm->type == PDFMAKE_WM_TYPE_TEXT) {
860 3 0 base_font = wm->opts.font_name ? wm->opts.font_name : "Helvetica";
866 0 3 if (wm->type == PDFMAKE_WM_TYPE_IMAGE) {
875 3 0 gs_name[0] ? gs_name : NULL,
882 1 2 if (page->has_content && page->contents_num) {
1 0 if (page->has_content && page->contents_num) {
884 1 0 if (old_obj && old_obj->kind == PDFMAKE_STREAM && old_obj->as.stream) {
1 0 if (old_obj && old_obj->kind == PDFMAKE_STREAM && old_obj->as.stream) {
1 0 if (old_obj && old_obj->kind == PDFMAKE_STREAM && old_obj->as.stream) {
890 1 2 if (!old_data || old_len == 0) {
0 1 if (!old_data || old_len == 0) {
895 0 1 if (wm->opts.as_overlay) {
922 2 0 if (!doc || !wm) return PDFMAKE_EINVAL;
0 2 if (!doc || !wm) return PDFMAKE_EINVAL;
926 3 2 for (i = 0; i < page_count; i++) {
928 3 0 if (page) {
930 0 3 if (err != PDFMAKE_OK) return err;
947 0 0 if (!doc || !wm) return PDFMAKE_EINVAL;
0 0 if (!doc || !wm) return PDFMAKE_EINVAL;
951 0 0 if (start_page < 0) start_page = 0;
952 0 0 if (end_page < 0 || (size_t)end_page >= page_count) {
0 0 if (end_page < 0 || (size_t)end_page >= page_count) {
956 0 0 for (i = start_page; i <= end_page; i++) {
958 0 0 if (page) {
960 0 0 if (err != PDFMAKE_OK) return err;
981 2 0 if (!doc || !stamp) return PDFMAKE_EINVAL;
0 2 if (!doc || !stamp) return PDFMAKE_EINVAL;
986 1 1 if (stamp->type == PDFMAKE_WM_STAMP_BATES) {
990 3 2 for (i = 0; i < page_count; i++) {
992 0 3 if (!page) continue;
996 3 0 base_font = stamp->opts.font_name ? stamp->opts.font_name : "Helvetica";
1027 0 0 if (!doc || !stamp) return PDFMAKE_EINVAL;
0 0 if (!doc || !stamp) return PDFMAKE_EINVAL;
1031 0 0 if (start_page < 0) start_page = 0;
1032 0 0 if (end_page < 0 || (size_t)end_page >= page_count) {
0 0 if (end_page < 0 || (size_t)end_page >= page_count) {
1037 0 0 if (stamp->type == PDFMAKE_WM_STAMP_BATES) {
1041 0 0 for (i = start_page; i <= end_page; i++) {
1043 0 0 if (!page) continue;
1047 0 0 base_font = stamp->opts.font_name ? stamp->opts.font_name : "Helvetica";