Currently, the documentation for std.format.format states that specifiers consist of '%' followed by optional Position, optional Flags, optional Width, optional Precision, and finally the format character.
However, the actual implementation is far more lax, and allows nonsensical specifiers such as the following:
------
import std.stdio;
void main() {
writefln("%3+-.3#-+-.3---+++###s", "WAT");
}
------
The implementation ought to be cleaned up to reject such nonsensical format strings.
Comment #1 by robert.schadek — 2024-12-01T16:29:58Z