Support use of * in format strings without an index.

This allows `*` to be used in C fashion, without specifying an argument
index to use. Like C, this results in the argument *preceding* the value
for the format specifier itself.
This commit is contained in:
Barinzaya
2025-02-14 10:44:42 -05:00
parent 04830e944b
commit dc2c9b5d51

View File

@@ -613,6 +613,10 @@ wprintf :: proc(w: io.Writer, fmt: string, args: ..any, flush := true, newline :
i += 1
width_index, _, index_ok := _arg_number(fmt, &i, len(args))
if !index_ok {
width_index, index_ok = error_check_arg(fi, false, unused_args^)
}
if index_ok {
unused_args^ -= {width_index}
@@ -638,6 +642,10 @@ wprintf :: proc(w: io.Writer, fmt: string, args: ..any, flush := true, newline :
i += 1
precision_index, _, index_ok := _arg_number(fmt, &i, len(args))
if !index_ok {
precision_index, index_ok = error_check_arg(fi, false, unused_args^)
}
if index_ok {
unused_args^ -= {precision_index}
fi.prec, _, fi.prec_set = int_from_arg(args, precision_index)