aboutsummaryrefslogtreecommitdiff
path: root/src/references.h
blob: e3824e78f49a94980633ed463d209bdc15e397ed (plain)
  1. #ifndef CMARK_REFERENCES_H
  2. #define CMARK_REFERENCES_H
  3. #include "chunk.h"
  4. #include "ast.h"
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8. #define REFMAP_SIZE 16
  9. struct cmark_reference {
  10. struct cmark_reference *next;
  11. unsigned char *label;
  12. unsigned char *url;
  13. unsigned char *title;
  14. unsigned int hash;
  15. };
  16. typedef struct cmark_reference cmark_reference;
  17. struct cmark_reference_map {
  18. cmark_reference *table[REFMAP_SIZE];
  19. };
  20. typedef struct cmark_reference_map cmark_reference_map;
  21. cmark_reference_map *cmark_reference_map_new(void);
  22. void cmark_reference_map_free(cmark_reference_map *map);
  23. cmark_reference* cmark_reference_lookup(cmark_reference_map *map, cmark_chunk *label);
  24. extern void cmark_reference_create(cmark_reference_map *map, cmark_chunk *label, cmark_chunk *url, cmark_chunk *title);
  25. #ifndef CMARK_NO_SHORT_NAMES
  26. #define reference cmark_reference
  27. #define reference_map cmark_reference_map
  28. #define reference_map_new cmark_reference_map_new
  29. #define reference_map_free cmark_reference_map_free
  30. #define reference_lookup cmark_reference_lookup
  31. #define reference_create cmark_reference_create
  32. #endif
  33. #ifdef __cplusplus
  34. }
  35. #endif
  36. #endif