1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-13 06:26:09 +02:00

Merge branch 'ak/git-strip-extension-from-dashed-command' into maint

Code simplification.

* ak/git-strip-extension-from-dashed-command:
  git.c: simplify stripping extension of a file in handle_builtin()
This commit is contained in:
Junio C Hamano 2016-03-10 11:13:48 -08:00
commit 08e21c9b5f
2 changed files with 15 additions and 15 deletions

View File

@ -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)
{

26
git.c
View File

@ -502,21 +502,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")) {