mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-10-29 08:13:44 +01:00
JsonConfig: refactor JSON key handling to improve safety and consistency
Also make keys case-sensitive
This commit is contained in:
@@ -142,33 +142,32 @@ bool ffParseSeparatorCommandOptions(FFSeparatorOptions* options, const char* key
|
||||
|
||||
void ffParseSeparatorJsonObject(FFSeparatorOptions* options, yyjson_val* module)
|
||||
{
|
||||
yyjson_val *key_, *val;
|
||||
yyjson_val *key, *val;
|
||||
size_t idx, max;
|
||||
yyjson_obj_foreach(module, idx, max, key_, val)
|
||||
yyjson_obj_foreach(module, idx, max, key, val)
|
||||
{
|
||||
const char* key = yyjson_get_str(key_);
|
||||
if(ffStrEqualsIgnCase(key, "type") || ffStrEqualsIgnCase(key, "condition"))
|
||||
if (unsafe_yyjson_equals_str(key, "type") || unsafe_yyjson_equals_str(key, "condition"))
|
||||
continue;
|
||||
|
||||
if (ffStrEqualsIgnCase(key, "string"))
|
||||
if (unsafe_yyjson_equals_str(key, "string"))
|
||||
{
|
||||
ffStrbufSetJsonVal(&options->string, val);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (ffStrEndsWithIgnCase(key, "outputColor"))
|
||||
if (unsafe_yyjson_equals_str(key, "outputColor"))
|
||||
{
|
||||
ffOptionParseColor(yyjson_get_str(val), &options->outputColor);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (ffStrEndsWithIgnCase(key, "length"))
|
||||
if (unsafe_yyjson_equals_str(key, "length"))
|
||||
{
|
||||
options->length = (uint32_t) yyjson_get_uint(val);
|
||||
continue;
|
||||
}
|
||||
|
||||
ffPrintError(FF_SEPARATOR_MODULE_NAME, 0, NULL, FF_PRINT_TYPE_NO_CUSTOM_KEY, "Unknown JSON key %s", key);
|
||||
ffPrintError(FF_SEPARATOR_MODULE_NAME, 0, NULL, FF_PRINT_TYPE_NO_CUSTOM_KEY, "Unknown JSON key %s", unsafe_yyjson_get_str(key));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user