|
Packit |
1f51f5 |
#include <stdlib.h>
|
|
Packit |
1f51f5 |
|
|
Packit |
1f51f5 |
#include "plugin.h"
|
|
Packit |
1f51f5 |
|
|
Packit |
1f51f5 |
extern cmark_mem CMARK_DEFAULT_MEM_ALLOCATOR;
|
|
Packit |
1f51f5 |
|
|
Packit |
1f51f5 |
int cmark_plugin_register_syntax_extension(cmark_plugin * plugin,
|
|
Packit |
1f51f5 |
cmark_syntax_extension * extension) {
|
|
Packit |
1f51f5 |
plugin->syntax_extensions = cmark_llist_append(&CMARK_DEFAULT_MEM_ALLOCATOR, plugin->syntax_extensions, extension);
|
|
Packit |
1f51f5 |
return 1;
|
|
Packit |
1f51f5 |
}
|
|
Packit |
1f51f5 |
|
|
Packit |
1f51f5 |
cmark_plugin *
|
|
Packit |
1f51f5 |
cmark_plugin_new(void) {
|
|
Packit |
1f51f5 |
cmark_plugin *res = (cmark_plugin *) CMARK_DEFAULT_MEM_ALLOCATOR.calloc(1, sizeof(cmark_plugin));
|
|
Packit |
1f51f5 |
|
|
Packit |
1f51f5 |
res->syntax_extensions = NULL;
|
|
Packit |
1f51f5 |
|
|
Packit |
1f51f5 |
return res;
|
|
Packit |
1f51f5 |
}
|
|
Packit |
1f51f5 |
|
|
Packit |
1f51f5 |
void
|
|
Packit |
1f51f5 |
cmark_plugin_free(cmark_plugin *plugin) {
|
|
Packit |
1f51f5 |
cmark_llist_free_full(&CMARK_DEFAULT_MEM_ALLOCATOR,
|
|
Packit |
1f51f5 |
plugin->syntax_extensions,
|
|
Packit |
1f51f5 |
(cmark_free_func) cmark_syntax_extension_free);
|
|
Packit |
1f51f5 |
CMARK_DEFAULT_MEM_ALLOCATOR.free(plugin);
|
|
Packit |
1f51f5 |
}
|
|
Packit |
1f51f5 |
|
|
Packit |
1f51f5 |
cmark_llist *
|
|
Packit |
1f51f5 |
cmark_plugin_steal_syntax_extensions(cmark_plugin *plugin) {
|
|
Packit |
1f51f5 |
cmark_llist *res = plugin->syntax_extensions;
|
|
Packit |
1f51f5 |
|
|
Packit |
1f51f5 |
plugin->syntax_extensions = NULL;
|
|
Packit |
1f51f5 |
return res;
|
|
Packit |
1f51f5 |
}
|