use skip_prefix to avoid magic numbers
It's a common idiom to match a prefix and then skip past it with a magic number, like: if (starts_with(foo, "bar")) foo += 3; This is easy to get wrong, since you have to count the prefix string yourself, and there's no compiler check if the string changes. We can use skip_prefix to avoid the magic numbers here. Note that some of these conversions could be much shorter. For example: if (starts_with(arg, "--foo=")) { bar = arg + 6; continue; } could become: if (skip_prefix(arg, "--foo=", &bar)) continue; However, I have left it as: if (skip_prefix(arg, "--foo=", &v)) { bar = v; continue; } to visually match nearby cases which need to actually process the string. Like: if (skip_prefix(arg, "--foo=", &v)) { bar = atoi(v); continue; } Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
21a2d4ada5
commit
ae021d8791
@ -319,18 +319,19 @@ static int find_common(struct fetch_pack_args *args,
|
||||
|
||||
if (args->depth > 0) {
|
||||
char *line;
|
||||
const char *arg;
|
||||
unsigned char sha1[20];
|
||||
|
||||
send_request(args, fd[1], &req_buf);
|
||||
while ((line = packet_read_line(fd[0], NULL))) {
|
||||
if (starts_with(line, "shallow ")) {
|
||||
if (get_sha1_hex(line + 8, sha1))
|
||||
if (skip_prefix(line, "shallow ", &arg)) {
|
||||
if (get_sha1_hex(arg, sha1))
|
||||
die("invalid shallow line: %s", line);
|
||||
register_shallow(sha1);
|
||||
continue;
|
||||
}
|
||||
if (starts_with(line, "unshallow ")) {
|
||||
if (get_sha1_hex(line + 10, sha1))
|
||||
if (skip_prefix(line, "unshallow ", &arg)) {
|
||||
if (get_sha1_hex(arg, sha1))
|
||||
die("invalid unshallow line: %s", line);
|
||||
if (!lookup_object(sha1))
|
||||
die("object not found: %s", line);
|
||||
|
Reference in New Issue
Block a user