File tree Expand file tree Collapse file tree 2 files changed +25
-8
lines changed
Expand file tree Collapse file tree 2 files changed +25
-8
lines changed Original file line number Diff line number Diff line change @@ -948,12 +948,20 @@ unsigned int sleep (unsigned int seconds)
948948char * mingw_mktemp (char * template )
949949{
950950 wchar_t wtemplate [MAX_PATH ];
951+ int offset = 0 ;
952+
951953 /* we need to return the path, thus no long paths here! */
952954 if (xutftowcs_path (wtemplate , template ) < 0 )
953955 return NULL ;
956+
957+ if (is_dir_sep (template [0 ]) && !is_dir_sep (template [1 ]) &&
958+ iswalpha (wtemplate [0 ]) && wtemplate [1 ] == L':' ) {
959+ /* We have an absolute path missing the drive prefix */
960+ offset = 2 ;
961+ }
954962 if (!_wmktemp (wtemplate ))
955963 return NULL ;
956- if (xwcstoutf (template , wtemplate , strlen (template ) + 1 ) < 0 )
964+ if (xwcstoutf (template , wtemplate + offset , strlen (template ) + 1 ) < 0 )
957965 return NULL ;
958966 return template ;
959967}
Original file line number Diff line number Diff line change 11#! /bin/sh
22
3- test_description=' various UNC path tests (Windows-only) '
3+ test_description=' various Windows path tests'
44. ./test-lib.sh
55
66if ! test_have_prereq MINGW; then
7- skip_all=' skipping UNC path tests, requires Windows '
7+ skip_all=' skipping Windows-specific path tests'
88 test_done
99fi
1010
1111UNCPATH=" $( pwd) "
1212case " $UNCPATH " in
1313[A-Z]:* )
14+ WITHOUTDRIVE=" ${UNCPATH# ?: } "
1415 # Use administrative share e.g. \\localhost\C$\git-sdk-64\usr\src\git
1516 # (we use forward slashes here because MSYS2 and Git accept them, and
1617 # they are easier on the eyes)
17- UNCPATH=" //localhost/${UNCPATH%%:* } \$ /${UNCPATH# ?: } "
18- test -d " $UNCPATH " || {
19- skip_all=' could not access administrative share; skipping'
20- test_done
21- }
18+ UNCPATH=" //localhost/${UNCPATH%%:* } \$ $WITHOUTDRIVE "
2219 ;;
2320* )
2421 skip_all=' skipping UNC path tests, cannot determine current path as UNC'
2522 test_done
2623 ;;
2724esac
2825
26+ test_expect_success ' clone into absolute path lacking a drive prefix' '
27+ USINGBACKSLASHES="$(echo "$WITHOUTDRIVE"/without-drive-prefix |
28+ tr / \\)" &&
29+ git clone . "$USINGBACKSLASHES" &&
30+ test -f without-drive-prefix/.git/HEAD
31+ '
32+
33+ test -d " $UNCPATH " || {
34+ skip_all=' could not access administrative share; skipping'
35+ test_done
36+ }
37+
2938test_expect_success setup '
3039 test_commit initial
3140'
You can’t perform that action at this time.
0 commit comments