https://bugs.winehq.org/show_bug.cgi?id=39811
Bug ID: 39811 Summary: GetLongPathName not working on case insensitive filesystems when short path is passed Product: Wine Version: 1.7.49 Hardware: x86 OS: Mac OS X Status: NEW Severity: normal Priority: P2 Component: ntdll Assignee: wine-bugs@winehq.org Reporter: piotr.caban@gmail.com
When short path is passed to GetLongPathName on case insensitive file system (and it's not vfat) it will fail. So far I have only confirmed the issue on Mac (when both read_directory_getattrlist and read_directory_stat is used). But I think there will be similar problem if case insensitive FS is used on Linux.
It's a regression that breaks some functionality in Quicken 2013.
It's caused by following commits: - read_directory_getattrlist: 5c98448aa3acb9bac40a0afa28ffbee3001081d0 - read_directory_stat: 2f0febe60a9f0b29840fc8d60679a8585b788ad5
Steps to reproduce the problem (on case insensitive file system): touch ~/.wine/drive_c/somelongname
char short_path[256], path2[256]; printf("%x\n", GetShortPathNameA("c:\somelongname", path, sizeof(path))); printf("%s\n", path); printf("%x\n", GetLongPathNameA(path, path2, sizeof(path2)); printf("%s\n", path2);
Output: b c:\SOME~LJ0 0
Correct output will be following: b c:\SOME~LJ0 f c:\somelongname