fix JSON
This commit is contained in:
parent
c31dc7166f
commit
cba368128d
34
main.c
34
main.c
|
@ -188,6 +188,25 @@ sql_escape_len(unsigned int len, char *txt)
|
|||
return buf;
|
||||
}
|
||||
|
||||
static char *
|
||||
json_escape_len(unsigned int len, char *txt)
|
||||
{
|
||||
static char buf[0x1000];
|
||||
char *p;
|
||||
unsigned int i;
|
||||
|
||||
p = buf;
|
||||
for (i = 0; i < len && *txt; i++)
|
||||
{
|
||||
if (*txt == '"')
|
||||
*p++ = '\\';
|
||||
*p++ = *txt++;
|
||||
}
|
||||
*p = '\0';
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
||||
#ifdef HAVE_SQLITE3
|
||||
|
||||
#define EXEC(xx) if (sqlite3_exec(db, xx, NULL, NULL, &error) != SQLITE_OK) \
|
||||
|
@ -376,18 +395,21 @@ json(struct epg *epg __attribute__((unused)),
|
|||
DECOMPRESS(d->content.d77.name, d->content.d77.namelen);
|
||||
DECOMPRESS(d->content.d77.text, d->content.d77.textlen);
|
||||
|
||||
printf(",\n \"name\": \"%.*s\"",
|
||||
d->content.d77.namelen, d->content.d77.name);
|
||||
printf(",\n \"text\": \"%.*s\"",
|
||||
d->content.d77.textlen, d->content.d77.text);
|
||||
printf(",\n \"name\": \"%s\"",
|
||||
json_escape_len(d->content.d77.namelen,
|
||||
d->content.d77.name));
|
||||
printf(",\n \"text\": \"%s\"",
|
||||
json_escape_len(d->content.d77.textlen,
|
||||
d->content.d77.text));
|
||||
}
|
||||
if (ds[PARSER_USER_DEFINED])
|
||||
{
|
||||
struct descriptor *d = ds[PARSER_USER_DEFINED];
|
||||
DECOMPRESS(d->content.d137.warning, d->content.d137.warninglen);
|
||||
|
||||
printf(",\n \"warning\": \"%.*s\"",
|
||||
d->content.d137.warninglen, d->content.d137.warning);
|
||||
printf(",\n \"warning\": \"%s\"",
|
||||
json_escape_len(d->content.d137.warninglen,
|
||||
d->content.d137.warning));
|
||||
}
|
||||
if (ds[PARSER_CONTENT])
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue