mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-10-28 15:53:51 +01:00
JsonConfig: refactor string buffer JSON handling for robustness
This commit is contained in:
@@ -86,19 +86,19 @@ void ffParseCommandJsonObject(FFCommandOptions* options, yyjson_val* module)
|
||||
|
||||
if (ffStrEqualsIgnCase(key, "shell"))
|
||||
{
|
||||
ffStrbufSetS(&options->shell, yyjson_get_str(val));
|
||||
ffStrbufSetJsonVal(&options->shell, val);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (ffStrEqualsIgnCase(key, "param"))
|
||||
{
|
||||
ffStrbufSetS(&options->param, yyjson_get_str(val));
|
||||
ffStrbufSetJsonVal(&options->param, val);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (ffStrEqualsIgnCase(key, "text"))
|
||||
{
|
||||
ffStrbufSetS(&options->text, yyjson_get_str(val));
|
||||
ffStrbufSetJsonVal(&options->text, val);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -312,19 +312,19 @@ void ffParseDiskJsonObject(FFDiskOptions* options, yyjson_val* module)
|
||||
|
||||
if (ffStrEqualsIgnCase(key, "folders"))
|
||||
{
|
||||
ffStrbufSetS(&options->folders, yyjson_get_str(val));
|
||||
ffStrbufSetJsonVal(&options->folders, val);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (ffStrEqualsIgnCase(key, "hideFolders"))
|
||||
{
|
||||
ffStrbufSetS(&options->hideFolders, yyjson_get_str(val));
|
||||
ffStrbufSetJsonVal(&options->hideFolders, val);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (ffStrEqualsIgnCase(key, "hideFS"))
|
||||
{
|
||||
ffStrbufSetS(&options->hideFS, yyjson_get_str(val));
|
||||
ffStrbufSetJsonVal(&options->hideFS, val);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -138,7 +138,7 @@ void ffParseDiskIOJsonObject(FFDiskIOOptions* options, yyjson_val* module)
|
||||
|
||||
if (ffStrEqualsIgnCase(key, "namePrefix"))
|
||||
{
|
||||
ffStrbufSetS(&options->namePrefix, yyjson_get_str(val));
|
||||
ffStrbufSetJsonVal(&options->namePrefix, val);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -407,7 +407,7 @@ void ffParseLocalIpJsonObject(FFLocalIpOptions* options, yyjson_val* module)
|
||||
|
||||
if (ffStrEqualsIgnCase(key, "namePrefix"))
|
||||
{
|
||||
ffStrbufSetS(&options->namePrefix, yyjson_get_str(val));
|
||||
ffStrbufSetJsonVal(&options->namePrefix, val);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -152,7 +152,7 @@ void ffParseNetIOJsonObject(FFNetIOOptions* options, yyjson_val* module)
|
||||
|
||||
if (ffStrEqualsIgnCase(key, "namePrefix"))
|
||||
{
|
||||
ffStrbufSetS(&options->namePrefix, yyjson_get_str(val));
|
||||
ffStrbufSetJsonVal(&options->namePrefix, val);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -345,7 +345,12 @@ void ffParsePackagesJsonObject(FFPackagesOptions* options, yyjson_val* module)
|
||||
size_t flagIdx, flagMax;
|
||||
yyjson_arr_foreach(val, flagIdx, flagMax, flagObj)
|
||||
{
|
||||
const char* flag = yyjson_get_str(flagObj);
|
||||
if (!yyjson_is_str(flagObj))
|
||||
{
|
||||
ffPrintError(FF_PACKAGES_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "Invalid JSON value for %s", key);
|
||||
continue;
|
||||
}
|
||||
const char* flag = unsafe_yyjson_get_str(flagObj);
|
||||
|
||||
#define FF_TEST_PACKAGE_NAME(name) else if (ffStrEqualsIgnCase(flag, #name)) { options->disabled |= FF_PACKAGES_FLAG_ ## name ## _BIT; }
|
||||
switch (toupper(flag[0]))
|
||||
|
||||
@@ -167,7 +167,7 @@ void ffParsePhysicalDiskJsonObject(FFPhysicalDiskOptions* options, yyjson_val* m
|
||||
|
||||
if (ffStrEqualsIgnCase(key, "namePrefix"))
|
||||
{
|
||||
ffStrbufSetS(&options->namePrefix, yyjson_get_str(val));
|
||||
ffStrbufSetJsonVal(&options->namePrefix, val);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@ void ffParsePublicIpJsonObject(FFPublicIpOptions* options, yyjson_val* module)
|
||||
|
||||
if (ffStrEqualsIgnCase(key, "url"))
|
||||
{
|
||||
ffStrbufSetS(&options->url, yyjson_get_str(val));
|
||||
ffStrbufSetJsonVal(&options->url, val);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -152,7 +152,7 @@ void ffParseSeparatorJsonObject(FFSeparatorOptions* options, yyjson_val* module)
|
||||
|
||||
if (ffStrEqualsIgnCase(key, "string"))
|
||||
{
|
||||
ffStrbufSetS(&options->string, yyjson_get_str(val));
|
||||
ffStrbufSetJsonVal(&options->string, val);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -72,13 +72,13 @@ void ffParseWeatherJsonObject(FFWeatherOptions* options, yyjson_val* module)
|
||||
|
||||
if (ffStrEqualsIgnCase(key, "location"))
|
||||
{
|
||||
ffStrbufSetS(&options->location, yyjson_get_str(val));
|
||||
ffStrbufSetJsonVal(&options->location, val);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (ffStrEqualsIgnCase(key, "outputFormat"))
|
||||
{
|
||||
ffStrbufSetS(&options->outputFormat, yyjson_get_str(val));
|
||||
ffStrbufSetJsonVal(&options->outputFormat, val);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user