mirror of
https://github.com/git/git
synced 2024-08-27 19:49:21 +00:00
Merge branch 'ss/clone-guess-dir-name-simplify' into maint
Code simplification. * ss/clone-guess-dir-name-simplify: clone: simplify string handling in guess_dir_name()
This commit is contained in:
commit
de67af4a8f
|
@ -147,6 +147,7 @@ static char *get_repo_path(const char *repo, int *is_bundle)
|
|||
static char *guess_dir_name(const char *repo, int is_bundle, int is_bare)
|
||||
{
|
||||
const char *end = repo + strlen(repo), *start;
|
||||
size_t len;
|
||||
char *dir;
|
||||
|
||||
/*
|
||||
|
@ -173,20 +174,12 @@ static char *guess_dir_name(const char *repo, int is_bundle, int is_bare)
|
|||
/*
|
||||
* Strip .{bundle,git}.
|
||||
*/
|
||||
if (is_bundle) {
|
||||
if (end - start > 7 && !strncmp(end - 7, ".bundle", 7))
|
||||
end -= 7;
|
||||
} else {
|
||||
if (end - start > 4 && !strncmp(end - 4, ".git", 4))
|
||||
end -= 4;
|
||||
}
|
||||
strip_suffix(start, is_bundle ? ".bundle" : ".git" , &len);
|
||||
|
||||
if (is_bare) {
|
||||
struct strbuf result = STRBUF_INIT;
|
||||
strbuf_addf(&result, "%.*s.git", (int)(end - start), start);
|
||||
dir = strbuf_detach(&result, NULL);
|
||||
} else
|
||||
dir = xstrndup(start, end - start);
|
||||
if (is_bare)
|
||||
dir = xstrfmt("%.*s.git", (int)len, start);
|
||||
else
|
||||
dir = xstrndup(start, len);
|
||||
/*
|
||||
* Replace sequences of 'control' characters and whitespace
|
||||
* with one ascii space, remove leading and trailing spaces.
|
||||
|
|
Loading…
Reference in a new issue