mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-11-06 05:04:17 +01:00
Global: make FFinstance instance a global variable
As discussed in https://github.com/fastfetch-cli/fastfetch/discussions/473
This commit is contained in:
+210
-208
@@ -17,6 +17,8 @@
|
||||
|
||||
#include "modules/modules.h"
|
||||
|
||||
FFinstance instance; // Global singleton
|
||||
|
||||
static void initState(FFstate* state)
|
||||
{
|
||||
state->logoWidth = 0;
|
||||
@@ -28,119 +30,119 @@ static void initState(FFstate* state)
|
||||
state->configDoc = NULL;
|
||||
}
|
||||
|
||||
static void defaultConfig(FFinstance* instance)
|
||||
static void defaultConfig(void)
|
||||
{
|
||||
ffInitLogoOptions(&instance->config.logo);
|
||||
ffInitLogoOptions(&instance.config.logo);
|
||||
|
||||
ffStrbufInit(&instance->config.colorKeys);
|
||||
ffStrbufInit(&instance->config.colorTitle);
|
||||
ffStrbufInitS(&instance->config.keyValueSeparator, ": ");
|
||||
ffStrbufInit(&instance.config.colorKeys);
|
||||
ffStrbufInit(&instance.config.colorTitle);
|
||||
ffStrbufInitS(&instance.config.keyValueSeparator, ": ");
|
||||
|
||||
#if defined(__linux__) || defined(__FreeBSD__)
|
||||
ffStrbufInit(&instance->config.playerName);
|
||||
ffStrbufInit(&instance->config.osFile);
|
||||
ffStrbufInit(&instance.config.playerName);
|
||||
ffStrbufInit(&instance.config.osFile);
|
||||
#endif
|
||||
|
||||
instance->config.showErrors = false;
|
||||
instance->config.recache = false;
|
||||
instance->config.allowSlowOperations = false;
|
||||
instance->config.pipe = !isatty(STDOUT_FILENO);
|
||||
instance->config.disableLinewrap = !instance->config.pipe;
|
||||
instance->config.hideCursor = !instance->config.pipe;
|
||||
instance->config.escapeBedrock = true;
|
||||
instance->config.binaryPrefixType = FF_BINARY_PREFIX_TYPE_IEC;
|
||||
instance->config.multithreading = true;
|
||||
instance->config.stat = false;
|
||||
instance->config.noBuffer = false;
|
||||
instance.config.showErrors = false;
|
||||
instance.config.recache = false;
|
||||
instance.config.allowSlowOperations = false;
|
||||
instance.config.pipe = !isatty(STDOUT_FILENO);
|
||||
instance.config.disableLinewrap = !instance.config.pipe;
|
||||
instance.config.hideCursor = !instance.config.pipe;
|
||||
instance.config.escapeBedrock = true;
|
||||
instance.config.binaryPrefixType = FF_BINARY_PREFIX_TYPE_IEC;
|
||||
instance.config.multithreading = true;
|
||||
instance.config.stat = false;
|
||||
instance.config.noBuffer = false;
|
||||
|
||||
ffInitTitleOptions(&instance->config.title);
|
||||
ffInitOSOptions(&instance->config.os);
|
||||
ffInitHostOptions(&instance->config.host);
|
||||
ffInitBiosOptions(&instance->config.bios);
|
||||
ffInitBoardOptions(&instance->config.board);
|
||||
ffInitBrightnessOptions(&instance->config.brightness);
|
||||
ffInitChassisOptions(&instance->config.chassis);
|
||||
ffInitCommandOptions(&instance->config.command);
|
||||
ffInitCustomOptions(&instance->config.custom);
|
||||
ffInitKernelOptions(&instance->config.kernel);
|
||||
ffInitUptimeOptions(&instance->config.uptime);
|
||||
ffInitProcessesOptions(&instance->config.processes);
|
||||
ffInitPackagesOptions(&instance->config.packages);
|
||||
ffInitShellOptions(&instance->config.shell);
|
||||
ffInitDisplayOptions(&instance->config.display);
|
||||
ffInitDEOptions(&instance->config.de);
|
||||
ffInitWMOptions(&instance->config.wm);
|
||||
ffInitWMThemeOptions(&instance->config.wmTheme);
|
||||
ffInitThemeOptions(&instance->config.theme);
|
||||
ffInitIconsOptions(&instance->config.icons);
|
||||
ffInitFontOptions(&instance->config.font);
|
||||
ffInitCursorOptions(&instance->config.cursor);
|
||||
ffInitTerminalOptions(&instance->config.terminal);
|
||||
ffInitTerminalFontOptions(&instance->config.terminalFont);
|
||||
ffInitCPUOptions(&instance->config.cpu);
|
||||
ffInitCPUUsageOptions(&instance->config.cpuUsage);
|
||||
ffInitGPUOptions(&instance->config.gpu);
|
||||
ffInitMemoryOptions(&instance->config.memory);
|
||||
ffInitSwapOptions(&instance->config.swap);
|
||||
ffInitDiskOptions(&instance->config.disk);
|
||||
ffInitBatteryOptions(&instance->config.battery);
|
||||
ffInitPowerAdapterOptions(&instance->config.powerAdapter);
|
||||
ffInitLMOptions(&instance->config.lm);
|
||||
ffInitLocaleOptions(&instance->config.locale);
|
||||
ffInitLocalIpOptions(&instance->config.localIP);
|
||||
ffInitPublicIpOptions(&instance->config.publicIP);
|
||||
ffInitWeatherOptions(&instance->config.weather);
|
||||
ffInitWifiOptions(&instance->config.wifi);
|
||||
ffInitPlayerOptions(&instance->config.player);
|
||||
ffInitMediaOptions(&instance->config.media);
|
||||
ffInitDateTimeOptions(&instance->config.dateTime);
|
||||
ffInitVulkanOptions(&instance->config.vulkan);
|
||||
ffInitWallpaperOptions(&instance->config.wallpaper);
|
||||
ffInitOpenGLOptions(&instance->config.openGL);
|
||||
ffInitOpenCLOptions(&instance->config.openCL);
|
||||
ffInitUsersOptions(&instance->config.users);
|
||||
ffInitBluetoothOptions(&instance->config.bluetooth);
|
||||
ffInitSoundOptions(&instance->config.sound);
|
||||
ffInitSeparatorOptions(&instance->config.separator);
|
||||
ffInitGamepadOptions(&instance->config.gamepad);
|
||||
ffInitColorsOptions(&instance->config.colors);
|
||||
ffInitTitleOptions(&instance.config.title);
|
||||
ffInitOSOptions(&instance.config.os);
|
||||
ffInitHostOptions(&instance.config.host);
|
||||
ffInitBiosOptions(&instance.config.bios);
|
||||
ffInitBoardOptions(&instance.config.board);
|
||||
ffInitBrightnessOptions(&instance.config.brightness);
|
||||
ffInitChassisOptions(&instance.config.chassis);
|
||||
ffInitCommandOptions(&instance.config.command);
|
||||
ffInitCustomOptions(&instance.config.custom);
|
||||
ffInitKernelOptions(&instance.config.kernel);
|
||||
ffInitUptimeOptions(&instance.config.uptime);
|
||||
ffInitProcessesOptions(&instance.config.processes);
|
||||
ffInitPackagesOptions(&instance.config.packages);
|
||||
ffInitShellOptions(&instance.config.shell);
|
||||
ffInitDisplayOptions(&instance.config.display);
|
||||
ffInitDEOptions(&instance.config.de);
|
||||
ffInitWMOptions(&instance.config.wm);
|
||||
ffInitWMThemeOptions(&instance.config.wmTheme);
|
||||
ffInitThemeOptions(&instance.config.theme);
|
||||
ffInitIconsOptions(&instance.config.icons);
|
||||
ffInitFontOptions(&instance.config.font);
|
||||
ffInitCursorOptions(&instance.config.cursor);
|
||||
ffInitTerminalOptions(&instance.config.terminal);
|
||||
ffInitTerminalFontOptions(&instance.config.terminalFont);
|
||||
ffInitCPUOptions(&instance.config.cpu);
|
||||
ffInitCPUUsageOptions(&instance.config.cpuUsage);
|
||||
ffInitGPUOptions(&instance.config.gpu);
|
||||
ffInitMemoryOptions(&instance.config.memory);
|
||||
ffInitSwapOptions(&instance.config.swap);
|
||||
ffInitDiskOptions(&instance.config.disk);
|
||||
ffInitBatteryOptions(&instance.config.battery);
|
||||
ffInitPowerAdapterOptions(&instance.config.powerAdapter);
|
||||
ffInitLMOptions(&instance.config.lm);
|
||||
ffInitLocaleOptions(&instance.config.locale);
|
||||
ffInitLocalIpOptions(&instance.config.localIP);
|
||||
ffInitPublicIpOptions(&instance.config.publicIP);
|
||||
ffInitWeatherOptions(&instance.config.weather);
|
||||
ffInitWifiOptions(&instance.config.wifi);
|
||||
ffInitPlayerOptions(&instance.config.player);
|
||||
ffInitMediaOptions(&instance.config.media);
|
||||
ffInitDateTimeOptions(&instance.config.dateTime);
|
||||
ffInitVulkanOptions(&instance.config.vulkan);
|
||||
ffInitWallpaperOptions(&instance.config.wallpaper);
|
||||
ffInitOpenGLOptions(&instance.config.openGL);
|
||||
ffInitOpenCLOptions(&instance.config.openCL);
|
||||
ffInitUsersOptions(&instance.config.users);
|
||||
ffInitBluetoothOptions(&instance.config.bluetooth);
|
||||
ffInitSoundOptions(&instance.config.sound);
|
||||
ffInitSeparatorOptions(&instance.config.separator);
|
||||
ffInitGamepadOptions(&instance.config.gamepad);
|
||||
ffInitColorsOptions(&instance.config.colors);
|
||||
|
||||
ffStrbufInit(&instance->config.libPCI);
|
||||
ffStrbufInit(&instance->config.libVulkan);
|
||||
ffStrbufInit(&instance->config.libWayland);
|
||||
ffStrbufInit(&instance->config.libXcbRandr);
|
||||
ffStrbufInit(&instance->config.libXcb);
|
||||
ffStrbufInit(&instance->config.libXrandr);
|
||||
ffStrbufInit(&instance->config.libX11);
|
||||
ffStrbufInit(&instance->config.libGIO);
|
||||
ffStrbufInit(&instance->config.libDConf);
|
||||
ffStrbufInit(&instance->config.libDBus);
|
||||
ffStrbufInit(&instance->config.libXFConf);
|
||||
ffStrbufInit(&instance->config.libSQLite3);
|
||||
ffStrbufInit(&instance->config.librpm);
|
||||
ffStrbufInit(&instance->config.libImageMagick);
|
||||
ffStrbufInit(&instance->config.libZ);
|
||||
ffStrbufInit(&instance->config.libChafa);
|
||||
ffStrbufInit(&instance->config.libEGL);
|
||||
ffStrbufInit(&instance->config.libGLX);
|
||||
ffStrbufInit(&instance->config.libOSMesa);
|
||||
ffStrbufInit(&instance->config.libOpenCL);
|
||||
ffStrbufInit(&instance->config.libfreetype);
|
||||
ffStrbufInit(&instance->config.libPulse);
|
||||
ffStrbufInit(&instance->config.libnm);
|
||||
ffStrbufInit(&instance.config.libPCI);
|
||||
ffStrbufInit(&instance.config.libVulkan);
|
||||
ffStrbufInit(&instance.config.libWayland);
|
||||
ffStrbufInit(&instance.config.libXcbRandr);
|
||||
ffStrbufInit(&instance.config.libXcb);
|
||||
ffStrbufInit(&instance.config.libXrandr);
|
||||
ffStrbufInit(&instance.config.libX11);
|
||||
ffStrbufInit(&instance.config.libGIO);
|
||||
ffStrbufInit(&instance.config.libDConf);
|
||||
ffStrbufInit(&instance.config.libDBus);
|
||||
ffStrbufInit(&instance.config.libXFConf);
|
||||
ffStrbufInit(&instance.config.libSQLite3);
|
||||
ffStrbufInit(&instance.config.librpm);
|
||||
ffStrbufInit(&instance.config.libImageMagick);
|
||||
ffStrbufInit(&instance.config.libZ);
|
||||
ffStrbufInit(&instance.config.libChafa);
|
||||
ffStrbufInit(&instance.config.libEGL);
|
||||
ffStrbufInit(&instance.config.libGLX);
|
||||
ffStrbufInit(&instance.config.libOSMesa);
|
||||
ffStrbufInit(&instance.config.libOpenCL);
|
||||
ffStrbufInit(&instance.config.libfreetype);
|
||||
ffStrbufInit(&instance.config.libPulse);
|
||||
ffStrbufInit(&instance.config.libnm);
|
||||
|
||||
instance->config.percentType = 1;
|
||||
instance.config.percentType = 1;
|
||||
}
|
||||
|
||||
void ffInitInstance(FFinstance* instance)
|
||||
void ffInitInstance(void)
|
||||
{
|
||||
#ifdef WIN32
|
||||
//https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/setlocale-wsetlocale?source=recommendations&view=msvc-170#utf-8-support
|
||||
setlocale(LC_ALL, ".UTF8");
|
||||
#endif
|
||||
|
||||
initState(&instance->state);
|
||||
defaultConfig(instance);
|
||||
initState(&instance.state);
|
||||
defaultConfig();
|
||||
}
|
||||
|
||||
#if defined(FF_HAVE_THREADS) && !(defined(__APPLE__) || defined(_WIN32) || defined(__ANDROID__))
|
||||
@@ -149,19 +151,19 @@ void ffInitInstance(FFinstance* instance)
|
||||
|
||||
#define FF_START_DETECTION_THREADS
|
||||
|
||||
FF_THREAD_ENTRY_DECL_WRAPPER(ffConnectDisplayServer, FFinstance*)
|
||||
FF_THREAD_ENTRY_DECL_WRAPPER(ffDetectQt, FFinstance*)
|
||||
FF_THREAD_ENTRY_DECL_WRAPPER(ffDetectGTK2, FFinstance*)
|
||||
FF_THREAD_ENTRY_DECL_WRAPPER(ffDetectGTK3, FFinstance*)
|
||||
FF_THREAD_ENTRY_DECL_WRAPPER(ffDetectGTK4, FFinstance*)
|
||||
FF_THREAD_ENTRY_DECL_WRAPPER_NOPARAM(ffConnectDisplayServer)
|
||||
FF_THREAD_ENTRY_DECL_WRAPPER_NOPARAM(ffDetectQt)
|
||||
FF_THREAD_ENTRY_DECL_WRAPPER_NOPARAM(ffDetectGTK2)
|
||||
FF_THREAD_ENTRY_DECL_WRAPPER_NOPARAM(ffDetectGTK3)
|
||||
FF_THREAD_ENTRY_DECL_WRAPPER_NOPARAM(ffDetectGTK4)
|
||||
|
||||
void startDetectionThreads(FFinstance* instance)
|
||||
void startDetectionThreads(void)
|
||||
{
|
||||
ffThreadDetach(ffThreadCreate(ffConnectDisplayServerThreadMain, instance));
|
||||
ffThreadDetach(ffThreadCreate(ffDetectQtThreadMain, instance));
|
||||
ffThreadDetach(ffThreadCreate(ffDetectGTK2ThreadMain, instance));
|
||||
ffThreadDetach(ffThreadCreate(ffDetectGTK3ThreadMain, instance));
|
||||
ffThreadDetach(ffThreadCreate(ffDetectGTK4ThreadMain, instance));
|
||||
ffThreadDetach(ffThreadCreate(ffConnectDisplayServerThreadMain, NULL));
|
||||
ffThreadDetach(ffThreadCreate(ffDetectQtThreadMain, NULL));
|
||||
ffThreadDetach(ffThreadCreate(ffDetectGTK2ThreadMain, NULL));
|
||||
ffThreadDetach(ffThreadCreate(ffDetectGTK3ThreadMain, NULL));
|
||||
ffThreadDetach(ffThreadCreate(ffDetectGTK4ThreadMain, NULL));
|
||||
}
|
||||
|
||||
#endif //FF_HAVE_THREADS
|
||||
@@ -169,7 +171,7 @@ void startDetectionThreads(FFinstance* instance)
|
||||
static volatile bool ffDisableLinewrap = true;
|
||||
static volatile bool ffHideCursor = true;
|
||||
|
||||
static void resetConsole()
|
||||
static void resetConsole(void)
|
||||
{
|
||||
if(ffDisableLinewrap)
|
||||
fputs("\033[?7h", stdout);
|
||||
@@ -198,18 +200,18 @@ static void exitSignalHandler(int signal)
|
||||
}
|
||||
#endif
|
||||
|
||||
void ffStart(FFinstance* instance)
|
||||
void ffStart(void)
|
||||
{
|
||||
#ifdef FF_START_DETECTION_THREADS
|
||||
if(instance->config.multithreading)
|
||||
startDetectionThreads(instance);
|
||||
if(instance.config.multithreading)
|
||||
startDetectionThreads();
|
||||
#endif
|
||||
|
||||
ffDisableLinewrap = instance->config.disableLinewrap && !instance->config.pipe;
|
||||
ffHideCursor = instance->config.hideCursor && !instance->config.pipe;
|
||||
ffDisableLinewrap = instance.config.disableLinewrap && !instance.config.pipe;
|
||||
ffHideCursor = instance.config.hideCursor && !instance.config.pipe;
|
||||
|
||||
#ifdef _WIN32
|
||||
if (!instance->config.noBuffer) setvbuf(stdout, NULL, _IOFBF, 4096);
|
||||
if (!instance.config.noBuffer) setvbuf(stdout, NULL, _IOFBF, 4096);
|
||||
SetConsoleCtrlHandler(consoleHandler, TRUE);
|
||||
HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||
DWORD mode = 0;
|
||||
@@ -217,7 +219,7 @@ void ffStart(FFinstance* instance)
|
||||
SetConsoleMode(hStdout, mode | ENABLE_PROCESSED_OUTPUT | ENABLE_VIRTUAL_TERMINAL_PROCESSING);
|
||||
SetConsoleOutputCP(CP_UTF8);
|
||||
#else
|
||||
if (instance->config.noBuffer) setvbuf(stdout, NULL, _IONBF, 0);
|
||||
if (instance.config.noBuffer) setvbuf(stdout, NULL, _IONBF, 0);
|
||||
struct sigaction action = { .sa_handler = exitSignalHandler };
|
||||
sigaction(SIGINT, &action, NULL);
|
||||
sigaction(SIGTERM, &action, NULL);
|
||||
@@ -225,7 +227,7 @@ void ffStart(FFinstance* instance)
|
||||
#endif
|
||||
|
||||
//reset everything to default before we start printing
|
||||
if(!instance->config.pipe)
|
||||
if(!instance.config.pipe)
|
||||
fputs(FASTFETCH_TEXT_MODIFIER_RESET, stdout);
|
||||
|
||||
if(ffHideCursor)
|
||||
@@ -234,121 +236,121 @@ void ffStart(FFinstance* instance)
|
||||
if(ffDisableLinewrap)
|
||||
fputs("\033[?7l", stdout);
|
||||
|
||||
ffLogoPrint(instance);
|
||||
ffLogoPrint();
|
||||
}
|
||||
|
||||
void ffFinish(FFinstance* instance)
|
||||
void ffFinish(void)
|
||||
{
|
||||
if(instance->config.logo.printRemaining)
|
||||
ffLogoPrintRemaining(instance);
|
||||
if(instance.config.logo.printRemaining)
|
||||
ffLogoPrintRemaining();
|
||||
|
||||
resetConsole();
|
||||
}
|
||||
|
||||
static void destroyConfig(FFinstance* instance)
|
||||
static void destroyConfig(void)
|
||||
{
|
||||
ffDestroyLogoOptions(&instance->config.logo);
|
||||
ffDestroyLogoOptions(&instance.config.logo);
|
||||
|
||||
ffStrbufDestroy(&instance->config.colorKeys);
|
||||
ffStrbufDestroy(&instance->config.colorTitle);
|
||||
ffStrbufDestroy(&instance->config.keyValueSeparator);
|
||||
ffStrbufDestroy(&instance.config.colorKeys);
|
||||
ffStrbufDestroy(&instance.config.colorTitle);
|
||||
ffStrbufDestroy(&instance.config.keyValueSeparator);
|
||||
|
||||
#if defined(__linux__) || defined(__FreeBSD__)
|
||||
ffStrbufDestroy(&instance->config.playerName);
|
||||
ffStrbufDestroy(&instance->config.osFile);
|
||||
ffStrbufDestroy(&instance.config.playerName);
|
||||
ffStrbufDestroy(&instance.config.osFile);
|
||||
#endif
|
||||
|
||||
ffDestroyTitleOptions(&instance->config.title);
|
||||
ffDestroyOSOptions(&instance->config.os);
|
||||
ffDestroyHostOptions(&instance->config.host);
|
||||
ffDestroyBiosOptions(&instance->config.bios);
|
||||
ffDestroyBoardOptions(&instance->config.board);
|
||||
ffDestroyBrightnessOptions(&instance->config.brightness);
|
||||
ffDestroyChassisOptions(&instance->config.chassis);
|
||||
ffDestroyCommandOptions(&instance->config.command);
|
||||
ffDestroyCustomOptions(&instance->config.custom);
|
||||
ffDestroyKernelOptions(&instance->config.kernel);
|
||||
ffDestroyUptimeOptions(&instance->config.uptime);
|
||||
ffDestroyProcessesOptions(&instance->config.processes);
|
||||
ffDestroyPackagesOptions(&instance->config.packages);
|
||||
ffDestroyShellOptions(&instance->config.shell);
|
||||
ffDestroyDisplayOptions(&instance->config.display);
|
||||
ffDestroyDEOptions(&instance->config.de);
|
||||
ffDestroyWMOptions(&instance->config.wm);
|
||||
ffDestroyWMThemeOptions(&instance->config.wmTheme);
|
||||
ffDestroyThemeOptions(&instance->config.theme);
|
||||
ffDestroyIconsOptions(&instance->config.icons);
|
||||
ffDestroyFontOptions(&instance->config.font);
|
||||
ffDestroyCursorOptions(&instance->config.cursor);
|
||||
ffDestroyTerminalOptions(&instance->config.terminal);
|
||||
ffDestroyTerminalFontOptions(&instance->config.terminalFont);
|
||||
ffDestroyCPUOptions(&instance->config.cpu);
|
||||
ffDestroyCPUUsageOptions(&instance->config.cpuUsage);
|
||||
ffDestroyGPUOptions(&instance->config.gpu);
|
||||
ffDestroyMemoryOptions(&instance->config.memory);
|
||||
ffDestroySwapOptions(&instance->config.swap);
|
||||
ffDestroyDiskOptions(&instance->config.disk);
|
||||
ffDestroyBatteryOptions(&instance->config.battery);
|
||||
ffDestroyPowerAdapterOptions(&instance->config.powerAdapter);
|
||||
ffDestroyLMOptions(&instance->config.lm);
|
||||
ffDestroyLocaleOptions(&instance->config.locale);
|
||||
ffDestroyLocalIpOptions(&instance->config.localIP);
|
||||
ffDestroyPublicIpOptions(&instance->config.publicIP);
|
||||
ffDestroyWallpaperOptions(&instance->config.wallpaper);
|
||||
ffDestroyWeatherOptions(&instance->config.weather);
|
||||
ffDestroyWifiOptions(&instance->config.wifi);
|
||||
ffDestroyPlayerOptions(&instance->config.player);
|
||||
ffDestroyMediaOptions(&instance->config.media);
|
||||
ffDestroyDateTimeOptions(&instance->config.dateTime);
|
||||
ffDestroyVulkanOptions(&instance->config.vulkan);
|
||||
ffDestroyOpenGLOptions(&instance->config.openGL);
|
||||
ffDestroyOpenCLOptions(&instance->config.openCL);
|
||||
ffDestroyUsersOptions(&instance->config.users);
|
||||
ffDestroyBluetoothOptions(&instance->config.bluetooth);
|
||||
ffDestroySeparatorOptions(&instance->config.separator);
|
||||
ffDestroySoundOptions(&instance->config.sound);
|
||||
ffDestroyGamepadOptions(&instance->config.gamepad);
|
||||
ffDestroyColorsOptions(&instance->config.colors);
|
||||
ffDestroyTitleOptions(&instance.config.title);
|
||||
ffDestroyOSOptions(&instance.config.os);
|
||||
ffDestroyHostOptions(&instance.config.host);
|
||||
ffDestroyBiosOptions(&instance.config.bios);
|
||||
ffDestroyBoardOptions(&instance.config.board);
|
||||
ffDestroyBrightnessOptions(&instance.config.brightness);
|
||||
ffDestroyChassisOptions(&instance.config.chassis);
|
||||
ffDestroyCommandOptions(&instance.config.command);
|
||||
ffDestroyCustomOptions(&instance.config.custom);
|
||||
ffDestroyKernelOptions(&instance.config.kernel);
|
||||
ffDestroyUptimeOptions(&instance.config.uptime);
|
||||
ffDestroyProcessesOptions(&instance.config.processes);
|
||||
ffDestroyPackagesOptions(&instance.config.packages);
|
||||
ffDestroyShellOptions(&instance.config.shell);
|
||||
ffDestroyDisplayOptions(&instance.config.display);
|
||||
ffDestroyDEOptions(&instance.config.de);
|
||||
ffDestroyWMOptions(&instance.config.wm);
|
||||
ffDestroyWMThemeOptions(&instance.config.wmTheme);
|
||||
ffDestroyThemeOptions(&instance.config.theme);
|
||||
ffDestroyIconsOptions(&instance.config.icons);
|
||||
ffDestroyFontOptions(&instance.config.font);
|
||||
ffDestroyCursorOptions(&instance.config.cursor);
|
||||
ffDestroyTerminalOptions(&instance.config.terminal);
|
||||
ffDestroyTerminalFontOptions(&instance.config.terminalFont);
|
||||
ffDestroyCPUOptions(&instance.config.cpu);
|
||||
ffDestroyCPUUsageOptions(&instance.config.cpuUsage);
|
||||
ffDestroyGPUOptions(&instance.config.gpu);
|
||||
ffDestroyMemoryOptions(&instance.config.memory);
|
||||
ffDestroySwapOptions(&instance.config.swap);
|
||||
ffDestroyDiskOptions(&instance.config.disk);
|
||||
ffDestroyBatteryOptions(&instance.config.battery);
|
||||
ffDestroyPowerAdapterOptions(&instance.config.powerAdapter);
|
||||
ffDestroyLMOptions(&instance.config.lm);
|
||||
ffDestroyLocaleOptions(&instance.config.locale);
|
||||
ffDestroyLocalIpOptions(&instance.config.localIP);
|
||||
ffDestroyPublicIpOptions(&instance.config.publicIP);
|
||||
ffDestroyWallpaperOptions(&instance.config.wallpaper);
|
||||
ffDestroyWeatherOptions(&instance.config.weather);
|
||||
ffDestroyWifiOptions(&instance.config.wifi);
|
||||
ffDestroyPlayerOptions(&instance.config.player);
|
||||
ffDestroyMediaOptions(&instance.config.media);
|
||||
ffDestroyDateTimeOptions(&instance.config.dateTime);
|
||||
ffDestroyVulkanOptions(&instance.config.vulkan);
|
||||
ffDestroyOpenGLOptions(&instance.config.openGL);
|
||||
ffDestroyOpenCLOptions(&instance.config.openCL);
|
||||
ffDestroyUsersOptions(&instance.config.users);
|
||||
ffDestroyBluetoothOptions(&instance.config.bluetooth);
|
||||
ffDestroySeparatorOptions(&instance.config.separator);
|
||||
ffDestroySoundOptions(&instance.config.sound);
|
||||
ffDestroyGamepadOptions(&instance.config.gamepad);
|
||||
ffDestroyColorsOptions(&instance.config.colors);
|
||||
|
||||
ffStrbufDestroy(&instance->config.libPCI);
|
||||
ffStrbufDestroy(&instance->config.libVulkan);
|
||||
ffStrbufDestroy(&instance->config.libWayland);
|
||||
ffStrbufDestroy(&instance->config.libXcbRandr);
|
||||
ffStrbufDestroy(&instance->config.libXcb);
|
||||
ffStrbufDestroy(&instance->config.libXrandr);
|
||||
ffStrbufDestroy(&instance->config.libX11);
|
||||
ffStrbufDestroy(&instance->config.libGIO);
|
||||
ffStrbufDestroy(&instance->config.libDConf);
|
||||
ffStrbufDestroy(&instance->config.libDBus);
|
||||
ffStrbufDestroy(&instance->config.libXFConf);
|
||||
ffStrbufDestroy(&instance->config.libSQLite3);
|
||||
ffStrbufDestroy(&instance->config.librpm);
|
||||
ffStrbufDestroy(&instance->config.libImageMagick);
|
||||
ffStrbufDestroy(&instance->config.libZ);
|
||||
ffStrbufDestroy(&instance->config.libChafa);
|
||||
ffStrbufDestroy(&instance->config.libEGL);
|
||||
ffStrbufDestroy(&instance->config.libGLX);
|
||||
ffStrbufDestroy(&instance->config.libOSMesa);
|
||||
ffStrbufDestroy(&instance->config.libOpenCL);
|
||||
ffStrbufDestroy(&instance->config.libfreetype);
|
||||
ffStrbufDestroy(&instance->config.libPulse);
|
||||
ffStrbufDestroy(&instance->config.libnm);
|
||||
ffStrbufDestroy(&instance.config.libPCI);
|
||||
ffStrbufDestroy(&instance.config.libVulkan);
|
||||
ffStrbufDestroy(&instance.config.libWayland);
|
||||
ffStrbufDestroy(&instance.config.libXcbRandr);
|
||||
ffStrbufDestroy(&instance.config.libXcb);
|
||||
ffStrbufDestroy(&instance.config.libXrandr);
|
||||
ffStrbufDestroy(&instance.config.libX11);
|
||||
ffStrbufDestroy(&instance.config.libGIO);
|
||||
ffStrbufDestroy(&instance.config.libDConf);
|
||||
ffStrbufDestroy(&instance.config.libDBus);
|
||||
ffStrbufDestroy(&instance.config.libXFConf);
|
||||
ffStrbufDestroy(&instance.config.libSQLite3);
|
||||
ffStrbufDestroy(&instance.config.librpm);
|
||||
ffStrbufDestroy(&instance.config.libImageMagick);
|
||||
ffStrbufDestroy(&instance.config.libZ);
|
||||
ffStrbufDestroy(&instance.config.libChafa);
|
||||
ffStrbufDestroy(&instance.config.libEGL);
|
||||
ffStrbufDestroy(&instance.config.libGLX);
|
||||
ffStrbufDestroy(&instance.config.libOSMesa);
|
||||
ffStrbufDestroy(&instance.config.libOpenCL);
|
||||
ffStrbufDestroy(&instance.config.libfreetype);
|
||||
ffStrbufDestroy(&instance.config.libPulse);
|
||||
ffStrbufDestroy(&instance.config.libnm);
|
||||
}
|
||||
|
||||
static void destroyState(FFinstance* instance)
|
||||
static void destroyState(void)
|
||||
{
|
||||
ffPlatformDestroy(&instance->state.platform);
|
||||
yyjson_doc_free(instance->state.configDoc);
|
||||
ffPlatformDestroy(&instance.state.platform);
|
||||
yyjson_doc_free(instance.state.configDoc);
|
||||
}
|
||||
|
||||
void ffDestroyInstance(FFinstance* instance)
|
||||
void ffDestroyInstance(void)
|
||||
{
|
||||
destroyConfig(instance);
|
||||
destroyState(instance);
|
||||
destroyConfig();
|
||||
destroyState();
|
||||
}
|
||||
|
||||
//Must be in a file compiled with the libfastfetch target, because the FF_HAVE* macros are not defined for the executable targets
|
||||
void ffListFeatures()
|
||||
void ffListFeatures(void)
|
||||
{
|
||||
fputs(
|
||||
#ifdef FF_HAVE_THREADS
|
||||
|
||||
Reference in New Issue
Block a user