kernel32: Preserve a '/' delimiter in GetLongPathName and GetShortPathName.
Signed-off-by: Jeremy White <jwhite@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
17ddd0474f
commit
9f3f918f2c
|
@ -334,10 +334,10 @@ DWORD WINAPI GetLongPathNameW( LPCWSTR shortpath, LPWSTR longpath, DWORD longlen
|
|||
/* check for path delimiters and reproduce them */
|
||||
if (shortpath[sp] == '\\' || shortpath[sp] == '/')
|
||||
{
|
||||
if (!lp || tmplongpath[lp-1] != '\\')
|
||||
if (!lp || (tmplongpath[lp-1] != '\\' && tmplongpath[lp-1] != '/'))
|
||||
{
|
||||
/* strip double "\\" */
|
||||
tmplongpath[lp++] = '\\';
|
||||
/* strip double delimiters */
|
||||
tmplongpath[lp++] = shortpath[sp];
|
||||
}
|
||||
tmplongpath[lp] = 0; /* terminate string */
|
||||
sp++;
|
||||
|
@ -492,10 +492,10 @@ DWORD WINAPI GetShortPathNameW( LPCWSTR longpath, LPWSTR shortpath, DWORD shortl
|
|||
/* check for path delimiters and reproduce them */
|
||||
if (longpath[lp] == '\\' || longpath[lp] == '/')
|
||||
{
|
||||
if (!sp || tmpshortpath[sp-1] != '\\')
|
||||
if (!sp || (tmpshortpath[sp-1] != '\\' && tmpshortpath[sp-1] != '/'))
|
||||
{
|
||||
/* strip double "\\" */
|
||||
tmpshortpath[sp] = '\\';
|
||||
/* strip double delimiters */
|
||||
tmpshortpath[sp] = longpath[lp];
|
||||
sp++;
|
||||
}
|
||||
tmpshortpath[sp] = 0; /* terminate string */
|
||||
|
|
|
@ -863,18 +863,15 @@ static void test_PathNameA(CHAR *curdir, CHAR curDrive, CHAR otherDrive)
|
|||
if (pGetLongPathNameA) {
|
||||
sprintf(tmpstr,"%s/%s",LONGDIR,LONGFILE);
|
||||
ok(GetLongPathNameA(tmpstr,tmpstr1,MAX_PATH),"GetLongPathNameA failed\n");
|
||||
todo_wine
|
||||
ok(lstrcmpiA(tmpstr,tmpstr1)==0,
|
||||
"GetLongPathNameA returned '%s' instead of '%s'\n",tmpstr1,tmpstr);
|
||||
sprintf(tmpstr,"%s/%s",SHORTDIR,SHORTFILE);
|
||||
ok(GetLongPathNameA(tmpstr,tmpstr1,MAX_PATH),"GetLongPathNameA failed\n");
|
||||
todo_wine
|
||||
ok(lstrcmpiA(tmpstr,tmpstr1)==0,
|
||||
"GetLongPathNameA returned '%s' instead of '%s'\n",tmpstr1,tmpstr);
|
||||
}
|
||||
sprintf(tmpstr,"%s/%s",SHORTDIR,SHORTFILE);
|
||||
ok(GetShortPathNameA(tmpstr,tmpstr1,MAX_PATH),"GetShortPathNameA failed\n");
|
||||
todo_wine
|
||||
ok(lstrcmpiA(tmpstr,tmpstr1)==0,
|
||||
"GetShortPathNameA returned '%s' instead of '%s'\n",tmpstr1,tmpstr);
|
||||
|
||||
|
|
Loading…
Reference in New Issue