52 lines
1.5 KiB
C
52 lines
1.5 KiB
C
|
#ifndef CMARK_HOUDINI_H
|
||
|
#define CMARK_HOUDINI_H
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
#include <stdint.h>
|
||
|
#include "config.h"
|
||
|
#include "buffer.h"
|
||
|
|
||
|
#ifdef HAVE___BUILTIN_EXPECT
|
||
|
#define likely(x) __builtin_expect((x), 1)
|
||
|
#define unlikely(x) __builtin_expect((x), 0)
|
||
|
#else
|
||
|
#define likely(x) (x)
|
||
|
#define unlikely(x) (x)
|
||
|
#endif
|
||
|
|
||
|
#ifdef HOUDINI_USE_LOCALE
|
||
|
#define _isxdigit(c) isxdigit(c)
|
||
|
#define _isdigit(c) isdigit(c)
|
||
|
#else
|
||
|
/*
|
||
|
* Helper _isdigit methods -- do not trust the current locale
|
||
|
* */
|
||
|
#define _isxdigit(c) (strchr("0123456789ABCDEFabcdef", (c)) != NULL)
|
||
|
#define _isdigit(c) ((c) >= '0' && (c) <= '9')
|
||
|
#endif
|
||
|
|
||
|
#define HOUDINI_ESCAPED_SIZE(x) (((x)*12) / 10)
|
||
|
#define HOUDINI_UNESCAPED_SIZE(x) (x)
|
||
|
|
||
|
extern bufsize_t houdini_unescape_ent(cmark_strbuf *ob, const uint8_t *src,
|
||
|
bufsize_t size);
|
||
|
extern int houdini_escape_html(cmark_strbuf *ob, const uint8_t *src,
|
||
|
bufsize_t size);
|
||
|
extern int houdini_escape_html0(cmark_strbuf *ob, const uint8_t *src,
|
||
|
bufsize_t size, int secure);
|
||
|
extern int houdini_unescape_html(cmark_strbuf *ob, const uint8_t *src,
|
||
|
bufsize_t size);
|
||
|
extern void houdini_unescape_html_f(cmark_strbuf *ob, const uint8_t *src,
|
||
|
bufsize_t size);
|
||
|
extern int houdini_escape_href(cmark_strbuf *ob, const uint8_t *src,
|
||
|
bufsize_t size);
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif
|