Module: wine Branch: master Commit: f56be472c65f4ad964fb9fc891824a8441a2d01a URL: http://source.winehq.org/git/wine.git/?a=commit;h=f56be472c65f4ad964fb9fc891...
Author: Damjan Jovanovic damjan.jov@gmail.com Date: Thu Jul 22 21:38:59 2010 +0200
kernel32: Deal with unix paths in wine_get_dos_file_name.
---
dlls/kernel32/path.c | 15 ++++++++++----- 1 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/dlls/kernel32/path.c b/dlls/kernel32/path.c index 0e69f91..81467cb 100644 --- a/dlls/kernel32/path.c +++ b/dlls/kernel32/path.c @@ -1788,10 +1788,15 @@ WCHAR * CDECL wine_get_dos_file_name( LPCSTR str ) SetLastError( RtlNtStatusToDosError( status ) ); return NULL; } - /* get rid of the ??\ prefix */ - /* FIXME: should implement RtlNtPathNameToDosPathName and use that instead */ - len = nt_name.Length - 4 * sizeof(WCHAR); - memmove( nt_name.Buffer, nt_name.Buffer + 4, len ); - nt_name.Buffer[len / sizeof(WCHAR)] = 0; + if (nt_name.Buffer[5] == ':') + { + /* get rid of the ??\ prefix */ + /* FIXME: should implement RtlNtPathNameToDosPathName and use that instead */ + len = nt_name.Length - 4 * sizeof(WCHAR); + memmove( nt_name.Buffer, nt_name.Buffer + 4, len ); + nt_name.Buffer[len / sizeof(WCHAR)] = 0; + } + else + nt_name.Buffer[1] = '\'; return nt_name.Buffer; }