The function was used only in the tests, remove it.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
virBufferCurrentContent;
virBufferError;
virBufferEscape;
-virBufferEscapeN;
virBufferEscapeRegex;
virBufferEscapeSexpr;
virBufferEscapeShell;
}
-struct virBufferEscapePair {
- char escape;
- char *toescape;
-};
-
-
-/**
- * virBufferEscapeN:
- * @buf: the buffer to append to
- * @format: a printf like format string but with only one %s parameter
- * @str: the string argument which needs to be escaped
- * @...: the variable list of escape pairs
- *
- * The variable list of arguments @... must be composed of
- * 'char escape, char *toescape' pairs followed by NULL.
- *
- * This has the same functionality as virBufferEscape with the extension
- * that allows to specify multiple pairs of chars that needs to be escaped.
- */
-void
-virBufferEscapeN(virBufferPtr buf,
- const char *format,
- const char *str,
- ...)
-{
- int len;
- size_t i;
- VIR_AUTOFREE(char *) escaped = NULL;
- char *out;
- const char *cur;
- struct virBufferEscapePair escapeItem;
- struct virBufferEscapePair *escapeList = NULL;
- size_t nescapeList = 0;
- va_list ap;
-
- if ((format == NULL) || (buf == NULL) || (str == NULL))
- return;
-
- if (buf->error)
- return;
-
- len = strlen(str);
-
- va_start(ap, str);
-
- while ((escapeItem.escape = va_arg(ap, int))) {
- if (!(escapeItem.toescape = va_arg(ap, char *))) {
- virBufferSetError(buf, errno);
- goto cleanup;
- }
-
- if (strcspn(str, escapeItem.toescape) == len)
- continue;
-
- if (VIR_APPEND_ELEMENT_QUIET(escapeList, nescapeList, escapeItem) < 0) {
- virBufferSetError(buf, errno);
- goto cleanup;
- }
- }
-
- if (nescapeList == 0) {
- virBufferAsprintf(buf, format, str);
- goto cleanup;
- }
-
- if (xalloc_oversized(2, len) ||
- VIR_ALLOC_N_QUIET(escaped, 2 * len + 1) < 0) {
- virBufferSetError(buf, errno);
- goto cleanup;
- }
-
- cur = str;
- out = escaped;
- while (*cur != 0) {
- for (i = 0; i < nescapeList; i++) {
- if (strchr(escapeList[i].toescape, *cur)) {
- *out++ = escapeList[i].escape;
- break;
- }
- }
- *out++ = *cur;
- cur++;
- }
- *out = 0;
-
- virBufferAsprintf(buf, format, escaped);
-
- cleanup:
- va_end(ap);
- VIR_FREE(escapeList);
-}
-
-
/**
* virBufferURIEncodeString:
* @buf: the buffer to append to
void virBufferEscape(virBufferPtr buf, char escape, const char *toescape,
const char *format, const char *str);
-void virBufferEscapeN(virBufferPtr buf, const char *format,
- const char *str, ...);
void virBufferEscapeString(virBufferPtr buf, const char *format,
const char *str);
void virBufferEscapeSexpr(virBufferPtr buf, const char *format,
}
-static int
-testBufEscapeN(const void *opaque)
-{
- const struct testBufAddStrData *data = opaque;
- virBuffer buf = VIR_BUFFER_INITIALIZER;
- char *actual;
- int ret = -1;
-
- virBufferEscapeN(&buf, "%s", data->data, '\\', "=", ',', ",", NULL);
-
- if (!(actual = virBufferContentAndReset(&buf))) {
- VIR_TEST_DEBUG("testBufEscapeN: buf is empty");
- goto cleanup;
- }
-
- if (STRNEQ_NULLABLE(actual, data->expect)) {
- VIR_TEST_DEBUG("testBufEscapeN: Strings don't match:\n");
- virTestDifference(stderr, data->expect, actual);
- goto cleanup;
- }
-
- ret = 0;
-
- cleanup:
- VIR_FREE(actual);
- return ret;
-}
-
-
static int
testBufEscapeRegex(const void *opaque)
{
DO_TEST_ESCAPE("\x01\x01\x02\x03\x05\x08",
"<c>\n <el></el>\n</c>");
-#define DO_TEST_ESCAPEN(data, expect) \
- do { \
- struct testBufAddStrData info = { data, expect }; \
- if (virTestRun("Buf: EscapeN", testBufEscapeN, &info) < 0) \
- ret = -1; \
- } while (0)
-
- DO_TEST_ESCAPEN("noescape", "noescape");
- DO_TEST_ESCAPEN("comma,escape", "comma,,escape");
- DO_TEST_ESCAPEN("equal=escape", "equal\\=escape");
- DO_TEST_ESCAPEN("comma,equal=escape", "comma,,equal\\=escape");
-
#define DO_TEST_ESCAPE_REGEX(data, expect) \
do { \
struct testBufAddStrData info = { data, expect }; \