Reece Dunn wrote:
The patch was rejected by Alexandre because the patch was implementing that command using Windows API calls, when it should be implemented natively as POSIX/GNU calls.
Really? Where did he say that? It'd be nice to link to that from http://bugs.winehq.org/show_bug.cgi?id=7544 - Dan
On 20/10/2007, Dan Kegel dank@kegel.com wrote:
Reece Dunn wrote:
The patch was rejected by Alexandre because the patch was implementing that command using Windows API calls, when it should be implemented natively as POSIX/GNU calls.
Really? Where did he say that? It'd be nice to link to that from http://bugs.winehq.org/show_bug.cgi?id=7544
- Dan
I asked him about it at WineConf and that is a summary of what he said.
- Reece
"Reece Dunn" msclrhd@googlemail.com wrote:
On 20/10/2007, Dan Kegel dank@kegel.com wrote:
Reece Dunn wrote:
The patch was rejected by Alexandre because the patch was implementing that command using Windows API calls, when it should be implemented natively as POSIX/GNU calls.
Really? Where did he say that? It'd be nice to link to that from http://bugs.winehq.org/show_bug.cgi?id=7544
- Dan
I asked him about it at WineConf and that is a summary of what he said.
I can't believe this, probably you misunderstood or misinterpreted something. ReplaceFile API needs to abide sharing and access rights rules which are known only to wineserver, and not known/available on the libc/kernel level.
On Sun, 2007-10-21 at 19:33 +0900, Dmitry Timoshkov wrote:
"Reece Dunn" msclrhd@googlemail.com wrote:
On 20/10/2007, Dan Kegel dank@kegel.com wrote:
Reece Dunn wrote:
The patch was rejected by Alexandre because the patch was implementing that command using Windows API calls, when it should be implemented natively as POSIX/GNU calls.
Really? Where did he say that? It'd be nice to link to that from http://bugs.winehq.org/show_bug.cgi?id=7544
- Dan
I asked him about it at WineConf and that is a summary of what he said.
I can't believe this, probably you misunderstood or misinterpreted something. ReplaceFile API needs to abide sharing and access rights rules which are known only to wineserver, and not known/available on the libc/kernel level.
Ok so what's the right way to implement this now? If I'm going to do this, and I most certainly wouldn't mind doing that, I'd like to be able to do it the right way the first time around.
Thanks,
Stephan
On 22/10/2007, Stephan Rose kermos@somrek.net wrote:
On Sun, 2007-10-21 at 19:33 +0900, Dmitry Timoshkov wrote:
"Reece Dunn" msclrhd@googlemail.com wrote:
On 20/10/2007, Dan Kegel dank@kegel.com wrote:
Reece Dunn wrote:
The patch was rejected by Alexandre because the patch was implementing that command using Windows API calls, when it should be implemented natively as POSIX/GNU calls.
Really? Where did he say that? It'd be nice to link to that from http://bugs.winehq.org/show_bug.cgi?id=7544
- Dan
I asked him about it at WineConf and that is a summary of what he said.
I can't believe this, probably you misunderstood or misinterpreted something. ReplaceFile API needs to abide sharing and access rights rules which are known only to wineserver, and not known/available on the libc/kernel level.
Ok so what's the right way to implement this now? If I'm going to do this, and I most certainly wouldn't mind doing that, I'd like to be able to do it the right way the first time around.
I'd suggest working on the tests first and get these passing on Windows, as I discussed on the initial thread. These should initially be based on the MSDN documentation. Don't forget to cover both A and W variants.
This will then give you the behaviour of that function on Windows that you can then use to implement it on Wine and know that the function is implemented correctly.
Also, the tests are more likely to get in than any implementation. These will also help convince Alexandre (if I interpreted what he said correctly) that the ReplaceFile[A/W] behaviour is more complex than he thinks.
The stub for ReplaceFileW can be created and ReplaceFileA can be fully implemented, as that just feeds its data to ReplaceFileW.
- Reece
"Dmitry Timoshkov" dmitry@codeweavers.com writes:
I can't believe this, probably you misunderstood or misinterpreted something. ReplaceFile API needs to abide sharing and access rights rules which are known only to wineserver, and not known/available on the libc/kernel level.
Of course you need to call CreateFile to check sharing etc., but after that the replacing should be done with link() and/or rename(), not by copying the files. Essentially it should be done just like MoveFile.