Blame cbits/plugin.c

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
}