Fix the error returned by GetLongPathNameA.
This commit is contained in:
parent
f44bbb8d10
commit
60a83ef0f1
|
@ -986,7 +986,7 @@ BOOL DOSFS_GetFullName( LPCSTR name, BOOL check_last, DOS_FULL_NAME *full )
|
||||||
* NOTES
|
* NOTES
|
||||||
* observed:
|
* observed:
|
||||||
* longpath=NULL: LastError=ERROR_INVALID_PARAMETER, ret=0
|
* longpath=NULL: LastError=ERROR_INVALID_PARAMETER, ret=0
|
||||||
* *longpath="" or invalid: LastError=ERROR_BAD_PATHNAME, ret=0
|
* longpath="" or invalid: LastError=ERROR_BAD_PATHNAME, ret=0
|
||||||
*
|
*
|
||||||
* more observations ( with NT 3.51 (WinDD) ):
|
* more observations ( with NT 3.51 (WinDD) ):
|
||||||
* longpath <= 8.3 -> just copy longpath to shortpath
|
* longpath <= 8.3 -> just copy longpath to shortpath
|
||||||
|
@ -997,7 +997,7 @@ BOOL DOSFS_GetFullName( LPCSTR name, BOOL check_last, DOS_FULL_NAME *full )
|
||||||
* file is not a directory
|
* file is not a directory
|
||||||
* - the absolute/relative path of the short name is reproduced like found
|
* - the absolute/relative path of the short name is reproduced like found
|
||||||
* in the long name
|
* in the long name
|
||||||
* - longpath and shortpath may have the same adress
|
* - longpath and shortpath may have the same address
|
||||||
* Peter Ganten, 1999
|
* Peter Ganten, 1999
|
||||||
*/
|
*/
|
||||||
DWORD WINAPI GetShortPathNameA( LPCSTR longpath, LPSTR shortpath,
|
DWORD WINAPI GetShortPathNameA( LPCSTR longpath, LPSTR shortpath,
|
||||||
|
@ -1107,6 +1107,11 @@ DWORD WINAPI GetShortPathNameW( LPCWSTR longpath, LPWSTR shortpath,
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* GetLongPathNameA (KERNEL32.@)
|
* GetLongPathNameA (KERNEL32.@)
|
||||||
|
*
|
||||||
|
* NOTES
|
||||||
|
* observed (Win2000):
|
||||||
|
* shortpath=NULL: LastError=ERROR_INVALID_PARAMETER, ret=0
|
||||||
|
* shortpath="": LastError=ERROR_PATH_NOT_FOUND, ret=0
|
||||||
*/
|
*/
|
||||||
DWORD WINAPI GetLongPathNameA( LPCSTR shortpath, LPSTR longpath,
|
DWORD WINAPI GetLongPathNameA( LPCSTR shortpath, LPSTR longpath,
|
||||||
DWORD longlen )
|
DWORD longlen )
|
||||||
|
@ -1114,6 +1119,15 @@ DWORD WINAPI GetLongPathNameA( LPCSTR shortpath, LPSTR longpath,
|
||||||
DOS_FULL_NAME full_name;
|
DOS_FULL_NAME full_name;
|
||||||
char *p, *r, *ll, *ss;
|
char *p, *r, *ll, *ss;
|
||||||
|
|
||||||
|
if (!shortpath) {
|
||||||
|
SetLastError(ERROR_INVALID_PARAMETER);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (!shortpath[0]) {
|
||||||
|
SetLastError(ERROR_PATH_NOT_FOUND);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (!DOSFS_GetFullName( shortpath, TRUE, &full_name )) return 0;
|
if (!DOSFS_GetFullName( shortpath, TRUE, &full_name )) return 0;
|
||||||
lstrcpynA( longpath, full_name.short_name, longlen );
|
lstrcpynA( longpath, full_name.short_name, longlen );
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue