On Sat, Feb 20, 2016 at 9:27 AM, Alexander Kuleshov <kuleshovmail@xxxxxxxxx> wrote: > git.c: simplify striping extension of a file in handle_builtin() s/striping/stripping/g (Note the '/g' above.) The patch itself looks okay. > The handle_builtin() starts from striping of command extension if > STRIP_EXTENSION is enabled. Actually STRIP_EXTENSION does not used > anywhere else. > > This patch introduces strip_extension() helper to strip STRIP_EXTENSION > extension from argv[0] with the strip_suffix() instead of manually > striping. > > Signed-off-by: Alexander Kuleshov <kuleshovmail@xxxxxxxxx> > Helped-by: Jeff King <peff@xxxxxxxx> > --- > diff --git a/git-compat-util.h b/git-compat-util.h > @@ -333,10 +333,6 @@ extern char *gitdirname(char *); > #define _PATH_DEFPATH "/usr/local/bin:/usr/bin:/bin" > #endif > > -#ifndef STRIP_EXTENSION > -#define STRIP_EXTENSION "" > -#endif > - > #ifndef has_dos_drive_prefix > static inline int git_has_dos_drive_prefix(const char *path) > { > diff --git a/git.c b/git.c > index 087ad31..6cc0c07 100644 > --- a/git.c > +++ b/git.c > @@ -509,21 +509,25 @@ int is_builtin(const char *s) > return !!get_builtin(s); > } > > +#ifdef STRIP_EXTENSION > +static void strip_extension(const char **argv) > +{ > + size_t len; > + > + if (strip_suffix(argv[0], STRIP_EXTENSION, &len)) > + argv[0] = xmemdupz(argv[0], len); > +} > +#else > +#define strip_extension(cmd) > +#endif > + > static void handle_builtin(int argc, const char **argv) > { > - const char *cmd = argv[0]; > - int i; > - static const char ext[] = STRIP_EXTENSION; > + const char *cmd; > struct cmd_struct *builtin; > > - if (sizeof(ext) > 1) { > - i = strlen(argv[0]) - strlen(ext); > - if (i > 0 && !strcmp(argv[0] + i, ext)) { > - char *argv0 = xstrdup(argv[0]); > - argv[0] = cmd = argv0; > - argv0[i] = '\0'; > - } > - } > + strip_extension(argv); > + cmd = argv[0]; > > /* Turn "git cmd --help" into "git help cmd" */ > if (argc > 1 && !strcmp(argv[1], "--help")) { > -- > 2.5.0 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html