Branch Coverage

hoedown/src/html.c
Criterion Covered Total %
branch 33 242 13.6


line true false branch
18 0 0 if (size < 3 || data[0] != '<')
0 0 if (size < 3 || data[0] != '<')
23 0 0 if (data[i] == '/') {
28 0 0 for (; i < size; ++i, ++tagname) {
29 0 0 if (*tagname == 0)
32 0 0 if (data[i] != *tagname)
36 0 0 if (i == size)
39 0 0 if (isspace(data[i]) || data[i] == '>')
0 0 if (isspace(data[i]) || data[i] == '>')
40 0 0 return closed ? HOEDOWN_HTML_TAG_CLOSE : HOEDOWN_HTML_TAG_OPEN;
63 1 0 if (!link || !link->size)
1 0 if (!link || !link->size)
67 0 1 if (type == HOEDOWN_AUTOLINK_EMAIL)
71 0 1 if (state->link_attributes) {
84 0 1 if (hoedown_buffer_prefix(link, "mailto:") == 0) {
98 0 0 if (ob->size) hoedown_buffer_putc(ob, '\n');
100 0 0 if (lang) {
108 0 0 if (text)
117 0 0 if (ob->size) hoedown_buffer_putc(ob, '\n');
119 0 0 if (content) hoedown_buffer_put(ob, content->data, content->size);
127 0 0 if (text) escape_html(ob, text->data, text->size);
135 0 0 if (!content || !content->size)
0 0 if (!content || !content->size)
147 0 0 if (!content || !content->size)
0 0 if (!content || !content->size)
160 0 0 if (!content || !content->size) return 0;
0 0 if (!content || !content->size) return 0;
162 0 0 if (content) hoedown_buffer_put(ob, content->data, content->size);
170 0 0 if (!content || !content->size)
0 0 if (!content || !content->size)
183 0 0 if (!content || !content->size)
0 0 if (!content || !content->size)
196 0 0 if (!content || !content->size)
0 0 if (!content || !content->size)
210 0 0 hoedown_buffer_puts(ob, USE_XHTML(state) ? "
\n" : "
\n");
0 0 hoedown_buffer_puts(ob, USE_XHTML(state) ? "
\n" : "
\n");
219 12 4 if (ob->size)
222 9 7 if (level <= state->toc_data.nesting_level)
227 16 0 if (content) hoedown_buffer_put(ob, content->data, content->size);
238 0 0 if (link && link->size)
0 0 if (link && link->size)
241 0 0 if (title && title->size) {
0 0 if (title && title->size) {
246 0 0 if (state->link_attributes) {
254 0 0 if (content && content->size) hoedown_buffer_put(ob, content->data, content->size);
0 0 if (content && content->size) hoedown_buffer_put(ob, content->data, content->size);
262 0 0 if (ob->size) hoedown_buffer_putc(ob, '\n');
263 0 0 hoedown_buffer_put(ob, (const uint8_t *)(flags & HOEDOWN_LIST_ORDERED ? "
    \n" : "
      \n"), 5);
264 0 0 if (content) hoedown_buffer_put(ob, content->data, content->size);
265 0 0 hoedown_buffer_put(ob, (const uint8_t *)(flags & HOEDOWN_LIST_ORDERED ? "\n" : "\n"), 6);
272 0 0 if (content) {
274 0 0 while (size && content->data[size - 1] == '\n')
0 0 while (size && content->data[size - 1] == '\n')
288 0 1 if (ob->size) hoedown_buffer_putc(ob, '\n');
290 1 0 if (!content || !content->size)
1 0 if (!content || !content->size)
293 1 0 while (i < content->size && isspace(content->data[i])) i++;
0 1 while (i < content->size && isspace(content->data[i])) i++;
295 1 0 if (i == content->size)
299 0 1 if (state->flags & HOEDOWN_HTML_HARD_WRAP) {
301 0 0 while (i < content->size) {
303 0 0 while (i < content->size && content->data[i] != '\n')
0 0 while (i < content->size && content->data[i] != '\n')
306 0 0 if (i > org)
313 0 0 if (i >= content->size - 1)
330 0 0 if (!text)
335 0 0 while (sz > 0 && text->data[sz - 1] == '\n')
0 0 while (sz > 0 && text->data[sz - 1] == '\n')
339 0 0 while (org < sz && text->data[org] == '\n')
0 0 while (org < sz && text->data[org] == '\n')
342 0 0 if (org >= sz)
345 0 0 if (ob->size)
355 0 0 if (!content || !content->size) return 0;
0 0 if (!content || !content->size) return 0;
366 0 0 if (ob->size) hoedown_buffer_putc(ob, '\n');
367 0 0 hoedown_buffer_puts(ob, USE_XHTML(state) ? "
\n" : "
\n");
374 0 0 if (!link || !link->size) return 0;
0 0 if (!link || !link->size) return 0;
380 0 0 if (alt && alt->size)
0 0 if (alt && alt->size)
383 0 0 if (title && title->size) {
0 0 if (title && title->size) {
387 0 0 hoedown_buffer_puts(ob, USE_XHTML(state) ? "\"/>" : "\">");
398 0 0 if((state->flags & HOEDOWN_HTML_ESCAPE) != 0) {
403 0 0 if ((state->flags & HOEDOWN_HTML_SKIP_HTML) != 0)
413 0 0 if (ob->size) hoedown_buffer_putc(ob, '\n');
422 0 0 if (ob->size) hoedown_buffer_putc(ob, '\n');
431 0 0 if (ob->size) hoedown_buffer_putc(ob, '\n');
441 0 0 if (content) hoedown_buffer_put(ob, content->data, content->size);
448 0 0 if (flags & HOEDOWN_TABLE_HEADER) {
471 0 0 if (content)
474 0 0 if (flags & HOEDOWN_TABLE_HEADER) {
484 0 0 if (!content || !content->size) return 0;
0 0 if (!content || !content->size) return 0;
494 24 0 if (content)
503 0 0 if (ob->size) hoedown_buffer_putc(ob, '\n');
505 0 0 hoedown_buffer_puts(ob, USE_XHTML(state) ? "
\n" : "
\n");
508 0 0 if (content) hoedown_buffer_put(ob, content->data, content->size);
520 0 0 if (content) {
521 0 0 while ((i+3) < content->size) {
522 0 0 if (content->data[i++] != '<') continue;
523 0 0 if (content->data[i++] != '/') continue;
524 0 0 if (content->data[i++] != 'p' && content->data[i] != 'P') continue;
0 0 if (content->data[i++] != 'p' && content->data[i] != 'P') continue;
525 0 0 if (content->data[i] != '>') continue;
533 0 0 if (pfound) {
537 0 0 } else if (content) {
553 0 0 hoedown_buffer_put(ob, (const uint8_t *)(displaymode ? "\\[" : "\\("), 2);
555 0 0 hoedown_buffer_put(ob, (const uint8_t *)(displaymode ? "\\]" : "\\)"), 2);
564 7 0 if (level <= state->toc_data.nesting_level) {
567 1 6 if (state->toc_data.current_level == 0)
572 5 2 if (level > state->toc_data.current_level) {
573 5 5 while (level > state->toc_data.current_level) {
577 2 0 } else if (level < state->toc_data.current_level) {
579 3 2 while (level < state->toc_data.current_level) {
589 7 0 if (content) hoedown_buffer_put(ob, content->data, content->size);
597 0 0 if (content && content->size) hoedown_buffer_put(ob, content->data, content->size);
0 0 if (content && content->size) hoedown_buffer_put(ob, content->data, content->size);
606 1 0 if (inline_render)
611 2 1 while (state->toc_data.current_level > 0) {
742 0 6 if (render_flags & HOEDOWN_HTML_SKIP_HTML || render_flags & HOEDOWN_HTML_ESCAPE)