WineHQ
Bug Tracking Database – Bug 18734

 Bugzilla

 

Last modified: 2018-09-13 04:06:33 UTC  

DlgDirList(DDL_DRIVES|DDL_DIRECTORY) on 16-bits displays files on listbox in Windows but not Wine.

Bug 18734 - DlgDirList(DDL_DRIVES|DDL_DIRECTORY) on 16-bits displays files on listbox in Windows but not Wine.
DlgDirList(DDL_DRIVES|DDL_DIRECTORY) on 16-bits displays files on listbox in ...
Status: CLOSED FIXED
AppDB: Show Apps affected by this bug
Product: Wine
Classification: Unclassified
Component: user32
1.1.22
x86 Linux
: P2 normal
: ---
Assigned To: Mr. Bugs
: download, patch, source, win16
Depends on:
Blocks:
  Show dependency tree
 
Reported: 2009-06-01 11:43 UTC by Alex Villacís Lasso
Modified: 2018-09-13 04:06 UTC (History)
7 users (show)

See Also:
Regression SHA1:
Fixed by SHA1: 0a788caf8b4665d7f56443fc2c6d7790edf9defb
Distribution: ---
Staged patchset: https://github.com/wine-staging/wine-staging/tree/master/patches/user.exe16-DlgDirList


Attachments
Screenshot of problem (QEMU virtual session and Wine, side by side) (124.72 KB, image/png)
2009-06-01 11:43 UTC, Alex Villacís Lasso
Details
Test program used to generate screenshot (source plus 16-bit binary) (22.70 KB, application/octet-stream)
2009-06-01 11:50 UTC, Alex Villacís Lasso
Details
Add DLL_EXCLUSIVE flag only when flagset equals DDL_DRIVES (1.02 KB, patch)
2009-06-01 11:52 UTC, Alex Villacís Lasso
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alex Villacís Lasso 2009-06-01 11:43:56 UTC
Created attachment 21484 [details]
Screenshot of problem (QEMU virtual session and Wine, side by side)

When an 16-bit Windows application displays a listbox and manually fills it with DlgDirList (not as a part of a Common Dialog), the flag combination DDL_DRIVES|DLL_DIRECTORY should make files appear according to the set filter. Wine does not do this, as it (incorrectly) appends DDL_EXCLUSIVE to the bitmask of flags before delegating to 32-bit code.
Comment 1 Alex Villacís Lasso 2009-06-01 11:50:00 UTC
Created attachment 21485 [details]
Test program used to generate screenshot (source plus 16-bit binary)

This is a test program I created to see the actual behavior of DlgDirList in 16-bits. The program allows to modify the flags passed into DlgDirList, as well as the filter. The default state of the program is the one that exhibits the bug. The previous screenshot shows the Wine execution of the program, as well as a QEMU virtual machine running Windows 98, and a run of the test program from a Samba share into the host machine.

Program was compiled with the Watcom compiler.
Comment 2 Alex Villacís Lasso 2009-06-01 11:52:36 UTC
Created attachment 21486 [details]
Add DLL_EXCLUSIVE flag only when flagset equals DDL_DRIVES

This is a possible patch that fixes the behavior for me. The patch adds the DDL_EXCLUSIVE flag only if the original bitmask is exactly equal to DDL_DRIVES. This makes the program behavior match the one on Windows 98.
Comment 3 Dmitry Timoshkov 2009-06-02 04:52:39 UTC
It should be possible to add an apropriate test case for this behaviour.
Comment 4 Bruno Jesus 2011-10-07 18:08:53 UTC
Still present in 1.3.29.
Comment 5 Bruno Jesus 2014-02-09 16:14:41 UTC
Still in wine 1.7.12. Patch in comment 2 still fixes it.
Comment 6 super_man 2015-12-16 12:49:42 UTC
still an issue 1.8.rc4. Didnt try the patch.
Comment 7 Gijs Vermeulen 2018-07-13 10:47:35 UTC
Staging patch was upstreamed as: 0a788caf8b4665d7f56443fc2c6d7790edf9defb
Marking FIXED.
Comment 8 Alexandre Julliard 2018-07-20 12:15:27 UTC
Closing bugs fixed in 3.13.
Comment 9 Michael Stefaniuc 2018-09-13 04:06:33 UTC
Removing the 3.0.x milestone from bugs included in 3.0.3.


Privacy Policy
If you have a privacy inquiry regarding this site, please write to [email protected]

Hosted By CodeWeavers