daemon: use skip_prefix to avoid magic numbers
Like earlier cases, we can use skip_prefix to avoid magic numbers that must match the length of starts_with prefixes. However, the numbers are a little more complicated here, as we keep parsing past the prefix. We can solve it by keeping a running pointer as we parse; its final value is the location we want. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
97313bef2a
commit
d12c24d2a9
11
daemon.c
11
daemon.c
@ -626,15 +626,16 @@ static int execute(void)
|
|||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(daemon_service); i++) {
|
for (i = 0; i < ARRAY_SIZE(daemon_service); i++) {
|
||||||
struct daemon_service *s = &(daemon_service[i]);
|
struct daemon_service *s = &(daemon_service[i]);
|
||||||
int namelen = strlen(s->name);
|
const char *arg;
|
||||||
if (starts_with(line, "git-") &&
|
|
||||||
!strncmp(s->name, line + 4, namelen) &&
|
if (skip_prefix(line, "git-", &arg) &&
|
||||||
line[namelen + 4] == ' ') {
|
skip_prefix(arg, s->name, &arg) &&
|
||||||
|
*arg++ == ' ') {
|
||||||
/*
|
/*
|
||||||
* Note: The directory here is probably context sensitive,
|
* Note: The directory here is probably context sensitive,
|
||||||
* and might depend on the actual service being performed.
|
* and might depend on the actual service being performed.
|
||||||
*/
|
*/
|
||||||
return run_service(line + namelen + 5, s);
|
return run_service(arg, s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user