http://bugs.winehq.org/show_bug.cgi?id=28665
--- Comment #5 from Charles Davis cdavis@mymail.mines.edu 2011-10-18 19:40:27 CDT --- Clearly you don't understand what I'm talking about.
tl;dr: The patch you suggest won't work because the code it adds will never get called.
There are two syscalls for reading directories: getdirentries(2) and getdents(2). Mac OS and the BSDs use the former, Linux and Solaris the latter. Wine can use both, but it prefers getdirentries(2) on Mac OS and the BSDs and getdents(2) on Linux and Solaris. When Grazvydas wrote his patch, he only touched the part of Wine that uses getdents(2) (the read_directory_getdents() function), not the part that uses getdirentries(2) (the read_directory_getdirentries() function). That's why the tests succeed on Linux and Solaris but fail on Mac OS and the BSDs.
I can tell that that patch won't help on non-Linux/Solaris just by looking at it. It only touches the read_directory_getdents() function--which only works if you have a getdents(2) function. (FreeBSD has one, but Wine prefers getdirentries(2) there.)