On Fri, Sep 19, 2008 at 4:51 PM, James Hawkins truiken@gmail.com wrote:
On Fri, Sep 19, 2008 at 4:39 PM, Austin English austinenglish@gmail.com wrote:
Found using -Werror (strangely, didn't occur on ubuntu, but does on PC-BSD)...Must be the gcc version.
@@ -63,7 +63,7 @@ static void test_sscanf( void ) ok( sscanf("1233", "%p", &ptr) == 1, "sscanf failed\n" ); ok( ptr == (void *)0x1233,"sscanf reads %p instead of %x\n", ptr, 0x1233 );
- ok( sscanf("1234", "%P", &ptr) == 1, "sscanf failed\n" );
- ok( sscanf("1234", "%p", &ptr) == 1, "sscanf failed\n" ); ok( ptr == (void *)0x1234,"sscanf reads %p instead of %x\n", ptr, 0x1234 );
How do you figure that's a typo? The test right above it is exactly the same as what you've changed this one to. I didn't write the test, but I'm pretty sure the original author meant to test both cases. This is a good reason why tests should be commented, so the author's intent is well known.
-- James Hawkins
Relevant code: /* check %p with no hex digits */ ok( sscanf("1233", "%p", &ptr) == 1, "sscanf failed\n" ); ok( ptr == (void *)0x1233,"sscanf reads %p instead of %x\n", ptr, 0x1233 );
ok( sscanf("1234", "%P", &ptr) == 1, "sscanf failed\n" ); ok( ptr == (void *)0x1234,"sscanf reads %p instead of %x\n", ptr, 0x1234 );
Comment reads %p. All the other chars are lower case, and you can see the values are different (1233 vs 1234).
-Austin