MCPcopy Create free account
hub / github.com/commonmark/cmark / cmark_reference_create

Function cmark_reference_create

src/references.c:47–72  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

45}
46
47void cmark_reference_create(cmark_reference_map *map, cmark_chunk *label,
48 cmark_chunk *url, cmark_chunk *title) {
49 cmark_reference *ref;
50 unsigned char *reflabel = normalize_reference(map->mem, label);
51
52 /* empty reference name, or composed from only whitespace */
53 if (reflabel == NULL)
54 return;
55
56 assert(map->sorted == NULL);
57
58 ref = (cmark_reference *)map->mem->calloc(1, sizeof(*ref));
59 ref->label = reflabel;
60 ref->url = cmark_clean_url(map->mem, url);
61 ref->title = cmark_clean_title(map->mem, title);
62 ref->age = map->size;
63 ref->next = map->refs;
64
65 if (ref->url != NULL)
66 ref->size += (int)strlen((char*)ref->url);
67 if (ref->title != NULL)
68 ref->size += (int)strlen((char*)ref->title);
69
70 map->refs = ref;
71 map->size++;
72}
73
74static int
75labelcmp(const unsigned char *a, const unsigned char *b) {

Callers 1

Calls 3

normalize_referenceFunction · 0.85
cmark_clean_urlFunction · 0.85
cmark_clean_titleFunction · 0.85

Tested by

no test coverage detected