http://bugs.winehq.org/show_bug.cgi?id=7544
--- Comment #32 from Erich Hoover ehoover@mines.edu 2008-02-08 12:33:34 --- (In reply to comment #31)
(In reply to comment #29)
That's the way Alexandre wants it
what are we trying to do, create windows or an _compatibility_ layer
Ok, I understand that that was not a satisfying explanation. I think a more accurate explanation would be that Alexandre seems to have a policy that you should only use functions at an API level lower than the one you are working at. For this particular example MoveFile and friends are at the same level as ReplaceFile (Win32 API), so only the next lower level (NT API) and base functions (POSIX API) can be used. As you can see from the history of this patch I was also not aware of such a policy, I have not seen it explicitly stated anywhere. However, such a policy is good for making a long-term design - when changes are made to a function at a particular level you only need to check for consequences at the next level up. Especially since this entire project is managed by one person (Alexandre), such a policy probably helps him keep track of what functions are affected by any particular change. If this analysis is incorrect then someone should speak up and correct me.
Your current patch for this bug doesn't handle moving file over different mount points.
Quite so, but neither does MoveFile.
yeah MoveFile doesn't do it by default, but it can with the flag MOVEFILE_COPY_ALLOWED.
I understand that there is a policy to not directly quote MSDN as there are some copyright concerns. Therefore, I suggest that you check the "remarks" section of the entry on ReplaceFile and note that there is no flag similar to the one for MoveFile.