http://bugs.winehq.org/show_bug.cgi?id=10809
Summary: Directory selection broken in 16-bit File dialog Product: Wine Version: 0.9.50. Platform: Other OS/Version: other Status: UNCONFIRMED Severity: normal Priority: P2 Component: wine-user AssignedTo: wine-bugs@winehq.org ReportedBy: Andrew.Talbot@talbotville.com
The following patch renders the "Directories" pane of 16-bit File dialogs inoperative.
Git commit 873799df246ea107a139ec898686490b20a1de7b user32: Fix returned value of LB_DIR.
http://bugs.winehq.org/show_bug.cgi?id=10809
Andrew Talbot Andrew.Talbot@talbotville.com changed:
What |Removed |Added ---------------------------------------------------------------------------- OS/Version|other |Linux
http://bugs.winehq.org/show_bug.cgi?id=10809
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dank@kegel.com Keywords| |regression
--- Comment #1 from Dan Kegel dank@kegel.com 2007-12-17 19:39:30 --- For the search-challenged, that's
http://www.winehq.org/pipermail/wine-cvs/2007-November/037994.html
http://bugs.winehq.org/show_bug.cgi?id=10809
Dmitry Timoshkov dmitry@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |a_villacis@palosanto.com
--- Comment #2 from Dmitry Timoshkov dmitry@codeweavers.com 2007-12-18 03:02:55 --- Adding author of the patch to the cc: list.
http://bugs.winehq.org/show_bug.cgi?id=10809
--- Comment #3 from Alex Villacís Lasso a_villacis@palosanto.com 2007-12-18 09:38:10 --- Could you please indicate whether the app itself needs to be 16-bit, or just has to display a 16-bit-style dialog?
Which app displays the regression?
http://bugs.winehq.org/show_bug.cgi?id=10809
Paul Romanyszyn pgr@arcelectronicsinc.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |pgr@arcelectronicsinc.com
--- Comment #4 from Paul Romanyszyn pgr@arcelectronicsinc.com 2007-12-18 09:52:51 --- Just checked with last nights git with Delphi 1.0 and Borland BC++4.5 and in the IDE file open dialog no info shows.I can supply a simple 16 bit exe if required.
http://bugs.winehq.org/show_bug.cgi?id=10809
--- Comment #5 from Paul Romanyszyn pgr@arcelectronicsinc.com 2007-12-18 10:37:04 --- Created an attachment (id=9684) --> (http://bugs.winehq.org/attachment.cgi?id=9684) Correct wrong constant used for initial count
I think the maxinsert should start at 0 not LB_ERR which is -1. This change make the dialog work and I think that was the intended function of the new variable. I will send to wine patches shortly.
http://bugs.winehq.org/show_bug.cgi?id=10809
--- Comment #6 from Alex Villacís Lasso a_villacis@palosanto.com 2007-12-18 10:43:13 --- (In reply to comment #5)
Created an attachment (id=9684)
--> (http://bugs.winehq.org/attachment.cgi?id=9684) [details]
Correct wrong constant used for initial count
I think the maxinsert should start at 0 not LB_ERR which is -1. This change make the dialog work and I think that was the intended function of the new variable. I will send to wine patches shortly.
This patch breaks the user32 tests:
listbox.c:584: Test failed: SendMessage(LB_DIR, 0, *) returned incorrect index (expected 59 got 60)! listbox.c:605: Test failed: SendMessage(LB_DIR, 0, w*.c) returned incorrect index (expected 2 got 3)! listbox.c:632: Test failed: SendMessage(LB_DIR, DDL_DIRECTORY, *) returned incorrect index (expected 60 got 61)! listbox.c:650: Test failed: SendMessage(LB_DIR, DDL_DIRECTORY, w*.c) returned incorrect index (expected 2 got 3)! listbox.c:824: Test failed: SendMessage(LB_DIR, DDL_DIRECTORY|DDL_EXCLUSIVE, *) failed - 0x00000012 listbox.c:831: Test failed: SendMessage(LB_DIR, DDL_DIRECTORY|DDL_EXCLUSIVE, *) returned incorrect index! listbox.c:841: Test failed: SendMessage(LB_DIR, DDL_DIRECTORY|DDL_EXCLUSIVE, w*.c) returned 0 expected -1 make: *** [listbox.ok] Error 7
http://bugs.winehq.org/show_bug.cgi?id=10809
--- Comment #7 from Paul Romanyszyn pgr@arcelectronicsinc.com 2007-12-18 11:10:55 --- We don't have any way to put 16 bit tests into the tree. Is there an off by 1 difference between 16 and 32 bit?
http://bugs.winehq.org/show_bug.cgi?id=10809
--- Comment #8 from Alex Villacís Lasso a_villacis@palosanto.com 2007-12-18 11:20:15 --- (In reply to comment #7)
We don't have any way to put 16 bit tests into the tree. Is there an off by 1 difference between 16 and 32 bit?
The issue of 16-bit tests is a bit difficult. The best way to track this down would be to prepare a 16-bit executable that exhibits the bug, and attach it here, as suggested earlier.
http://bugs.winehq.org/show_bug.cgi?id=10809
--- Comment #9 from Dan Kegel dank@kegel.com 2007-12-18 12:48:40 --- Someone posted a proposed fix, http://winehq.org/pipermail/wine-patches/2007-December/048107.html
Alex, there is a 16 bit test suite, would you like to try it?
http://bugs.winehq.org/show_bug.cgi?id=10809
--- Comment #10 from Andrew Talbot Andrew.Talbot@talbotville.com 2007-12-18 13:07:44 --- Blitzin 2.34 is a 16-bit app. It exhibits this phenomenon. It can be freely downloaded from http://www.chessclub.com/bits/interface/blitzin234.exe. Please note that Wine needs to be set to Win95 to install it.
Choose "File > New Connection" and click on the "Connect as guest" button.
When logged in, choose "File > Log Console". The "Directories" pane in the resulting dialog should fail to operate correctly.
http://bugs.winehq.org/show_bug.cgi?id=10809
Alex Villacís Lasso a_villacis@palosanto.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1
--- Comment #11 from Alex Villacís Lasso a_villacis@palosanto.com 2007-12-18 14:04:41 --- (In reply to comment #10)
Blitzin 2.34 is a 16-bit app. It exhibits this phenomenon. It can be freely downloaded from http://www.chessclub.com/bits/interface/blitzin234.exe. Please note that Wine needs to be set to Win95 to install it.
Choose "File > New Connection" and click on the "Connect as guest" button.
When logged in, choose "File > Log Console". The "Directories" pane in the resulting dialog should fail to operate correctly.
Confirmed. Assigning to myself.
It seems that LB_DIR needs a test on what should be returned when the wildcard does not match any files at all. The problematic LB_DIR uses wParam=0, and lParam="*.txt", when there are no *.txt in the current directory. The need for the test is supported by the fact that the regression is "fixed" with a simple 'touch whatever.txt' at the initial directory.
http://bugs.winehq.org/show_bug.cgi?id=10809
Alex Villacís Lasso a_villacis@palosanto.com changed:
What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|wine-bugs@winehq.org |a_villacis@palosanto.com Status|ASSIGNED |NEW
--- Comment #12 from Alex Villacís Lasso a_villacis@palosanto.com 2007-12-18 14:06:22 --- I *really* mean to assign the bug to myself :-)
http://bugs.winehq.org/show_bug.cgi?id=10809
Alex Villacís Lasso a_villacis@palosanto.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #9684 is|0 |1 obsolete| |
--- Comment #13 from Alex Villacís Lasso a_villacis@palosanto.com 2007-12-19 09:59:16 --- Created an attachment (id=9695) --> (http://bugs.winehq.org/attachment.cgi?id=9695) Fix for regression in DlgDirList
Recent fixes to LB_DIR behavior for returned value caused a regression in the DlgDirList[A|W] function. The fix for LB_DIR aimed to comply to the documented and tested behavior that it should return the last inserted index. Since the listbox indexes are 0-based, this implies that in the case that LB_DIR inserts nothing, it should return -1. Unfortunately, DlgDirList[A|W] took this -1 as a fatal error and stops filling entries, causing the regression. This patch fixes the regression and adds tests showing that the LB_DIR behavior is actually correct, and also tests DlgDirList for the fixed behavior.
Patch already sent to wine-patches.
Changelog: * DlgDirList should not stop filling listbox if one category does not return any files in LB_DIR * Tests showing that LB_DIR behavior is already correct for wildcard that does not match any files. * Tests showing DlgDirList behavior for wildcard that does not match any files, including fixed behavi
http://bugs.winehq.org/show_bug.cgi?id=10809
--- Comment #14 from Alex Villacís Lasso a_villacis@palosanto.com 2007-12-19 11:09:15 --- (In reply to comment #13)
Created an attachment (id=9695)
--> (http://bugs.winehq.org/attachment.cgi?id=9695) [details]
Fix for regression in DlgDirList
Scratch that, the patch does *NOT* fix the regression, although the behavior fixed was really in need of a test.
http://bugs.winehq.org/show_bug.cgi?id=10809
--- Comment #15 from Alex Villacís Lasso a_villacis@palosanto.com 2007-12-20 10:59:16 --- Created an attachment (id=9723) --> (http://bugs.winehq.org/attachment.cgi?id=9723) Fix for another regression, in 3.1-style file dialog
This patch fixes another regression caused by the fix to LB_DIR to return -1 when no files match the wildcard (validated by tests). The Wine 3.1-style file open/save dialogs assumed LB_ERR is a fatal error and stop. The patch removes this assumption.
This one should really fix this bug. :-) Patch already sent to wine-patches.
Changelog: * LB_DIR can legitimately return -1 when no files match the wildcard, so it is not an error. Do not treat it as such.
http://bugs.winehq.org/show_bug.cgi?id=10809
Andrew Talbot Andrew.Talbot@talbotville.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #16 from Andrew Talbot Andrew.Talbot@talbotville.com 2007-12-21 08:07:23 --- Proper functionality restored. Thanks and well done Alex! (Thanks to Paul and Dan, too.)
http://bugs.winehq.org/show_bug.cgi?id=10809
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #17 from Dan Kegel dank@kegel.com 2008-01-28 05:42:17 --- Closing all RESOLVED FIXED bugs older than four weeks.
https://bugs.winehq.org/show_bug.cgi?id=10809
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|user32 |comdlg32 URL| |https://web.archive.org/web | |/20051210060012/http://www. | |chessclub.com/bits/interfac | |e/blitzin234.exe Keywords| |download, win16 Fixed by SHA1| |c06cfa85c2ab8f792c54bf441d0 | |b0ff9db84e5f1 CC| |focht@gmx.net Hardware|Other |x86
--- Comment #18 from Anastasius Focht focht@gmx.net --- Hello folks,
adding stable download link via Internet Archive for documentation. Also fixing some fields as needed.
https://web.archive.org/web/20051210060012/http://www.chessclub.com/bits/int...
https://www.virustotal.com/gui/file/fd8b7e02138b8634f7e43be20eb390c3f0ac8824...
$ sha1sum blitzin234.exe 99d324f38272a1c59ceec0d4e858256925f03835 blitzin234.exe
$ du -sh blitzin234.exe 1.9M blitzin234.exe
Regards