That is unrelated to the patch, both in the current trunk, with your
patch as well as with my patch there is just
res.range.likely = res.knownrange ? res.range.max : res.range.min;
res.range.unlikely = res.range.max;
for these cases.
Do you want likely 2 because that the shortest length for more than
one value (only a single value has the shortest length)?
Something else?
For "%#o" the shortest output of one byte (for zero) is less likely
than the next shortest output of 2 bytes (0 vs 01).
For "%#x" it's one byte vs three bytes (0 vs 0x1).
Since specifying '#' clearly indicates the user wants the base
prefix it seems very likely that the argument will be non-zero.
Whether it's going to be greater than 7 or 15 is not so clear.
So I think setting the likely counter to 2 for octal and 3 for
hexadecimal makes the most sense.