コード例 #1
0
ファイル: test_json.c プロジェクト: chenz/libusual
static const char *rerender_opts(const char *json, int opts)
{
	struct JsonContext *ctx;
	struct JsonValue *obj;
	static char buf[1024];
	struct MBuf dst;

	memset(buf, 0, sizeof buf);
	mbuf_init_fixed_writer(&dst, buf, sizeof(buf));

	ctx = json_new_context(NULL, 128);
	json_set_options(ctx, opts);
	obj = json_parse(ctx, json, strlen(json));
	if (!obj) {
		snprintf(buf, sizeof(buf), "EPARSE: %s", json_strerror(ctx));
		json_free_context(ctx);
		return buf;
	}
	if (!json_render(&dst, obj))
		return "ERENDER";
	if (!mbuf_write_byte(&dst, 0))
		return "ENUL";
	json_free_context(ctx);
	return buf;
}
コード例 #2
0
ファイル: test_json.c プロジェクト: chenz/libusual
static const char *render(struct JsonValue *obj)
{
	static char buf[1024];
	struct MBuf dst;
	mbuf_init_fixed_writer(&dst, buf, sizeof(buf));
	if (!json_render(&dst, obj))
		return "ERENDER";
	if (!mbuf_write_byte(&dst, 0))
		return "EMEM";
	return buf;
}
コード例 #3
0
ファイル: test_string.c プロジェクト: dimitri/libusual
static const char *lshow(const struct StrList *sl)
{
	static char buf[128];
	bool ok;
	struct MBuf mb;
	mbuf_init_fixed_writer(&mb, buf, sizeof(buf));
	ok = strlist_foreach(sl, slshow, &mb);
	if (!ok) return "FAIL";
	ok = mbuf_write_byte(&mb, 0);
	if (!ok) return "FAIL";
	return buf;
}