vcs-svn: read instructions from deltas
[gitweb.git] / vcs-svn / svndiff.c
index 175168f599839c4db471540cb0f0759c065b7429..8968fdb4eb7c5d09edc3a865a9639dc9c7cf8491 100644 (file)
 #define VLI_BITS_PER_DIGIT 7
 
 struct window {
+       struct strbuf instructions;
        struct strbuf data;
 };
 
-#define WINDOW_INIT    { STRBUF_INIT }
+#define WINDOW_INIT    { STRBUF_INIT, STRBUF_INIT }
 
 static void window_release(struct window *ctx)
 {
+       strbuf_release(&ctx->instructions);
        strbuf_release(&ctx->data);
 }
 
@@ -124,7 +126,8 @@ static int apply_one_window(struct line_buffer *delta, off_t *delta_len)
        /* "source view" offset and length already handled; */
        if (read_length(delta, &out_len, delta_len) ||
            read_length(delta, &instructions_len, delta_len) ||
-           read_length(delta, &data_len, delta_len))
+           read_length(delta, &data_len, delta_len) ||
+           read_chunk(delta, delta_len, &ctx.instructions, instructions_len))
                goto error_out;
        if (instructions_len) {
                error("What do you think I am?  A delta applier?");