Skip to content

Commit

Permalink
test-svn-fe: split off "test-svn-fe -d" into a separate function
Browse files Browse the repository at this point in the history
The helper for testing the svndiff library is getting dangerously
close to the right margin.  Split it off into a separate function so
it is easier to contemplate on its own.

In the process, make the test_svnfe_usage[] string static so it can be
shared by the two functions (and other future functions in this test
program) without fuss.

In other words, this just unindents the code a little.  No functional
change intended.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
  • Loading branch information
Jonathan Nieder committed Jun 15, 2011
1 parent c846e41 commit b747e56
Showing 1 changed file with 32 additions and 22 deletions.
54 changes: 32 additions & 22 deletions test-svn-fe.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,37 @@
#include "vcs-svn/sliding_window.h"
#include "vcs-svn/line_buffer.h"

static const char test_svnfe_usage[] =
"test-svn-fe (<dumpfile> | [-d] <preimage> <delta> <len>)";

static int apply_delta(int argc, char *argv[])
{
struct line_buffer preimage = LINE_BUFFER_INIT;
struct line_buffer delta = LINE_BUFFER_INIT;
struct sliding_view preimage_view = SLIDING_VIEW_INIT(&preimage);

if (argc != 5)
usage(test_svnfe_usage);

if (buffer_init(&preimage, argv[2]))
die_errno("cannot open preimage");
if (buffer_init(&delta, argv[3]))
die_errno("cannot open delta");
if (svndiff0_apply(&delta, (off_t) strtoull(argv[4], NULL, 0),
&preimage_view, stdout))
return 1;
if (buffer_deinit(&preimage))
die_errno("cannot close preimage");
if (buffer_deinit(&delta))
die_errno("cannot close delta");
buffer_reset(&preimage);
strbuf_release(&preimage_view.buf);
buffer_reset(&delta);
return 0;
}

int main(int argc, char *argv[])
{
static const char test_svnfe_usage[] =
"test-svn-fe (<dumpfile> | [-d] <preimage> <delta> <len>)";
if (argc == 2) {
if (svndump_init(argv[1]))
return 1;
Expand All @@ -20,25 +47,8 @@ int main(int argc, char *argv[])
svndump_reset();
return 0;
}
if (argc == 5 && !strcmp(argv[1], "-d")) {
struct line_buffer preimage = LINE_BUFFER_INIT;
struct line_buffer delta = LINE_BUFFER_INIT;
struct sliding_view preimage_view = SLIDING_VIEW_INIT(&preimage);
if (buffer_init(&preimage, argv[2]))
die_errno("cannot open preimage");
if (buffer_init(&delta, argv[3]))
die_errno("cannot open delta");
if (svndiff0_apply(&delta, (off_t) strtoull(argv[4], NULL, 0),
&preimage_view, stdout))
return 1;
if (buffer_deinit(&preimage))
die_errno("cannot close preimage");
if (buffer_deinit(&delta))
die_errno("cannot close delta");
buffer_reset(&preimage);
strbuf_release(&preimage_view.buf);
buffer_reset(&delta);
return 0;
}

if (argc >= 2 && !strcmp(argv[1], "-d"))
return apply_delta(argc, argv);
usage(test_svnfe_usage);
}

0 comments on commit b747e56

Please sign in to comment.