StrWriteFmtInternal
- Function
- August 22, 2025
Table of Contents
StrWriteFmtInternal
StrWriteFmtInternal
Description
Print out a formatted string with rust-style placeholders to given string o
.
Warning
Directly passing literals like 1337
is not supported, especially const char* literals. For constants like integers, booleans, you can use LVAL(r-value)
to convert an l-value to an r-value an then use in FMT
like LVAL(false)
Parameters
Name | Direction | Description |
---|---|---|
o | out | Contents appended to this string. |
fmtstr | in | Format string with placeholders. |
argv | in | Arguments that placeholders will be replaced with. |
argc | in | Number of arguments. |
Success
Placeholders in fmtstr
are replaced by passed arguments.
Failure
Does not return, displays log messages.
Usage example (Cross-references)
- In
Io.h:293
:
TypeSpecificIO *argv_##__LINE__ = &(varr)[0]; \
size argc_##__LINE__ = sizeof(varr) / sizeof(TypeSpecificIO); \
StrWriteFmtInternal((input), (fmtstr), argv_##__LINE__, argc_##__LINE__ - 1); \
} while (0)
- In
Io.h:392
:
size argc_##__LINE__ = sizeof(varr) / sizeof(TypeSpecificIO) - 1; \
Str out_##__LINE__ = StrInit(); \
StrWriteFmtInternal(&out_##__LINE__, (fmtstr), argv_##__LINE__, argc_##__LINE__); \
fwrite(out_##__LINE__.data, 1, out_##__LINE__.length, (stream)); \
StrDeinit(&out_##__LINE__); \
- In
Io.h:429
:
size argc_##__LINE__ = sizeof(varr) / sizeof(TypeSpecificIO) - 1; \
Str out_##__LINE__ = StrInit(); \
StrWriteFmtInternal(&out_##__LINE__, (fmtstr), argv_##__LINE__, argc_##__LINE__); \
fwrite(out_##__LINE__.data, 1, out_##__LINE__.length, (stream)); \
fputc('\n', (stream)); \
- In
Io.c:217
:
}
bool StrWriteFmtInternal(Str* o, const char* fmt, TypeSpecificIO* args, size argc) {
if (!o || !fmt) {
LOG_FATAL("Invalid arguments");