mirror of
https://github.com/git-for-windows/git.git
synced 2026-04-27 18:11:59 -05:00
mingw: allow absolute paths without drive prefix
When specifying an absolute path without a drive prefix, we convert that path internally. Let's make sure that we handle that case properly, too ;-) This fixes the command git clone https://github.com/git-for-windows/git \G4W Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This commit is contained in:
@@ -1072,11 +1072,19 @@ unsigned int sleep (unsigned int seconds)
|
|||||||
char *mingw_mktemp(char *template)
|
char *mingw_mktemp(char *template)
|
||||||
{
|
{
|
||||||
wchar_t wtemplate[MAX_PATH];
|
wchar_t wtemplate[MAX_PATH];
|
||||||
|
int offset = 0;
|
||||||
|
|
||||||
if (xutftowcs_path(wtemplate, template) < 0)
|
if (xutftowcs_path(wtemplate, template) < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
if (is_dir_sep(template[0]) && !is_dir_sep(template[1]) &&
|
||||||
|
iswalpha(wtemplate[0]) && wtemplate[1] == L':') {
|
||||||
|
/* We have an absolute path missing the drive prefix */
|
||||||
|
offset = 2;
|
||||||
|
}
|
||||||
if (!_wmktemp(wtemplate))
|
if (!_wmktemp(wtemplate))
|
||||||
return NULL;
|
return NULL;
|
||||||
if (xwcstoutf(template, wtemplate, strlen(template) + 1) < 0)
|
if (xwcstoutf(template, wtemplate + offset, strlen(template) + 1) < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
return template;
|
return template;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ case "$UNCPATH" in
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
test_expect_failure 'clone into absolute path lacking a drive prefix' '
|
test_expect_success 'clone into absolute path lacking a drive prefix' '
|
||||||
USINGBACKSLASHES="$(echo "$WITHOUTDRIVE"/without-drive-prefix |
|
USINGBACKSLASHES="$(echo "$WITHOUTDRIVE"/without-drive-prefix |
|
||||||
tr / \\\\)" &&
|
tr / \\\\)" &&
|
||||||
git clone . "$USINGBACKSLASHES" &&
|
git clone . "$USINGBACKSLASHES" &&
|
||||||
|
|||||||
Reference in New Issue
Block a user