http://bugs.winehq.org/show_bug.cgi?id=36838
Bug ID: 36838 Summary: TOCA Touring Car Championship: installer copies one file from CD and then shows an error Product: Wine Version: 1.7.21 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: o.dierick@piezo-forte.be
Step to reproduce:
Clean wine prefix. Win version set to Windows 98 and virtual desktop enabled in winecfg, no other changes. Original CD in drive.
cd ~/.wine/drive_c wine /media/cdrom0/setup.exe
Installer starts, click install. Enter new or accept default path. Installer asks confirmation of path creation, click yes. Installer asks confirmation of bypassing DirectX 5 installation, click yes. An error pop up stating that an error occured during file copying. click yes. Installer closes.
No terminal output at all. One file has been copied as C:\Codemast\TourCar\tourcars.exe
Notes: tourcars.exe cannot be launched directly, must run setup.exe to start game. Copying the whole CD to C:\Codemast\TourCar does not work around the issue. Running setup.exe from c:\Codemast\TourCar wants to copy files anyway.
The issue is also present with the demo: http://www.jeuxvideo.com/telecharger/jeux-et-demos/00000413-toca-touring-car... sha1sum: 3c7a4d0d8bc7e6f5095358b3d3ff005e53e44d4b tocademo_JeuxVideo.com_413.zip Extract and copy tocademo.exe to ~/.wine/drive_c and run from there.
Debian 7.5 Wheezy x86_64 Wine 1.7.21 32bits compiled from git. No patches, no third party apps.
http://bugs.winehq.org/show_bug.cgi?id=36838
--- Comment #1 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Created attachment 48922 --> http://bugs.winehq.org/attachment.cgi?id=48922 Terminal output with WINEDEBUG=+relay,+seh,+tid
http://bugs.winehq.org/show_bug.cgi?id=36838
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #48922|0 |1 is obsolete| |
--- Comment #2 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Created attachment 48923 --> http://bugs.winehq.org/attachment.cgi?id=48923 Terminal output with WINEDEBUG=+relay,+seh,+tid
file is not text/plain but bzip compressed text.
http://bugs.winehq.org/show_bug.cgi?id=36838
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |Installer URL| |http://www.jeuxvideo.com/te | |lecharger/jeux-et-demos/000 | |00413-toca-touring-car-cham | |pionship-pc.htm
http://bugs.winehq.org/show_bug.cgi?id=36838
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download Status|UNCONFIRMED |NEW CC| |focht@gmx.net Component|-unknown |shell32 Ever confirmed|0 |1
--- Comment #3 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming.
--- snip --- $ WINEDEBUG=+tid,+seh,+relay,+server wine ./SETUP.EXE >>log.txt 2>&1 ... 0009:Call shell32.SHFileOperationA(0033e984) ret=004029f5 ... 0009:Call KERNEL32.CopyFileW(0013f258 L"Z:\home\focht\Downloads\install\tourcars.exe",00151758 L"c:\Codemast\TourCar\tourcars.exe",00000000) ret=7e8fcc89 0009:Ret KERNEL32.CopyFileW() retval=00000001 ret=7e8fcc89 ... 0009:Call shlwapi.SHFreeShared(00000000,00000008) ret=7e8d3f1f 0009:Call KERNEL32.DuplicateHandle(ffffffff,00000000,ffffffff,0033e35c,000f001f,00000000,00000003) ret=7e817e1f 0009: dup_handle( src_process=ffffffff, src_handle=0000, dst_process=ffffffff, access=000f001f, attributes=00000000, options=00000003 ) 0009: dup_handle() = INVALID_HANDLE { handle=0000, self=1, closed=0 } 0009:Ret KERNEL32.DuplicateHandle() retval=00000000 ret=7e817e1f 0009:Call KERNEL32.CloseHandle(00000000) ret=7e818289 0009: close_handle( handle=0000 ) 0009: close_handle() = INVALID_HANDLE 0009:Ret KERNEL32.CloseHandle() retval=00000000 ret=7e818289 0009:Ret shlwapi.SHFreeShared() retval=00000000 ret=7e8d3f1f ... 0009:Ret shell32.SHFileOperationA() retval=00000000 ret=004029f5 0009:Call KERNEL32.GetLastError() ret=004029fb 0009:Ret KERNEL32.GetLastError() retval=00000006 ret=004029fb 0009:Call user32.MessageBoxA(0001004a,0040a268 "There was an error whilst trying to install files\n\tPress OK to quit",00407808 "TOCA Touring Car Championship Demo Setup",00002030) ret=00401578 --- snip ---
The installer doesn't like the lasterror code 0x6 (ERROR_INVALID_HANDLE) from 'SHFileOperationA' (0x12 would be acceptable, if any):
--- snip --- 004029C1 |83C4 0C |ADD ESP,0C 004029C4 |8D4424 1C |LEA EAX,DWORD PTR SS:[ESP+1C] 004029C8 |8D8C24 5C010000 |LEA ECX,DWORD PTR SS:[ESP+15C] 004029CF |8D5424 58 |LEA EDX,DWORD PTR SS:[ESP+58] 004029D3 |50 |PUSH EAX 004029D4 |895C24 20 |MOV DWORD PTR SS:[ESP+20],EBX 004029D8 |C74424 24 02000000|MOV DWORD PTR SS:[ESP+24],2 004029E0 |894C24 28 |MOV DWORD PTR SS:[ESP+28],ECX 004029E4 |895424 2C |MOV DWORD PTR SS:[ESP+2C],EDX 004029E8 |66:C74424 30 1502 |MOV WORD PTR SS:[ESP+30],215 004029EF |FF15 C4F34000 |CALL DWORD PTR DS:[<&SHELL32.SHFileOperationA>] 004029F5 |FF15 C8F24000 |CALL DWORD PTR DS:[<&KERNEL32.GetLastError>] 004029FB |25 FFFF0000 |AND EAX,0FFFF 00402A00 |74 09 |JE SHORT SETUP.00402A0B 00402A02 |83F8 12 |CMP EAX,12 00402A05 |0F85 CB000000 |JNZ SETUP.00402AD6 00402A0B |8D4C24 58 |LEA ECX,DWORD PTR SS:[ESP+58] 00402A0F |68 80000000 |PUSH 80 ; FileAttributes = NORMAL 00402A14 |51 |PUSH ECX ; FileName 00402A15 |FF15 C4F24000 |CALL DWORD PTR DS:[<&KERNEL32.SetFileAttributesA>] --- snip ---
The previous trace log was already done with +server to show where it originates from.
--- snip --- Wine-dbg>bt
Backtrace: =>0 0x7e8ede7f SHFreeShared(hShared=0x0(nil), dwProcId=0x22) [/home/focht/projects/wine/wine.repo/src/dlls/shell32/shellord.c:1459] in shell32 (0x0033e5c8)
1 0x7e916cb8 SHNotifyCopyFileW+0x115(src="Z:\home\focht\Downloads\install\tourcars.exe", dest="c:\Codemast\TourCar\tourcars.exe", bFailIfExists=0) [/home/focht/projects/wine/wine.repo/src/dlls/shell32/shlfileop.c:640] in shell32 (0x0033e638)
2 0x7e917f29 copy_file_to_file+0x8b(op=0x33e8fc, szFrom="Z:\home\focht\Downloads\install\tourcars.exe", szTo="c:\Codemast\TourCar\tourcars.exe") [/home/focht/projects/wine/wine.repo/src/dlls/shell32/shlfileop.c:1143] in shell32 (0x0033e658)
3 0x7e9185db copy_files+0x4fa(op=0x33e8fc, flFrom=0x33e8e4, flTo=0x33e8cc) [/home/focht/projects/wine/wine.repo/src/dlls/shell32/shlfileop.c:1291] in shell32 (0x0033e8a8)
4 0x7e919015 SHFileOperationW+0x141(lpFileOp=0x33e942) [/home/focht/projects/wine/wine.repo/src/dlls/shell32/shlfileop.c:1571] in shell32 (0x0033e918)
5 0x7e9173bd SHFileOperationA+0x14a(lpFileOp=<couldn't compute location>) [/home/focht/projects/wine/wine.repo/src/dlls/shell32/shlfileop.c:887] in shell32 (0x0033e998)
6 0x004029f5 in setup (+0x29f4) (0x7b8759b1) --- snip ---
The corresponding source: http://source.winehq.org/git/wine.git/blob/0f64ffd91ff2fab97d9c52335478ff2fb...
--- snip --- 260 void WINAPI SHChangeNotify(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2) 261 { ... 269 HANDLE shared_data = NULL; 270 LPITEMIDLIST Pidls[2]; 271 LPNOTIFICATIONLIST ptr; 272 struct list recipients; ... 414 SHFreeShared(shared_data, GetCurrentProcessId()); 415 SHFree(Pidls[0]); 416 SHFree(Pidls[1]); ... 424 } --- snip ---
'shared_data' is NULL (no notifiers) hence the call to 'SHFreeShared' is unnecessary and avoids that lasterror leaking.
After fixing that part it still fails:
--- snip --- ... 0009:Ret shell32.SHFileOperationA() retval=00000000 ret=004029f5 0009:Call KERNEL32.GetLastError() ret=004029fb 0009:Ret KERNEL32.GetLastError() retval=00000001 ret=004029fb --- snip ---
To see where this lasterror code 0x1 originates from we need to unmask all internal relay calls (remove keys in registry):
--- snip --- [HKEY_CURRENT_USER\Software\Wine\Debug] "RelayExclude"="ntdll.RtlEnterCriticalSection;ntdll.RtlLeaveCriticalSection;kernel32.48;kernel32.49;kernel32.94;kernel32.95;kernel32.96;kernel32.97;kernel32.98;kernel32.TlsGetValue;kernel32.TlsSetValue;kernel32.FlsGetValue;kernel32.FlsSetValue;kernel32.SetLastError" "RelayFromExclude"="winex11.drv;winemac.drv;user32;gdi32;advapi32;kernel32" --- snip ---
Voila - grepping through the full relay trace log yields:
--- snip --- 0009:Call KERNEL32.Wow64DisableWow64FsRedirection(0033a800) ret=7e8ed691 0009:Call ntdll.RtlWow64EnableFsRedirectionEx(00000001,0033a800) ret=7b860f0c 0009:Ret ntdll.RtlWow64EnableFsRedirectionEx() retval=c0000002 ret=7b860f0c 0009:Call ntdll.RtlNtStatusToDosError(c0000002) ret=7b860f23 0009:Ret ntdll.RtlNtStatusToDosError() retval=00000001 ret=7b860f23 0009:Ret KERNEL32.Wow64DisableWow64FsRedirection() retval=00000000 ret=7e8ed691 --- snip ---
Debugger:
--- snip --- Wine-dbg>bt Backtrace:
=>0 0x7b860ee7 Wow64DisableWow64FsRedirection(old_value=0x33a880) [/home/focht/projects/wine/wine.repo/src/dlls/kernel32/path.c:1850] in kernel32 (0x0033cad8)
1 0x7e8ede8c UNIXFS_path_to_pidl+0xce(pUnixFolder=0x141a28, pbc=0x1373e0, path="c:\Codemast\TourCar\tourcars.exe", ppidl=0x33dea4) [/home/focht/projects/wine/wine.repo/src/dlls/shell32/shfldr_unixfs.c:629] in shell32 (0x0033ddc8)
2 0x7e8eef31 ShellFolder2_ParseDisplayName+0xd1(iface=<couldn't compute location>, hwndOwner=<couldn't compute location>, pbc=<couldn't compute location>, display_name=<couldn't compute location>, pchEaten=<couldn't compute location>, ppidl=<couldn't compute location>, attrs=<couldn't compute location>) [/home/focht/projects/wine/wine.repo/src/dlls/shell32/shfldr_unixfs.c:948] in shell32 (0x0033de68) ...
Wine-dbg>n 1851 NTSTATUS status = RtlWow64EnableFsRedirectionEx( TRUE, (ULONG *)old_value ); Wine-dbg>n 1852 if (status) SetLastError( RtlNtStatusToDosError(status) ); Wine-dbg>p status => 2 0xc0000002 --- snip ---
I saved/restored the last error around the Wow64 filesystem redirection calls. And it still failed ... more code paths leaked lasterror codes too :|
--- snip --- 0009:Ret shell32.SHFileOperationA() retval=00000000 ret=004029f5 0009:Call KERNEL32.GetLastError() ret=004029fb 0009:Ret KERNEL32.GetLastError() retval=000000b7 ret=004029fb --- snip ---
That thing wasn't really visible so another debugging session revealed it's 'CopyFileExW' -> 'CreateFileW' -> 'SetLastError(ERROR_ALREADY_EXISTS)' if the destination file exists (re-run of installer).
I got fed up with all the lasterror codes leaking from various code paths (by design) and reset the lasterror in 'SHNotifyCopyFileW' if the copy operation succeeded. There might be a better place but this worked for me.
Source: http://source.winehq.org/git/wine.git/blob/2ba9ee018bce4953feb728595f4a4a6e4...
--- snip --- 625 static DWORD SHNotifyCopyFileW(LPCWSTR src, LPCWSTR dest, BOOL bFailIfExists) 626 { 627 BOOL ret; 628 DWORD attribs; ... 632 /* Destination file may already exist with read only attribute */ 633 attribs = GetFileAttributesW(dest); 634 if (IsAttrib(attribs, FILE_ATTRIBUTE_READONLY)) 635 SetFileAttributesW(dest, attribs & ~FILE_ATTRIBUTE_READONLY); 636 637 ret = CopyFileW(src, dest, bFailIfExists); 638 if (ret) 639 { 640 SHChangeNotify(SHCNE_CREATE, SHCNF_PATHW, dest, NULL); 641 return ERROR_SUCCESS; 642 } 643 644 return GetLastError(); 645 } --- snip ---
With that part fixed the installer succeeds. IMHO part 1, avoid NULL 'shared_data' cleanup call should be fixed too.
$ sha1sum tocademo_JeuxVideo.com_413.zip 3c7a4d0d8bc7e6f5095358b3d3ff005e53e44d4b tocademo_JeuxVideo.com_413.zip
$ du -sh tocademo_JeuxVideo.com_413.zip 6.8M tocademo_JeuxVideo.com_413.zip
$ wine --version wine-1.7.21-41-g5af3b8c
Regards
http://bugs.winehq.org/show_bug.cgi?id=36838
--- Comment #4 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- The install process is able to complete with the workaround, both for the demo and the full game.
The installed game (or demo) crash with an unhandled exception error, but that is another story.
https://bugs.winehq.org/show_bug.cgi?id=36838
super_man@post.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |super_man@post.com
--- Comment #5 from super_man@post.com --- Oliver I think you had a patch for this? Care to share it here?
https://bugs.winehq.org/show_bug.cgi?id=36838
--- Comment #6 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- (In reply to super_man from comment #5)
Oliver I think you had a patch for this? Care to share it here?
It was only a hack. It did not pass Windows conformance tests and broke other things.
I continued to track down the error leaking sources. I have patches that fixes 3 wine bugs. With those patches, the installer succeeds.
If there are files left over from a previous install attempt, the installer will still fail. Cleaning the game directory works around this. Maybe it was the way it worked on actual Windows. I can't remember.
I will submit the patches soon.
https://bugs.winehq.org/show_bug.cgi?id=36838
Vijay Kamuju infyquest@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |infyquest@gmail.com
--- Comment #7 from Vijay Kamuju infyquest@gmail.com --- Some of the patches landed in the git. Please close if its fixed
https://bugs.winehq.org/show_bug.cgi?id=36838
--- Comment #8 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- (In reply to Vijay Kamuju from comment #7)
Some of the patches landed in the git. Please close if its fixed
The issue is not completely fixed.
The installer still fails because of the Wow64* function calls that set last error to ERROR_INVALID_FUNCTION (on 32 bit Wine). One of the pending patches addresses this.
The other pending patch is not needed anymore.
https://bugs.winehq.org/show_bug.cgi?id=36838
--- Comment #9 from super_man@post.com --- (In reply to Olivier F. R. Dierick from comment #8)
(In reply to Vijay Kamuju from comment #7)
Some of the patches landed in the git. Please close if its fixed
The issue is not completely fixed.
The installer still fails because of the Wow64* function calls that set last error to ERROR_INVALID_FUNCTION (on 32 bit Wine). One of the pending patches addresses this.
The other pending patch is not needed anymore.
I remember seeing the patches, but I don't know how I should search patches that didnt get merged. If you are able to attach the patch(es) needed even incorrectly formed it would be really helpful to get this fixed.
https://bugs.winehq.org/show_bug.cgi?id=36838
--- Comment #10 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- (In reply to super_man from comment #9)
I remember seeing the patches, but I don't know how I should search patches that didnt get merged.
The wine-patches mailing list is what you're looking for: https://www.winehq.org/pipermail/wine-patches/
If you have the author's name, date or subject, you may find the patch there. You can also set the "site:" keyword to that URL on Google to search the archive.
If you are able to attach the patch(es) needed even incorrectly formed it would be really helpful to get this fixed.
When I sent that patch it was silently ignored. I don't know why.
I resubmitted it again. It is ID 121402 on the patch status page: http://source.winehq.org/patches/
https://bugs.winehq.org/show_bug.cgi?id=36838
--- Comment #11 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Created attachment 54262 --> https://bugs.winehq.org/attachment.cgi?id=54262 patch fix ERROR_CALL_NOT_IMPLEMENTED error leaking.
https://bugs.winehq.org/show_bug.cgi?id=36838
--- Comment #12 from Nikolay Sivov bunglehead@gmail.com --- (In reply to Olivier F. R. Dierick from comment #11)
Created attachment 54262 [details] patch fix ERROR_CALL_NOT_IMPLEMENTED error leaking.
This looks like depending on a side effect, in any case you don't need to call IsWow64Process() every time.
https://bugs.winehq.org/show_bug.cgi?id=36838
--- Comment #13 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- That patch did in fact land in wine-staging: https://github.com/wine-compholio/wine-staging/tree/master/patches/shell32-U...
(In reply to Nikolay Sivov from comment #12)
This looks like depending on a side effect, in any case you don't need to call IsWow64Process() every time.
I don't understand what you mean. What looks like depending on a side effect? The bug, the patch or something else? How would the patch be affected by that side effect? Do you mean that there is another way to check for wow64 or that the patch can be optimized?
https://bugs.winehq.org/show_bug.cgi?id=36838
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #54262|0 |1 is obsolete| |
--- Comment #14 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Created attachment 54282 --> https://bugs.winehq.org/attachment.cgi?id=54282 patch call IsWow64Process once on dll init.
New version of the patch for review.
https://bugs.winehq.org/show_bug.cgi?id=36838
--- Comment #15 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Created attachment 54306 --> https://bugs.winehq.org/attachment.cgi?id=54306 Add test to show last error status after shell file operation.
Here is a conformance test to show that last error should be ERROR_SUCCESS after a successful shell32 operation.
The test succeed on 32bit Windows VM from Wine Test Bot [1].
The test fails on plain wine 1.9.8: ---begin quote--- ... shlfileop.c:1833: Test failed: Expected ERROR_SUCCESS, got 1 shlfileop: 751 tests executed (24 marked as todo, 1 failure), 1 skipped. ---end quote--- Error code 1 is ERROR_INVALID_FUNCTION.
The test succeed on patched wine 1.9.8 (patch from comment #14).
This demonstrates that the calls to wow64 functions in UNIXFS_get_unix_name() is the cause of the error, and that the error must be avoided for conformance.
[1] https://testbot.winehq.org/JobDetails.pl?Key=22408
https://bugs.winehq.org/show_bug.cgi?id=36838
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #54282|0 |1 is obsolete| |
--- Comment #16 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Created attachment 54324 --> https://bugs.winehq.org/attachment.cgi?id=54324 New patch do not depend on internal implementation of function.
As per Alexandre Julliard recommandation. [1]
[1] https://www.winehq.org/pipermail/wine-devel/2016-April/112874.html
https://bugs.winehq.org/show_bug.cgi?id=36838
--- Comment #17 from Bruno Jesus 00cpxxx@gmail.com --- (In reply to Olivier F. R. Dierick from comment #16)
Created attachment 54324 [details] New patch do not depend on internal implementation of function.
There seems to be a problem with tab/spaces in the first if.
https://bugs.winehq.org/show_bug.cgi?id=36838
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #54324|0 |1 is obsolete| |
--- Comment #18 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Created attachment 54326 --> https://bugs.winehq.org/attachment.cgi?id=54326 New patch keeps consistent with current indentation in each function.
https://bugs.winehq.org/show_bug.cgi?id=36838
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #54306|0 |1 is obsolete| |
--- Comment #19 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Created attachment 54336 --> https://bugs.winehq.org/attachment.cgi?id=54336 New test check last error after a unsuccessful file operation too.
Previous version of tests did check GetLastError() after a successful file operation. New version also check GetLastError() after a unsuccessful file operation.
GetLastError() returns ERROR_SUCCESS in both cases.
Tests passed Wine Test Bot successfully [1].
[1] https://testbot.winehq.org/JobDetails.pl?Key=22472
https://bugs.winehq.org/show_bug.cgi?id=36838
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #54326|0 |1 is obsolete| |
--- Comment #20 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Created attachment 54337 --> https://bugs.winehq.org/attachment.cgi?id=54337 New patch set last error explicitly in SHFileOperation()
Set last error explicitly in any case according to latest tests.
Please check if ready for submission.
https://bugs.winehq.org/show_bug.cgi?id=36838
--- Comment #21 from Bruno Jesus 00cpxxx@gmail.com --- (In reply to Olivier F. R. Dierick from comment #20)
Created attachment 54337 [details] New patch set last error explicitly in SHFileOperation()
Set last error explicitly in any case according to latest tests.
Please check if ready for submission.
Your tests from comment 19 are not testing the W version, to have a better test set you can clone the tests for the W version (changing the parameters accordingly).
Since in Wine SHFileOperationA calls SHFileOperationW can't you simplify the patch from comment 20 by adding only line 1568 and deleting line 897 from source and not adding line 904?
If I'm not wrong the effect would be the same and the out of memory case would not change since it is also not covered by tests.
https://bugs.winehq.org/show_bug.cgi?id=36838
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #54336|0 |1 is obsolete| |
--- Comment #22 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Created attachment 54338 --> https://bugs.winehq.org/attachment.cgi?id=54338 New tests check unicode file operation too
https://bugs.winehq.org/show_bug.cgi?id=36838
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #54337|0 |1 is obsolete| |
--- Comment #23 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Created attachment 54339 --> https://bugs.winehq.org/attachment.cgi?id=54339 New patch is simplified
I added tests for SHFileOperationW() in unicode group of tests.
Unicode tests passed in Wine Test Bot except for winxp and win2k3. I put exceptions in the tests.
New patch is simplified. There are returns in SHFileOperationW() for more cases that are not covered by the tests. I left them untouched.
https://bugs.winehq.org/show_bug.cgi?id=36838
--- Comment #24 from Bruno Jesus 00cpxxx@gmail.com --- (In reply to Olivier F. R. Dierick from comment #23)
Created attachment 54339 [details] New patch is simplified
I added tests for SHFileOperationW() in unicode group of tests.
Unicode tests passed in Wine Test Bot except for winxp and win2k3. I put exceptions in the tests.
New patch is simplified. There are returns in SHFileOperationW() for more cases that are not covered by the tests. I left them untouched.
Well, this is as far as my reviewing skills go, for me it's fine. You can either wait for someone else here or send the patches to wine-patches.
https://bugs.winehq.org/show_bug.cgi?id=36838
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #25 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Fixed with commit 9f202b78046adbb30cb9b936e72ce3ca0c4fa1fa [1].
[1] http://source.winehq.org/git/wine.git/?a=commit;h=9f202b78046adbb30cb9b936e7...
https://bugs.winehq.org/show_bug.cgi?id=36838
Sebastian Lackner sebastian@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |sebastian@fds-team.de Fixed by SHA1| |9f202b78046adbb30cb9b936e72 | |ce3ca0c4fa1fa
https://bugs.winehq.org/show_bug.cgi?id=36838
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #26 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 1.9.10.
https://bugs.winehq.org/show_bug.cgi?id=36838
Michael Stefaniuc mstefani@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |1.8.x CC| |mstefani@redhat.com
https://bugs.winehq.org/show_bug.cgi?id=36838
Michael Stefaniuc mstefani@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|1.8.x |---
--- Comment #27 from Michael Stefaniuc mstefani@redhat.com --- Removing 1.8.x milestone from bugs included in 1.8.4.