The attached patch adds a %b specifier meaning 'binary' to the [format] and [scan] commands. It is thus continuing in the direction pioneered by the recent addition of "0b" in [expr]'s number parsing.
The specifier of course also works with "#" (adding "0b" if nonzero) and wide- and bignum modifiers (%lb, %llb).
In addition, the patch fixes the following bug in [scan]:
% scan 0b101 %i x
1
% puts $x
0
The patch includes proper tests and documentation update. Does it really need a TIP ?
Restoring scan %i bug
After discussion with Don, it appears that the [scan %i] "fix", which is orthogonal to the TIP, is a dangerous breach of compatibility. So let's leave octal in its pond for now. Patch updated to restore the aforementioned bug. Now this patch is 100% faithful to the TIP's text.
File Added: bin2.patch
The mention of "octal" in the previous comment is confusing. I meant, let's just leave %i in all its historical ugliness (which includes things related to octal). Anyway.
TIP accepted, patch committed.