Method __handle_sprintf_format()
- Method __handle_sprintf_format
type __handle_sprintf_format(string attr, string fmt, type arg_type, type cont_type)
- Description
Type attribute handler for
"sprintf_format"
.- Parameter attr
Attribute to handle, either
"sprintf_format"
or"strict_sprintf_format"
.- Parameter fmt
Sprintf-style formatting string to generate type information from.
- Parameter arg_type
Declared type of the fmt argument (typically
string
).- Parameter cont_type
Continuation function type after the fmt argument. This is scanned for the type attribute
"sprintf_args"
to determine where the remaining arguments to sprintf() will come from.This function is typically called from PikeCompiler()->apply_attribute_constant() and is used to perform stricter compile-time argument checking of sprintf()-style functions.
It currently implements two operating modes depending on the value of attr:
"strict_sprintf_format" The formatting string fmt is known to always be passed to sprintf().
"sprintf_format" The formatting string fmt is passed to sprintf() only if there are
"sprintf_args"
.
- Returns
Returns cont_type with
"sprintf_args"
replaced by the arguments required by the fmt formatting string, and"sprintf_result"
replaced by the resulting string type.- See also
PikeCompiler()->apply_attribute_constant(), sprintf()