size_t len;
int i;
- fp = pipe_feed("%s", (const void **)data_ascii, DATA_LINES);
+ fp = pipe_feed(PIPE_DATA_ASCII, (const void **)data_ascii, DATA_LINES);
for (i = 0; i < DATA_LINES; i++) {
char *str = fgetln(fp, &len);
files[i].lines = reallocarray(NULL, LINE_COUNT, sizeof(char *));
files[i].lines[0] = str;
files[i].lines[1] = str;
- files[i].fp = pipe_feed("%s", files[i].lines, LINE_COUNT);
+ files[i].fp = pipe_feed(PIPE_DATA_ASCII, files[i].lines, LINE_COUNT);
}
for (l = 0; l < LINE_COUNT; l++) {
size_t len;
int i;
- fp = pipe_feed("%ls", (const void **)data_wide, DATA_LINES);
+ fp = pipe_feed(PIPE_DATA_WIDE, (const void **)data_wide, DATA_LINES);
for (i = 0; i < DATA_LINES; i++) {
wchar_t *wstr;
files[i].lines = reallocarray(NULL, LINE_COUNT, sizeof(char *));
files[i].lines[0] = wstr;
files[i].lines[1] = wstr;
- files[i].fp = pipe_feed("%ls", files[i].lines, LINE_COUNT);
+ files[i].fp = pipe_feed(PIPE_DATA_WIDE, files[i].lines, LINE_COUNT);
}
for (l = 0; l < LINE_COUNT; l++) {
FILE *fp;
size_t i, len, lineno = 0;
- fp = pipe_feed("%s", (const void **)data_test, TEST_LINES);
+ fp = pipe_feed(PIPE_DATA_ASCII, (const void **)data_test, TEST_LINES);
for (i = 0; i < EXPECT_LINES; i++) {
char *str = fparseln(fp, &len, &lineno, NULL, flags);
#include <sys/wait.h>
#include <assert.h>
#include <unistd.h>
+#include <wchar.h>
#include <stdio.h>
#include "test-stream.h"
FILE *
-pipe_feed(const char *fmt, const void **buf, int buf_nmemb)
+pipe_feed(enum pipe_data_mode mode, const void **buf, int buf_nmemb)
{
FILE *fp;
int rc;
assert(fp);
for (line = 0; line < buf_nmemb; line++) {
- rc = fprintf(fp, fmt, buf[line]);
+ if (mode == PIPE_DATA_ASCII)
+ rc = fprintf(fp, "%s", (const char *)buf[line]);
+ else
+ rc = fprintf(fp, "%ls", (const wchar_t *)buf[line]);
assert(rc >= 0);
}