when I studied the format procedure following the mannual:
====== mannual start=====
~f If overflowchar and width are both given and if the output would exceed width, then that many overflowchars are printed instead of the value.
(format #t "~5,,,'xf" 12345) -| 12345
(format #t "~4,,,'xf" 12345) -| xxxx <- bug
====== mannual end=====
but i got like this:
====== repl start=====
scheme@(guile-user)> (format #f "~5,,,'xf" 12345)
"xxxxx"
scheme@(guile-user)> (format #f "~6,,,'xf" 12345)
"12345."
====== repl end=====