Hello Guile developers,
I was trying this:
(use-modules (ice-9 format))
(format #t "~d block~:p~%" 1) ;; and 0, and 2 etc...
This triggers a warning about the format-string argument count:
;;; <stdin>:3:0: warning: "~d block~:p~%": wrong number of `format'
arguments: expected 2, got 1
The manual says this about "~:p":
~:p re-uses the preceding argument instead of taking a new
one, which can be convenient when printing some sort of count.
(format #t "~d cat~:p" 9) ⊣ 9 cats
(format #t "~d pupp~:@p" 5) ⊣ 5 puppies
I was looking at the code, and it appears that the warning is triggered
in "module/language/tree-il/analyze.scm" in ‘format-analysis’ and more
precisely in ‘check-format-args’, due to the lack of support for "~:p"
and presumably "~:@p" in ‘format-string-argument-count’.
Regards, Frank
--
In protocol design, perfection has been reached not when there is
nothing left to add, but when there is nothing left to take away.
-- RFC 1925