This patch reworks the scanf() code to support suppressing, using a length and adds support for %m. It also fixes some bugs and adds error messages for a missing variable. %u, %v and %z are still not supported, but a message is now generated saying so.
There are patches for development and V0.9. I'll push the test suite change shortly.