diff options
author | Jeff King <peff@peff.net> | 2014-06-18 15:49:44 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-06-20 10:45:18 -0700 |
commit | d12c24d2a96f8f9aeb100b800d8fb217f28a6a2a (patch) | |
tree | b2e8919e3bf4e902d41ee87a3f521639eca8784d | |
parent | fast-import: use skip_prefix for parsing input (diff) | |
download | tgif-d12c24d2a96f8f9aeb100b800d8fb217f28a6a2a.tar.xz |
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>
-rw-r--r-- | daemon.c | 11 |
1 files changed, 6 insertions, 5 deletions
@@ -626,15 +626,16 @@ static int execute(void) for (i = 0; i < ARRAY_SIZE(daemon_service); i++) { struct daemon_service *s = &(daemon_service[i]); - int namelen = strlen(s->name); - if (starts_with(line, "git-") && - !strncmp(s->name, line + 4, namelen) && - line[namelen + 4] == ' ') { + const char *arg; + + if (skip_prefix(line, "git-", &arg) && + skip_prefix(arg, s->name, &arg) && + *arg++ == ' ') { /* * Note: The directory here is probably context sensitive, * and might depend on the actual service being performed. */ - return run_service(line + namelen + 5, s); + return run_service(arg, s); } } |