It doesn't use %d currently. It uses %i. And its not to print. It uses this value in the SQL statement. The LastSequence value of the Media table is NEVER negative as i pointed out in the MSDN link. It must always be zero or larger and this is handled by passing %u.

The SELECT * FROM `Media` WHERE `LastSequence` >= %i, should be The SELECT * FROM `Media` WHERE `LastSequence` >= %u. In ready_media_for_files.



From: Mike McCormack <[EMAIL PROTECTED]>
To: EA Durbin <[EMAIL PROTECTED]>
CC: [EMAIL PROTECTED],  wine-devel@winehq.org,  [EMAIL PROTECTED]
Subject: Re: msi: Fix some copy/paste bugs in the implementation of condition operators.
Date: Tue, 06 Jun 2006 00:38:16 +0900


EA Durbin wrote:

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.

I haven't seen any patch for the Wine regression test suite as yet, and that is what I have been asking you to write.

As for files.c, the query in ready_media_for_file() should be passing an unsinged integer as LastSequence must be greater than zero.

You patch is wrong because the value you are printing is an INT, so using %d is correct, and using %u will print the wrong thing when the INT is less than zero.

Mike




Reply via email to