Image: try fixing caching

This commit is contained in:
李通洲
2022-12-22 02:40:56 +08:00
parent 0cacedfc5d
commit f50b478966
3 changed files with 21 additions and 5 deletions
+1 -1
View File
@@ -138,7 +138,7 @@ static void defaultConfig(FFinstance* instance)
instance->config.logo.paddingRight = 4;
instance->config.logo.printRemaining = true;
instance->config.logo.chafaFgOnly = true;
instance->config.logo.chafaFgOnly = false;
ffStrbufInitS(&instance->config.logo.chafaSymbols, "block+border+space-wide-inverted"); // Chafa default
ffStrbufInit(&instance->config.colorKeys);
-1
View File
@@ -210,7 +210,6 @@ typedef struct FFstate
#endif
FFlist configDirs;
FFstrbuf cacheDir;
} FFstate;
typedef struct FFinstance
+20 -3
View File
@@ -24,7 +24,12 @@
static inline char* realpath(const char* restrict file_name, char* restrict resolved_name)
{
return _fullpath(resolved_name, file_name, _MAX_PATH);
char* result = _fullpath(resolved_name, file_name, _MAX_PATH);
if(result)
{
resolved_name[1] = resolved_name[0]; // Drive Name
resolved_name[0] = '/';
}
}
#endif
@@ -270,7 +275,7 @@ static bool printImageChafa(FFinstance* instance, FFLogoRequestData* requestData
ffchafa_canvas_config_set_symbol_map(canvasConfig, symbolMap);
ffchafa_canvas_config_set_color_space(canvasConfig, CHAFA_COLOR_SPACE_DIN99D);
ffchafa_canvas_config_set_canvas_mode(canvasConfig, CHAFA_CANVAS_MODE_TRUECOLOR);
ffchafa_canvas_config_set_fg_only_enabled(canvasConfig, instance->config.logo.chafaFgOnly);
// ffchafa_canvas_config_set_fg_only_enabled(canvasConfig, instance->config.logo.chafaFgOnly);
// TODO: expose more chafa configs to fastfetch flags
ChafaCanvas* canvas = ffchafa_canvas_new(canvasConfig);
@@ -587,7 +592,19 @@ bool ffLogoPrintImageIfExists(FFinstance* instance, FFLogoType type)
requestData.logoPixelHeight = simpleCeil((double) instance->config.logo.height * requestData.characterPixelHeight);
ffStrbufInitA(&requestData.cacheDir, PATH_MAX * 2);
ffStrbufAppend(&requestData.cacheDir, &instance->state.cacheDir);
#if !(defined(_WIN32) || defined(__APPLE__) || defined(__ANDROID__))
ffStrbufAppendS(&requestData.cacheDir, getenv("XDG_CACHE_HOME"));
#endif
if(requestData.cacheDir.length == 0)
{
ffStrbufAppendS(&requestData.cacheDir, instance->state.passwd->pw_dir);
ffStrbufAppendS(&requestData.cacheDir, "/.cache/");
}
else
ffStrbufEnsureEndsWithC(&requestData.cacheDir, '/');
ffStrbufAppendS(&requestData.cacheDir, "images");
ffStrbufEnsureFree(&requestData.cacheDir, PATH_MAX);