Skip to content
StrWriteFmtInternal

StrWriteFmtInternal

StrWriteFmtInternal

Description

Print out a formatted string with rust-style placeholders to given string o.

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)

Usage examples (Cross-references)
    }
    
    bool StrWriteFmtInternal(Str *o, const char *fmt, TypeSpecificIO *args, u64 argc) {
        if (!o || !fmt) {
            LOG_FATAL("Invalid arguments");
            TypeSpecificIO *argv_ = &(varr)[0];                                                                            \
            u64             argc_ = sizeof(varr) / sizeof(TypeSpecificIO);                                                 \
            StrWriteFmtInternal((input), (fmtstr), argv_, argc_ - 1);                                                      \
        } while (0)
            u64             argc_ = sizeof(varr) / sizeof(TypeSpecificIO) - 1;                                             \
            Str             out_  = StrInit();                                                                             \
            StrWriteFmtInternal(&out_, (fmtstr), argv_, argc_);                                                            \
            fwrite(out_.data, 1, out_.length, (stream));                                                                   \
            fflush(stream);                                                                                                \
            u64             argc_ = sizeof(varr) / sizeof(TypeSpecificIO) - 1;                                             \
            Str             out_  = StrInit();                                                                             \
            StrWriteFmtInternal(&out_, (fmtstr), argv_, argc_);                                                            \
            fwrite(out_.data, 1, out_.length, (stream));                                                                   \
            fputc('\n', (stream));                                                                                         \
Last updated on