Global: make FFinstance instance a global variable

As discussed in https://github.com/fastfetch-cli/fastfetch/discussions/473
This commit is contained in:
李通洲
2023-06-24 10:59:53 +08:00
parent 48b01c9665
commit d0f093c567
255 changed files with 2020 additions and 2064 deletions
+1 -1
View File
@@ -12,6 +12,6 @@ typedef struct FFCursorResult
FFstrbuf error;
} FFCursorResult;
void ffDetectCursor(const FFinstance* instance, FFCursorResult* result);
void ffDetectCursor(FFCursorResult* result);
#endif
+2 -2
View File
@@ -17,10 +17,10 @@ static void appendColor(FFstrbuf* str, NSDictionary* color)
ffStrbufAppendF(str, "#%02X%02X%02X%02X", r, g, b, a);
}
void ffDetectCursor(const FFinstance* instance, FFCursorResult* result)
void ffDetectCursor(FFCursorResult* result)
{
NSError* error;
NSString* fileName = [NSString stringWithFormat:@"file://%s/Library/Preferences/com.apple.universalaccess.plist", instance->state.platform.homeDir.chars];
NSString* fileName = [NSString stringWithFormat:@"file://%s/Library/Preferences/com.apple.universalaccess.plist", instance.state.platform.homeDir.chars];
NSDictionary* dict = [NSDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:fileName]
error:&error];
if(error)
+18 -19
View File
@@ -9,15 +9,15 @@
#include <stdlib.h>
static bool detectCursorGTK(const FFinstance* instance, FFCursorResult* result)
static bool detectCursorGTK(FFCursorResult* result)
{
const FFGTKResult* gtk = ffDetectGTK4(instance);
const FFGTKResult* gtk = ffDetectGTK4();
if(gtk->cursor.length == 0)
gtk = ffDetectGTK3(instance);
gtk = ffDetectGTK3();
if(gtk->cursor.length == 0)
gtk = ffDetectGTK2(instance);
gtk = ffDetectGTK2();
if(gtk->cursor.length == 0)
return false;
@@ -27,9 +27,9 @@ static bool detectCursorGTK(const FFinstance* instance, FFCursorResult* result)
return true;
}
static void detectCursorFromConfigFile(const FFinstance* instance, const char* relativeFilePath, const char* themeStart, const char* themeDefault, const char* sizeStart, const char* sizeDefault, FFCursorResult* result)
static void detectCursorFromConfigFile(const char* relativeFilePath, const char* themeStart, const char* themeDefault, const char* sizeStart, const char* sizeDefault, FFCursorResult* result)
{
if(ffParsePropFileConfigValues(instance, relativeFilePath, 2, (FFpropquery[]) {
if(ffParsePropFileConfigValues(relativeFilePath, 2, (FFpropquery[]) {
{themeStart, &result->theme},
{sizeStart, &result->size}
})) {
@@ -45,9 +45,9 @@ static void detectCursorFromConfigFile(const FFinstance* instance, const char* r
ffStrbufAppendF(&result->error, "Couldn't find cursor in %s", relativeFilePath);
}
static bool detectCursorFromXResources(const FFinstance* instance, FFCursorResult* result)
static bool detectCursorFromXResources(FFCursorResult* result)
{
ffParsePropFileHomeValues(instance, ".Xresources", 2, (FFpropquery[]) {
ffParsePropFileHomeValues(".Xresources", 2, (FFpropquery[]) {
{"Xcursor.theme :", &result->theme},
{"Xcursor.size :", &result->size}
});
@@ -55,9 +55,8 @@ static bool detectCursorFromXResources(const FFinstance* instance, FFCursorResul
return result->theme.length > 0;
}
static bool detectCursorFromEnv(const FFinstance* instance, FFCursorResult* result)
static bool detectCursorFromEnv(FFCursorResult* result)
{
FF_UNUSED(instance);
const char* xcursor_theme = getenv("XCURSOR_THEME");
if(!ffStrSet(xcursor_theme))
@@ -69,23 +68,23 @@ static bool detectCursorFromEnv(const FFinstance* instance, FFCursorResult* resu
return true;
}
void ffDetectCursor(const FFinstance* instance, FFCursorResult* result)
void ffDetectCursor(FFCursorResult* result)
{
const FFDisplayServerResult* wmde = ffConnectDisplayServer(instance);
const FFDisplayServerResult* wmde = ffConnectDisplayServer();
if(ffStrbufCompS(&wmde->wmPrettyName, FF_WM_PRETTY_WSLG) == 0)
ffStrbufAppendS(&result->error, "WSLg uses native windows cursor");
else if(ffStrbufIgnCaseCompS(&wmde->wmProtocolName, FF_WM_PROTOCOL_TTY) == 0)
ffStrbufAppendS(&result->error, "Cursor isn't supported in TTY");
else if(ffStrbufIgnCaseCompS(&wmde->dePrettyName, FF_DE_PRETTY_PLASMA) == 0)
detectCursorFromConfigFile(instance, "kcminputrc", "cursorTheme =", "Breeze", "cursorSize =", "24", result);
detectCursorFromConfigFile("kcminputrc", "cursorTheme =", "Breeze", "cursorSize =", "24", result);
else if(ffStrbufStartsWithIgnCaseS(&wmde->dePrettyName, FF_DE_PRETTY_LXQT))
detectCursorFromConfigFile(instance, "lxqt/session.conf", "cursor_theme =", "Adwaita", "cursor_size =", "24", result);
detectCursorFromConfigFile("lxqt/session.conf", "cursor_theme =", "Adwaita", "cursor_size =", "24", result);
else if(
!detectCursorGTK(instance, result) &&
!detectCursorFromEnv(instance, result) &&
!ffParsePropFileHome(instance, ".icons/default/index.theme", "Inherits =", &result->theme) &&
!detectCursorFromXResources(instance, result) &&
!ffParsePropFileData(instance, "icons/default/index.theme", "Inherits =", &result->theme)
!detectCursorGTK(result) &&
!detectCursorFromEnv(result) &&
!ffParsePropFileHome(".icons/default/index.theme", "Inherits =", &result->theme) &&
!detectCursorFromXResources(result) &&
!ffParsePropFileData("icons/default/index.theme", "Inherits =", &result->theme)
) ffStrbufAppendS(&result->error, "Couldn't find cursor");
}
+1 -2
View File
@@ -1,7 +1,6 @@
#include "cursor.h"
void ffDetectCursor(const FFinstance* instance, FFCursorResult* result)
void ffDetectCursor(FF_MAYBE_UNUSED FFCursorResult* result)
{
FF_UNUSED(instance, result);
ffStrbufInitS(&result->error, "Not supported on this platform");
}
+1 -3
View File
@@ -2,10 +2,8 @@
#include "util/windows/registry.h"
void ffDetectCursor(const FFinstance* instance, FFCursorResult* result)
void ffDetectCursor(FFCursorResult* result)
{
FF_UNUSED(instance);
FF_HKEY_AUTO_DESTROY hKey;
if(ffRegOpenKeyForRead(HKEY_CURRENT_USER, L"Control Panel\\Cursors", &hKey, &result->error))
{