MCPcopy Create free account
hub / github.com/MultiMC/Launcher / parse_paragraph

Function parse_paragraph

libraries/hoedown/src/document.c:1634–1711  ·  view source on GitHub ↗

parse_blockquote • handles parsing of a regular paragraph */

Source from the content-addressed store, hash-verified

1632
1633/* parse_blockquote • handles parsing of a regular paragraph */
1634static size_t
1635parse_paragraph(hoedown_buffer *ob, hoedown_document *doc, uint8_t *data, size_t size)
1636{
1637 hoedown_buffer work = { NULL, 0, 0, 0, NULL, NULL, NULL };
1638 size_t i = 0, end = 0;
1639 int level = 0;
1640
1641 work.data = data;
1642
1643 while (i < size) {
1644 for (end = i + 1; end < size && data[end - 1] != '\n'; end++) /* empty */;
1645
1646 if (is_empty(data + i, size - i))
1647 break;
1648
1649 if ((level = is_headerline(data + i, size - i)) != 0)
1650 break;
1651
1652 if (is_atxheader(doc, data + i, size - i) ||
1653 is_hrule(data + i, size - i) ||
1654 prefix_quote(data + i, size - i)) {
1655 end = i;
1656 break;
1657 }
1658
1659 i = end;
1660 }
1661
1662 work.size = i;
1663 while (work.size && data[work.size - 1] == '\n')
1664 work.size--;
1665
1666 if (!level) {
1667 hoedown_buffer *tmp = newbuf(doc, BUFFER_BLOCK);
1668 parse_inline(tmp, doc, work.data, work.size);
1669 if (doc->md.paragraph)
1670 doc->md.paragraph(ob, tmp, &doc->data);
1671 popbuf(doc, BUFFER_BLOCK);
1672 } else {
1673 hoedown_buffer *header_work;
1674
1675 if (work.size) {
1676 size_t beg;
1677 i = work.size;
1678 work.size -= 1;
1679
1680 while (work.size && data[work.size] != '\n')
1681 work.size -= 1;
1682
1683 beg = work.size + 1;
1684 while (work.size && data[work.size - 1] == '\n')
1685 work.size -= 1;
1686
1687 if (work.size > 0) {
1688 hoedown_buffer *tmp = newbuf(doc, BUFFER_BLOCK);
1689 parse_inline(tmp, doc, work.data, work.size);
1690
1691 if (doc->md.paragraph)

Callers 1

parse_blockFunction · 0.85

Calls 8

is_emptyFunction · 0.85
is_headerlineFunction · 0.85
is_atxheaderFunction · 0.85
is_hruleFunction · 0.85
prefix_quoteFunction · 0.85
newbufFunction · 0.85
parse_inlineFunction · 0.85
popbufFunction · 0.85

Tested by

no test coverage detected