Message ID | 0a4dfbcc-9eb5-6b39-6b93-0014f5c475de@web.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | shell: use skip_prefix() instead of starts_with() | expand |
On Tue, Nov 26, 2019 at 04:00:43PM +0100, René Scharfe wrote: > Get rid of a magic number by using skip_prefix() instead of > starts_with(). > > Signed-off-by: René Scharfe <l.s.r@web.de> > --- > shell.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/shell.c b/shell.c > index 40084a3013..54cca7439d 100644 > --- a/shell.c > +++ b/shell.c > @@ -16,10 +16,10 @@ static int do_generic_cmd(const char *me, char *arg) > setup_path(); > if (!arg || !(arg = sq_dequote(arg)) || *arg == '-') > die("bad argument"); > - if (!starts_with(me, "git-")) > + if (!skip_prefix(me, "git-", &me)) > die("bad command"); > > - my_argv[0] = me + 4; > + my_argv[0] = me; > my_argv[1] = arg; > my_argv[2] = NULL; The context makes this look obviously correct, but one thing to watch out for in these skip_prefix() conversions is that the value of "me" is now mutated. This one is fine, because nobody else looks at "me" after this (knowing you, I am pretty sure you checked that already, but I am making a mental note to myself and others as we review these). -Peff
Am 26.11.19 um 16:56 schrieb Jeff King: > On Tue, Nov 26, 2019 at 04:00:43PM +0100, René Scharfe wrote: > >> Get rid of a magic number by using skip_prefix() instead of >> starts_with(). >> >> Signed-off-by: René Scharfe <l.s.r@web.de> >> --- >> shell.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/shell.c b/shell.c >> index 40084a3013..54cca7439d 100644 >> --- a/shell.c >> +++ b/shell.c >> @@ -16,10 +16,10 @@ static int do_generic_cmd(const char *me, char *arg) >> setup_path(); >> if (!arg || !(arg = sq_dequote(arg)) || *arg == '-') >> die("bad argument"); >> - if (!starts_with(me, "git-")) >> + if (!skip_prefix(me, "git-", &me)) >> die("bad command"); >> >> - my_argv[0] = me + 4; >> + my_argv[0] = me; >> my_argv[1] = arg; >> my_argv[2] = NULL; > > The context makes this look obviously correct, but one thing to watch > out for in these skip_prefix() conversions is that the value of "me" is > now mutated. Ah, the one time I didn't use --function-context.. It would have looked like this: --- shell.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shell.c b/shell.c index 40084a3013..54cca7439d 100644 --- a/shell.c +++ b/shell.c @@ -12,16 +12,16 @@ static int do_generic_cmd(const char *me, char *arg) { const char *my_argv[4]; setup_path(); if (!arg || !(arg = sq_dequote(arg)) || *arg == '-') die("bad argument"); - if (!starts_with(me, "git-")) + if (!skip_prefix(me, "git-", &me)) die("bad command"); - my_argv[0] = me + 4; + my_argv[0] = me; my_argv[1] = arg; my_argv[2] = NULL; return execv_git_cmd(my_argv); } -- 2.24.0
diff --git a/shell.c b/shell.c index 40084a3013..54cca7439d 100644 --- a/shell.c +++ b/shell.c @@ -16,10 +16,10 @@ static int do_generic_cmd(const char *me, char *arg) setup_path(); if (!arg || !(arg = sq_dequote(arg)) || *arg == '-') die("bad argument"); - if (!starts_with(me, "git-")) + if (!skip_prefix(me, "git-", &me)) die("bad command"); - my_argv[0] = me + 4; + my_argv[0] = me; my_argv[1] = arg; my_argv[2] = NULL;
Get rid of a magic number by using skip_prefix() instead of starts_with(). Signed-off-by: René Scharfe <l.s.r@web.de> --- shell.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 2.24.0