Eshu
view release on metacpan or search on metacpan
include/eshu_json.h view on Meta::CPAN
* ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ */
static char *eshu_indent_json(const char *src, size_t src_len,
const eshu_config_t *cfg, size_t *out_len)
{
eshu_buf_t out;
const char *p = src;
const char *end = src + src_len;
int depth = 0;
/* skip UTF-8 BOM */
if (src_len >= 3 &&
(unsigned char)p[0] == 0xEF &&
(unsigned char)p[1] == 0xBB &&
(unsigned char)p[2] == 0xBF)
p += 3;
eshu_buf_init(&out, src_len + 512);
while (p < end) {
/* skip inter-token whitespace */
include/eshu_json.h view on Meta::CPAN
/* ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
* JSON / JSONC highlighter
* ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ */
static char *eshu_highlight_json(const char *src, size_t src_len, size_t *out_len) {
eshu_buf_t out;
const char *p = src;
const char *end = src + src_len;
const char *plain = p;
/* skip UTF-8 BOM */
if (src_len >= 3 &&
(unsigned char)p[0] == 0xEF &&
(unsigned char)p[1] == 0xBB &&
(unsigned char)p[2] == 0xBF) {
plain = p += 3;
}
eshu_buf_init(&out, src_len * 2 + 64);
#define JSON_FLUSH(upto) eshu_hl_flush(&out, plain, (upto))
( run in 1.098 second using v1.01-cache-2.11-cpan-8dfa8b56332 )