[PATCH 2/2 (resend)] shell32: Also compare UNIX realpaths in SHChangeNotify

Andrew Eikum aeikum at codeweavers.com
Wed Aug 4 08:25:16 CDT 2010


On 08/04/2010 05:24 AM, Alexandre Julliard wrote:
> Andrew Eikum<aeikum at 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



More information about the wine-devel mailing list