index-pack, unpack-objects: use skip_prefix to avoid magic number

When parsing --pack_header=, we manually skip 14 bytes to the data.
Let's use skip_prefix() to do this automatically.

Note that we overwrite our pointer to the front of the string, so we
have to add more context to the error message. We could avoid this by
declaring an extra pointer to hold the value, but I think the modified
message is actually preferable; it should give translators a bit more
context.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Jeff King 2025-01-19 08:25:53 -05:00 committed by Junio C Hamano
parent f1299bff26
commit 98046591b9
2 changed files with 6 additions and 6 deletions

View File

@ -1802,11 +1802,11 @@ int cmd_index_pack(int argc, const char **argv, const char *prefix)
warning(_("no threads support, ignoring %s"), arg);
nr_threads = 1;
}
} else if (starts_with(arg, "--pack_header=")) {
if (parse_pack_header_option(arg + 14,
} else if (skip_prefix(arg, "--pack_header=", &arg)) {
if (parse_pack_header_option(arg,
input_buffer,
&input_len) < 0)
die(_("bad %s"), arg);
die(_("bad --pack_header: %s"), arg);
} else if (!strcmp(arg, "-v")) {
verbose = 1;
} else if (!strcmp(arg, "--progress-title")) {

View File

@ -640,10 +640,10 @@ int cmd_unpack_objects(int argc, const char **argv, const char *prefix UNUSED)
fsck_set_msg_types(&fsck_options, arg);
continue;
}
if (starts_with(arg, "--pack_header=")) {
if (parse_pack_header_option(arg + 14,
if (skip_prefix(arg, "--pack_header=", &arg)) {
if (parse_pack_header_option(arg,
buffer, &len) < 0)
die(_("bad %s"), arg);
die(_("bad --pack_header: %s"), arg);
continue;
}
if (skip_prefix(arg, "--max-input-size=", &arg)) {