summaryrefslogtreecommitdiff
path: root/test-svn-fe.c
diff options
context:
space:
mode:
authorJonathan Nieder <jrnieder@gmail.com>2011-05-27 09:28:46 (GMT)
committerJonathan Nieder <jrnieder@gmail.com>2011-06-15 07:13:48 (GMT)
commitb747e5675db5e26292c942146a25e1c26440c5f7 (patch)
treedaeabe224170f7d9b0af2d1eff32fec2acd4fb45 /test-svn-fe.c
parentc846e4107876936bed7177a811559bd74a72dcd8 (diff)
downloadgit-b747e5675db5e26292c942146a25e1c26440c5f7.zip
git-b747e5675db5e26292c942146a25e1c26440c5f7.tar.gz
git-b747e5675db5e26292c942146a25e1c26440c5f7.tar.bz2
test-svn-fe: split off "test-svn-fe -d" into a separate function
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>
Diffstat (limited to 'test-svn-fe.c')
-rw-r--r--test-svn-fe.c54
1 files changed, 32 insertions, 22 deletions
diff --git a/test-svn-fe.c b/test-svn-fe.c
index 66bd040..a027626 100644
--- a/test-svn-fe.c
+++ b/test-svn-fe.c
@@ -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;
@@ -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);
}