mirror of
https://github.com/DarkFlippers/unleashed-firmware
synced 2024-11-30 08:20:21 +00:00
acc39a4bc0
* Api Symbols: replace asserts with checks * Api Symbols: replace asserts with checks part 2 * Update no args function signatures with void, to help compiler to track incorrect usage * More unavoidable void * Update PVS config and code to make it happy * Format sources * nfc: fix checks * dead code cleanup & include fixes Co-authored-by: gornekich <n.gorbadey@gmail.com> Co-authored-by: hedger <hedger@users.noreply.github.com> Co-authored-by: hedger <hedger@nanode.su>
33 lines
855 B
C
33 lines
855 B
C
#include "property.h"
|
|
|
|
#include <core/check.h>
|
|
|
|
void property_value_out(PropertyValueContext* ctx, const char* fmt, unsigned int nparts, ...) {
|
|
furi_check(ctx);
|
|
furi_string_reset(ctx->key);
|
|
|
|
va_list args;
|
|
va_start(args, nparts);
|
|
|
|
for(size_t i = 0; i < nparts; ++i) {
|
|
const char* keypart = va_arg(args, const char*);
|
|
furi_string_cat(ctx->key, keypart);
|
|
if(i < nparts - 1) {
|
|
furi_string_push_back(ctx->key, ctx->sep);
|
|
}
|
|
}
|
|
|
|
const char* value_str;
|
|
|
|
if(fmt) {
|
|
furi_string_vprintf(ctx->value, fmt, args);
|
|
value_str = furi_string_get_cstr(ctx->value);
|
|
} else {
|
|
// C string passthrough (no formatting)
|
|
value_str = va_arg(args, const char*);
|
|
}
|
|
|
|
va_end(args);
|
|
|
|
ctx->out(furi_string_get_cstr(ctx->key), value_str, ctx->last, ctx->context);
|
|
}
|