[PATCH 11/16] daemon: use skip_prefix to avoid magic numbers
- From
Jeff King <peff@peff.net>
- Date
- Jun 18, 2014, 19:49 UTC
- Message-ID
- <20140618194944.GK22622@sigill.intra.peff.net>
- In-Reply-To
- <20140618194117.GA22269@sigill.intra.peff.net>
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> --- daemon.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/daemon.c b/daemon.c index 6d25828..1eb6631 100644 --- a/daemon.c +++ b/daemon.c @@ -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); } }
-- 2.0.0.566.gfe3e6b2