MCPcopy Create free account
hub / github.com/PolyMC/PolyMC / hoedown_document_new

Function hoedown_document_new

libraries/hoedown/src/document.c:2735–2802  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2733 **********************/
2734
2735hoedown_document *
2736hoedown_document_new(
2737 const hoedown_renderer *renderer,
2738 hoedown_extensions extensions,
2739 size_t max_nesting)
2740{
2741 hoedown_document *doc = NULL;
2742
2743 assert(max_nesting > 0 && renderer);
2744
2745 doc = hoedown_malloc(sizeof(hoedown_document));
2746 memcpy(&doc->md, renderer, sizeof(hoedown_renderer));
2747
2748 doc->data.opaque = renderer->opaque;
2749
2750 hoedown_stack_init(&doc->work_bufs[BUFFER_BLOCK], 4);
2751 hoedown_stack_init(&doc->work_bufs[BUFFER_SPAN], 8);
2752
2753 memset(doc->active_char, 0x0, 256);
2754
2755 if (extensions & HOEDOWN_EXT_UNDERLINE && doc->md.underline) {
2756 doc->active_char['_'] = MD_CHAR_EMPHASIS;
2757 }
2758
2759 if (doc->md.emphasis || doc->md.double_emphasis || doc->md.triple_emphasis) {
2760 doc->active_char['*'] = MD_CHAR_EMPHASIS;
2761 doc->active_char['_'] = MD_CHAR_EMPHASIS;
2762 if (extensions & HOEDOWN_EXT_STRIKETHROUGH)
2763 doc->active_char['~'] = MD_CHAR_EMPHASIS;
2764 if (extensions & HOEDOWN_EXT_HIGHLIGHT)
2765 doc->active_char['='] = MD_CHAR_EMPHASIS;
2766 }
2767
2768 if (doc->md.codespan)
2769 doc->active_char['`'] = MD_CHAR_CODESPAN;
2770
2771 if (doc->md.linebreak)
2772 doc->active_char['\n'] = MD_CHAR_LINEBREAK;
2773
2774 if (doc->md.image || doc->md.link || doc->md.footnotes || doc->md.footnote_ref)
2775 doc->active_char['['] = MD_CHAR_LINK;
2776
2777 doc->active_char['<'] = MD_CHAR_LANGLE;
2778 doc->active_char['\\'] = MD_CHAR_ESCAPE;
2779 doc->active_char['&'] = MD_CHAR_ENTITY;
2780
2781 if (extensions & HOEDOWN_EXT_AUTOLINK) {
2782 doc->active_char[':'] = MD_CHAR_AUTOLINK_URL;
2783 doc->active_char['@'] = MD_CHAR_AUTOLINK_EMAIL;
2784 doc->active_char['w'] = MD_CHAR_AUTOLINK_WWW;
2785 }
2786
2787 if (extensions & HOEDOWN_EXT_SUPERSCRIPT)
2788 doc->active_char['^'] = MD_CHAR_SUPERSCRIPT;
2789
2790 if (extensions & HOEDOWN_EXT_QUOTE)
2791 doc->active_char['"'] = MD_CHAR_QUOTE;
2792

Callers 1

HoeDownMethod · 0.85

Calls 2

hoedown_mallocFunction · 0.85
hoedown_stack_initFunction · 0.85

Tested by

no test coverage detected