My analysis has not changed it still remains the same to this day.
Case, america's army installer is working backward, not going through the media in the correct order.
Upon troubleshooting this I found that this is due to the query returning the wrong results for LastSequence. I don't have an analysis for what is causing this yet. But this is what is causing the bug and I've never swayed on that.
I did in fact write a test, which does prove this. Hans has a copy of it, and i think i sent it to wine-devel too.
As for files.c, the query in ready_media_for_file() should be passing an unsinged integer as LastSequence must be greater than zero.
http://search.msdn.microsoft.com/search/Redirect.aspx?title=Media+Table+%5bW...
less than or equal to the value in the LastSequence column, and greater
than the LastSequence value of the previous disk (or greater than 0, for the first entry in the Media table).
From: Mike McCormack mike@codeweavers.com To: EA Durbin ead1234@hotmail.com CC: dank@kegel.com, wine-devel@winehq.org, hans@it.vu.nl Subject: Re: msi: Fix some copy/paste bugs in the implementation of condition operators. Date: Tue, 06 Jun 2006 00:24:00 +0900
EA Durbin wrote:
obviously my patch wasn't "wrong" as you so put it, as this is the same thing as the one I submitted. I just phrased the definition of it wrong assuming the conditional statements were used by SQL.
Your patch caused the regression tests to fail, and Hans' did not.
err:msi:msi_get_dialog_record query failed for dialog L"boo" fixme:msi:ACTION_PerformUIAction unhandled msi action L"boo" package.c:618: Test failed: wrong return val make[1]: *** [package.ok] Error 1
You seem to have a different theory of what's causing the failure every day.
I'm somewhat disappointed that you refuse to write a regression test to show what you've found. It would give me confidence in what your analysis of the problem, assist me in fixing the problem, and prevent it from happening again.
Mike