buf->indent += indent;
}
+
+/**
+ * virBufferSetIndent:
+ * @buf: the buffer
+ * @indent: new indentation size.
+ *
+ * Set the auto-indent value to @indent. See virBufferAdjustIndent on how auto
+ * indentation is applied.
+ */
+void
+virBufferSetIndent(virBufferPtr buf, int indent)
+{
+ if (!buf || buf->error)
+ return;
+
+ buf->indent = indent;
+}
+
+
/**
* virBufferGetIndent:
* @buf: the buffer
virBufferAdd(buf_, "" literal_string_ "", sizeof(literal_string_) - 1)
void virBufferAdjustIndent(virBufferPtr buf, int indent);
+void virBufferSetIndent(virBufferPtr, int indent);
+
int virBufferGetIndent(const virBuffer *buf, bool dynamic);
void virBufferTrim(virBufferPtr buf, const char *trim, int len);
}
+static int
+testBufSetIndent(const void *opaque ATTRIBUTE_UNUSED)
+{
+ virBuffer buf = VIR_BUFFER_INITIALIZER;
+ char *actual;
+ int ret = -1;
+
+ virBufferSetIndent(&buf, 11);
+ virBufferAddLit(&buf, "test\n");
+ virBufferSetIndent(&buf, 2);
+ virBufferAddLit(&buf, "test2\n");
+
+ if (!(actual = virBufferContentAndReset(&buf)))
+ goto cleanup;
+
+ if (STRNEQ(actual, " test\n test2\n")) {
+ VIR_TEST_DEBUG("testBufSetIndent: expected indent not set\n");
+ goto cleanup;
+ }
+
+ ret = 0;
+
+ cleanup:
+ VIR_FREE(actual);
+ return ret;
+}
+
+
static int
mymain(void)
{
DO_TEST("Auto-indentation", testBufAutoIndent, 0);
DO_TEST("Trim", testBufTrim, 0);
DO_TEST("AddBuffer", testBufAddBuffer, 0);
+ DO_TEST("set indent", testBufSetIndent, 0);
#define DO_TEST_ADD_STR(DATA, EXPECT) \
do { \