Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
manifest: add a function to emit directly to a file descriptor
Baptiste Daroussin committed 2 years ago
commit 79716e00947185596fe05eefa1653399134a8471
parent 1196c78
2 files changed +17 -0
modified libpkg/private/pkg.h
@@ -719,6 +719,8 @@ int pkg_emit_filelist(struct pkg *, FILE *);

bool ucl_object_emit_buf(const ucl_object_t *obj, enum ucl_emitter emit_type,
    xstring **buf);
+
bool ucl_object_emit_fd(const ucl_object_t *obj, enum ucl_emitter emit_type,
+
    int fd);
bool ucl_object_emit_file(const ucl_object_t *obj, enum ucl_emitter emit_type,
    FILE *);

modified libpkg/utils.c
@@ -565,6 +565,21 @@ ucl_object_emit_file(const ucl_object_t *obj, enum ucl_emitter emit_type,
}

bool
+
ucl_object_emit_fd(const ucl_object_t *obj, enum ucl_emitter emit_type, int fd)
+
{
+
	struct ucl_emitter_functions *f = ucl_object_emit_fd_funcs(fd);
+
	bool ret = false;
+

+
	if (obj == NULL)
+
		return (false);
+
	ret = ucl_object_emit_full(obj, emit_type, f, NULL);
+
	ucl_object_emit_funcs_free(f);
+

+
	return (ret);
+
}
+

+

+
bool
ucl_object_emit_buf(const ucl_object_t *obj, enum ucl_emitter emit_type,
                     xstring **buf)
{