%p = pointer %Fp = far pointer? (as in segment:offset pointer in 16-bit Windows)
Oh, right, so there most likely IS a difference between %p and %Fp, since %p will get shown as 0x12345678, whereas %Fp probably gets rendered as something like 0x1234:0x5678.
Nope. There are no far pointers in 32-bit Windows. It's a legacy thing. Just like LPSTR is a "long" pointer to string - yet there is no such thing as 'long' pointer anymore.
a) we DO need to handle the F modifier
Sure.
b) it is probably used to format a FAR pointer (0x1234:0x5678)
Nope. There's no difference between %Fp and %p anymore (not in win32), just like there is no difference between, say, PWORD and LPWORD.
c) it should NOT be confused in any way with the lower-case-only float type specifier
Sure.
Krzysztof