Andrew Eikum aeikum@codeweavers.com writes:
This fixes bug 18606.
It's possible to refer to the same file in two different ways with PIDLs in Wine. This can cause notifications via SHChangeNotify to fail to trigger. To ensure an apples-to-apples comparison, we convert the incoming PIDLs and the filters to UNIX paths and compare those if the PIDLs fail to match.
You should never compare Unix paths. If you want to compare file identity you should use stat and compare device+inode. But it's not clear to me that this is the right thing to do here, what is the exact case that is failing?
On 08/04/2010 05:24 AM, Alexandre Julliard wrote:
Andrew Eikumaeikum@codeweavers.com writes:
This fixes bug 18606.
It's possible to refer to the same file in two different ways with PIDLs in Wine. This can cause notifications via SHChangeNotify to fail to trigger. To ensure an apples-to-apples comparison, we convert the incoming PIDLs and the filters to UNIX paths and compare those if the PIDLs fail to match.
You should never compare Unix paths. If you want to compare file identity you should use stat and compare device+inode.
Makes sense.
But it's not clear to me that this is the right thing to do here, what is the exact case that is failing?
User calls SHChangeNotifyRegister with a PIDL like "[Desktop][C:]". The shell (or whatever) calls SHChangeNotify with a PIDL in the UNIX filesystem, like "[Desktop][/][home][user][.wine][drive_c]". These should result in a match and the window being notified, but instead the comparison fails.
Andrew
Andrew Eikum aeikum@codeweavers.com writes:
User calls SHChangeNotifyRegister with a PIDL like "[Desktop][C:]". The shell (or whatever) calls SHChangeNotify with a PIDL in the UNIX filesystem, like "[Desktop][/][home][user][.wine][drive_c]". These should result in a match and the window being notified, but instead the comparison fails.
Is this the way it works on Windows? If you access the same file through two different drives, do they both get notified?
On 08/04/2010 08:50 AM, Alexandre Julliard wrote:
Andrew Eikumaeikum@codeweavers.com writes:
User calls SHChangeNotifyRegister with a PIDL like "[Desktop][C:]". The shell (or whatever) calls SHChangeNotify with a PIDL in the UNIX filesystem, like "[Desktop][/][home][user][.wine][drive_c]". These should result in a match and the window being notified, but instead the comparison fails.
Is this the way it works on Windows? If you access the same file through two different drives, do they both get notified?
Nope I guess it doesn't. Back to the drawing board.
I think the tests from [1/2] should still be good, though.
Andrew