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 2.683 seconds using v1.01-cache-2.11-cpan-8dfa8b56332 )