aboutsummaryrefslogtreecommitdiffstats
path: root/builtin/unpack-objects.c
diff options
context:
space:
mode:
Diffstat (limited to 'builtin/unpack-objects.c')
-rw-r--r--builtin/unpack-objects.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/builtin/unpack-objects.c b/builtin/unpack-objects.c
index 08fa2a7a74..3161447274 100644
--- a/builtin/unpack-objects.c
+++ b/builtin/unpack-objects.c
@@ -15,6 +15,7 @@
#include "progress.h"
#include "decorate.h"
#include "fsck.h"
+#include "packfile.h"
static int dry_run, quiet, recover, has_errors, strict;
static const char unpack_usage[] = "git unpack-objects [-n] [-q] [-r] [--strict]";
@@ -639,18 +640,9 @@ int cmd_unpack_objects(int argc, const char **argv, const char *prefix UNUSED)
continue;
}
if (starts_with(arg, "--pack_header=")) {
- struct pack_header *hdr;
- char *c;
-
- hdr = (struct pack_header *)buffer;
- hdr->hdr_signature = htonl(PACK_SIGNATURE);
- hdr->hdr_version = htonl(strtoul(arg + 14, &c, 10));
- if (*c != ',')
- die("bad %s", arg);
- hdr->hdr_entries = htonl(strtoul(c + 1, &c, 10));
- if (*c)
- die("bad %s", arg);
- len = sizeof(*hdr);
+ if (parse_pack_header_option(arg + 14,
+ buffer, &len) < 0)
+ die(_("bad %s"), arg);
continue;
}
if (skip_prefix(arg, "--max-input-size=", &arg)) {