/* | |
* test-line-buffer.c: code to exercise the svn importer's input helper | |
* | |
* Input format: | |
* number NL | |
* (number bytes) NL | |
* number NL | |
* ... | |
*/ | |
#include "git-compat-util.h" | |
#include "vcs-svn/line_buffer.h" | |
static uint32_t strtouint32(const char *s) | |
{ | |
char *end; | |
uintmax_t n = strtoumax(s, &end, 10); | |
if (*s == '\0' || *end != '\0') | |
die("invalid count: %s", s); | |
return (uint32_t) n; | |
} | |
int main(int argc, char *argv[]) | |
{ | |
char *s; | |
if (argc != 1) | |
usage("test-line-buffer < input.txt"); | |
if (buffer_init(NULL)) | |
die_errno("open error"); | |
while ((s = buffer_read_line())) { | |
s = buffer_read_string(strtouint32(s)); | |
fputs(s, stdout); | |
fputc('\n', stdout); | |
buffer_skip_bytes(1); | |
if (!(s = buffer_read_line())) | |
break; | |
buffer_copy_bytes(strtouint32(s) + 1); | |
} | |
if (buffer_deinit()) | |
die("input error"); | |
if (ferror(stdout)) | |
die("output error"); | |
buffer_reset(); | |
return 0; | |
} |