better result handling of calculation functions

This commit is contained in:
Linus Dierheimer
2021-04-22 21:41:42 +02:00
parent c12484ec6b
commit e28126f40e
23 changed files with 520 additions and 407 deletions
+14 -11
View File
@@ -5,9 +5,12 @@
void ffPrintFont(FFinstance* instance)
{
ffCalculatePlasmaAndGtk(instance);
const FFstrbuf* plasma = &ffCalculatePlasma(instance)->font;
const FFstrbuf* gtk2 = &ffCalculateGTK2(instance)->font;
const FFstrbuf* gtk3 = &ffCalculateGTK3(instance)->font;
const FFstrbuf* gtk4 = &ffCalculateGTK4(instance)->font;
if(instance->state.plasma.font.length == 0 && instance->state.gtk2.font.length == 0 && instance->state.gtk3.font.length == 0 && instance->state.gtk4.font.length == 0)
if(plasma->length == 0 && gtk2->length == 0 && gtk3->length == 0 && gtk4->length == 0)
{
ffPrintError(instance, FF_FONT_MODULE_NAME, 0, &instance->config.fontKey, &instance->config.fontFormat, FF_FONT_NUM_FORMAT_ARGS, "No fonts found");
return;
@@ -15,25 +18,25 @@ void ffPrintFont(FFinstance* instance)
FF_STRBUF_CREATE(plasmaName);
double plasmaSize;
ffGetFont(instance->state.plasma.font.chars, &plasmaName, &plasmaSize);
ffGetFont(plasma->chars, &plasmaName, &plasmaSize);
FF_STRBUF_CREATE(plasmaPretty);
ffGetFontPretty(&plasmaPretty, &plasmaName, plasmaSize);
FF_STRBUF_CREATE(gtk2Name);
double gtk2Size;
ffGetFont(instance->state.gtk2.font.chars, &gtk2Name, &gtk2Size);
ffGetFont(gtk2->chars, &gtk2Name, &gtk2Size);
FF_STRBUF_CREATE(gtk2Pretty);
ffGetFontPretty(&gtk2Pretty, &gtk2Name, gtk2Size);
FF_STRBUF_CREATE(gtk3Name);
double gtk3Size;
ffGetFont(instance->state.gtk3.font.chars, &gtk3Name, &gtk3Size);
ffGetFont(gtk3->chars, &gtk3Name, &gtk3Size);
FF_STRBUF_CREATE(gtk3Pretty);
ffGetFontPretty(&gtk3Pretty, &gtk3Name, gtk3Size);
FF_STRBUF_CREATE(gtk4Name);
double gtk4Size;
ffGetFont(instance->state.gtk4.font.chars, &gtk4Name, &gtk4Size);
ffGetFont(gtk4->chars, &gtk4Name, &gtk4Size);
FF_STRBUF_CREATE(gtk4Pretty);
ffGetFontPretty(&gtk4Pretty, &gtk4Name, gtk4Size);
@@ -43,7 +46,7 @@ void ffPrintFont(FFinstance* instance)
if(instance->config.fontFormat.length == 0)
{
ffPrintLogoAndKey(instance, FF_FONT_MODULE_NAME, 0, &instance->config.fontKey);
if(instance->state.plasma.font.length > 0)
if(plasma->length > 0)
{
ffStrbufWriteTo(&plasmaPretty, stdout);
fputs(" [Plasma]", stdout);
@@ -56,19 +59,19 @@ void ffPrintFont(FFinstance* instance)
else
{
ffPrintFormatString(instance, FF_FONT_MODULE_NAME, 0, &instance->config.fontKey, &instance->config.fontFormat, NULL, FF_FONT_NUM_FORMAT_ARGS, (FFformatarg[]){
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.plasma.font},
{FF_FORMAT_ARG_TYPE_STRBUF, plasma},
{FF_FORMAT_ARG_TYPE_STRBUF, &plasmaName},
{FF_FORMAT_ARG_TYPE_DOUBLE, &plasmaSize},
{FF_FORMAT_ARG_TYPE_STRBUF, &plasmaPretty},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk2.font},
{FF_FORMAT_ARG_TYPE_STRBUF, gtk2},
{FF_FORMAT_ARG_TYPE_STRBUF, &gtk2Name},
{FF_FORMAT_ARG_TYPE_DOUBLE, &gtk2Size},
{FF_FORMAT_ARG_TYPE_STRBUF, &gtk2Pretty},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk3.font},
{FF_FORMAT_ARG_TYPE_STRBUF, gtk3},
{FF_FORMAT_ARG_TYPE_STRBUF, &gtk3Name},
{FF_FORMAT_ARG_TYPE_DOUBLE, &gtk3Size},
{FF_FORMAT_ARG_TYPE_STRBUF, &gtk3Pretty},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk4.font},
{FF_FORMAT_ARG_TYPE_STRBUF, gtk4},
{FF_FORMAT_ARG_TYPE_STRBUF, &gtk4Name},
{FF_FORMAT_ARG_TYPE_DOUBLE, &gtk4Size},
{FF_FORMAT_ARG_TYPE_STRBUF, &gtk4Pretty},
+13 -9
View File
@@ -5,24 +5,28 @@
void ffPrintIcons(FFinstance* instance)
{
ffCalculatePlasmaAndGtk(instance);
const FFstrbuf* plasma = &ffCalculatePlasma(instance)->icons;
const FFstrbuf* gtk2 = &ffCalculateGTK2(instance)->icons;
const FFstrbuf* gtk3 = &ffCalculateGTK3(instance)->icons;
const FFstrbuf* gtk4 = &ffCalculateGTK4(instance)->icons;
if(instance->state.plasma.icons.length == 0 && instance->state.gtk2.icons.length == 0 && instance->state.gtk3.icons.length == 0 && instance->state.gtk4.icons.length == 0)
if(plasma->length == 0 && gtk2->length == 0 && gtk3->length == 0 && gtk4->length == 0)
{
ffPrintError(instance, FF_ICONS_MODULE_NAME, 0, &instance->config.iconsKey, &instance->config.iconsFormat, FF_ICONS_NUM_FORMAT_ARGS, "No icons could be found");
return;
}
FF_STRBUF_CREATE(gtkPretty);
ffGetGtkPretty(&gtkPretty, &instance->state.gtk2.icons, &instance->state.gtk3.icons, &instance->state.gtk4.icons);
ffGetGtkPretty(&gtkPretty, gtk2, gtk3, gtk4);
if(instance->config.iconsFormat.length == 0)
{
ffPrintLogoAndKey(instance, FF_ICONS_MODULE_NAME, 0, &instance->config.iconsKey);
if(instance->state.plasma.icons.length > 0)
if(plasma->length > 0)
{
ffStrbufWriteTo(&instance->state.plasma.icons, stdout);
ffStrbufWriteTo(plasma, stdout);
fputs(" [Plasma]", stdout);
if(gtkPretty.length > 0)
@@ -34,10 +38,10 @@ void ffPrintIcons(FFinstance* instance)
else
{
ffPrintFormatString(instance, FF_ICONS_MODULE_NAME, 0, &instance->config.iconsKey, &instance->config.iconsFormat, NULL, FF_ICONS_NUM_FORMAT_ARGS, (FFformatarg[]){
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.plasma.icons},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk2.icons},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk3.icons},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk4.icons},
{FF_FORMAT_ARG_TYPE_STRBUF, plasma},
{FF_FORMAT_ARG_TYPE_STRBUF, gtk2},
{FF_FORMAT_ARG_TYPE_STRBUF, gtk3},
{FF_FORMAT_ARG_TYPE_STRBUF, gtk4},
{FF_FORMAT_ARG_TYPE_STRBUF, &gtkPretty}
});
}
+30 -79
View File
@@ -8,103 +8,54 @@ void ffPrintOS(FFinstance* instance)
if(ffPrintFromCache(instance, FF_OS_MODULE_NAME, &instance->config.osKey, &instance->config.osFormat, FF_OS_NUM_FORMAT_ARGS))
return;
FILE* osRelease = fopen("/etc/os-release", "r");
const FFOSResult* result = ffCalculateOS(instance);
if(osRelease == NULL)
osRelease = fopen("/usr/lib/os-release", "r");
if(osRelease == NULL)
if(result->error.length > 0)
{
ffPrintError(instance, FF_OS_MODULE_NAME, 0, &instance->config.osKey, &instance->config.osFormat, FF_OS_NUM_FORMAT_ARGS, "couldn't read /etc/os-release nor /usr/lib/os-release");
ffPrintError(instance, FF_OS_MODULE_NAME, 0, &instance->config.osKey, &instance->config.osFormat, FF_OS_NUM_FORMAT_ARGS, result->error.chars);
return;
}
// Documentation of the fields:
// https://www.freedesktop.org/software/systemd/man/os-release.html
char name[128]; name[0] = '\0';
char prettyName[128]; prettyName[0] = '\0';
char id[128]; id[0] = '\0';
char idLike[128]; idLike[0] = '\0';
char variant[128]; variant[0] = '\0';
char variantId[128]; variantId[0] = '\0';
char version[128]; version[0] = '\0';
char versionId[128]; versionId[0] = '\0';
char versionCodename[128]; versionCodename[0] = '\0';
char buildId[128]; buildId[0] = '\0';
char* line = NULL;
size_t len = 0;
while (getline(&line, &len, osRelease) != -1)
{
sscanf(line, "NAME=%[^\n]", name);
sscanf(line, "NAME=\"%[^\"]+", name);
sscanf(line, "PRETTY_NAME=%[^\n]", prettyName);
sscanf(line, "PRETTY_NAME=\"%[^\"]+", prettyName);
sscanf(line, "ID=%[^\n]", id);
sscanf(line, "ID=\"%[^\"]+", id);
sscanf(line, "ID_LIKE=%[^\n]", idLike);
sscanf(line, "ID_LIKE=\"%[^\"]+", idLike);
sscanf(line, "VARIANT=%[^\n]", variant);
sscanf(line, "VARIANT=\"%[^\"]+", variant);
sscanf(line, "VARIANT_ID=%[^\n]", variantId);
sscanf(line, "VARIANT_ID=\"%[^\"]+", variantId);
sscanf(line, "VERSION=%[^\n]", version);
sscanf(line, "VERSION=\"%[^\"]+", version);
sscanf(line, "VERSION_ID=%[^\n]", versionId);
sscanf(line, "VERSION_ID=\"%[^\"]+", versionId);
sscanf(line, "VERSION_CODENAME=%[^\n]", versionCodename);
sscanf(line, "VERSION_CODENAME=\"%[^\"]+", versionCodename);
sscanf(line, "BUILD_ID=%[^\n]", buildId);
sscanf(line, "BUILD_ID=\"%[^\"]+", buildId);
}
if(line != NULL)
free(line);
fclose(osRelease);
FF_STRBUF_CREATE(os);
if(prettyName[0] != '\0')
if(result->prettyName.length > 0)
{
ffStrbufAppendS(&os, prettyName);
ffStrbufAppend(&os, &result->prettyName);
}
else if(name[0] == '\0' && id[0] == '\0')
else if(result->name.length == 0 && result->id.length == 0)
{
ffStrbufAppendS(&os, instance->state.utsname.sysname);
ffStrbufAppend(&os, &result->systemName);
}
else
{
if(name[0] != '\0')
ffStrbufAppendS(&os, name);
if(result->name.length > 0)
ffStrbufAppend(&os, &result->name);
else
ffStrbufAppendS(&os, id);
ffStrbufAppend(&os, &result->id);
if(version[0] != '\0')
if(result->version.length > 0)
{
ffStrbufAppendC(&os, ' ');
ffStrbufAppendS(&os, version);
ffStrbufAppend(&os, &result->version);
}
else
{
if(versionId[0] != '\0')
if(result->versionID.length > 0)
{
ffStrbufAppendC(&os, ' ');
ffStrbufAppendS(&os, versionId);
ffStrbufAppend(&os, &result->versionID);
}
if(variant[0] != '\0')
if(result->variant.length > 0)
{
ffStrbufAppendS(&os, " (");
ffStrbufAppendS(&os, variant);
ffStrbufAppend(&os, &result->variant);
ffStrbufAppendC(&os, ')');
}
else if(variantId[0] != '\0')
else if(result->variantID.length > 0)
{
ffStrbufAppendS(&os, " (");
ffStrbufAppendS(&os, variantId);
ffStrbufAppend(&os, &result->variantID);
ffStrbufAppendC(&os, ')');
}
}
@@ -114,18 +65,18 @@ void ffPrintOS(FFinstance* instance)
ffStrbufAppendS(&os, instance->state.utsname.machine);
ffPrintAndSaveToCache(instance, FF_OS_MODULE_NAME, &instance->config.osKey, &os, &instance->config.osFormat, FF_OS_NUM_FORMAT_ARGS, (FFformatarg[]){
{FF_FORMAT_ARG_TYPE_STRING, instance->state.utsname.sysname},
{FF_FORMAT_ARG_TYPE_STRING, name},
{FF_FORMAT_ARG_TYPE_STRING, prettyName},
{FF_FORMAT_ARG_TYPE_STRING, id},
{FF_FORMAT_ARG_TYPE_STRING, idLike},
{FF_FORMAT_ARG_TYPE_STRING, variant},
{FF_FORMAT_ARG_TYPE_STRING, variantId},
{FF_FORMAT_ARG_TYPE_STRING, version},
{FF_FORMAT_ARG_TYPE_STRING, versionId},
{FF_FORMAT_ARG_TYPE_STRING, versionCodename},
{FF_FORMAT_ARG_TYPE_STRING, buildId},
{FF_FORMAT_ARG_TYPE_STRING, instance->state.utsname.machine}
{FF_FORMAT_ARG_TYPE_STRBUF, &result->systemName},
{FF_FORMAT_ARG_TYPE_STRBUF, &result->name},
{FF_FORMAT_ARG_TYPE_STRBUF, &result->prettyName},
{FF_FORMAT_ARG_TYPE_STRBUF, &result->id},
{FF_FORMAT_ARG_TYPE_STRBUF, &result->idLike},
{FF_FORMAT_ARG_TYPE_STRBUF, &result->variant},
{FF_FORMAT_ARG_TYPE_STRBUF, &result->variantID},
{FF_FORMAT_ARG_TYPE_STRBUF, &result->version},
{FF_FORMAT_ARG_TYPE_STRBUF, &result->versionID},
{FF_FORMAT_ARG_TYPE_STRBUF, &result->codename},
{FF_FORMAT_ARG_TYPE_STRBUF, &result->buildID},
{FF_FORMAT_ARG_TYPE_STRBUF, &result->architecture}
});
ffStrbufDestroy(&os);
+10 -10
View File
@@ -5,26 +5,26 @@
void ffPrintTerminal(FFinstance* instance)
{
ffCalculateTerminal(instance);
const FFTerminalResult* result = ffCalculateTerminal(instance);
if(instance->state.terminal.error.length > 0)
if(result->error.length > 0)
{
ffPrintError(instance, FF_TERMINAL_MODULE_NAME, 0, &instance->config.terminalKey, &instance->config.terminalFormat, FF_TERMINAL_NUM_FORMAT_ARGS, instance->state.terminal.error.chars);
ffPrintError(instance, FF_TERMINAL_MODULE_NAME, 0, &instance->config.terminalKey, &instance->config.terminalFormat, FF_TERMINAL_NUM_FORMAT_ARGS, result->error.chars);
return;
}
if(instance->state.terminal.exeName.length == 0 && instance->state.terminal.processName.length == 0)
if(result->exeName.length == 0 && result->processName.length == 0)
{
ffPrintError(instance, FF_TERMINAL_MODULE_NAME, 0, &instance->config.terminalKey, &instance->config.terminalFormat, FF_TERMINAL_NUM_FORMAT_ARGS, "Terminal names not set");
return;
}
FFstrbuf* name;
const FFstrbuf* name;
if(ffStrbufStartsWith(&instance->state.terminal.exeName, &instance->state.terminal.processName))
name = &instance->state.terminal.exeName;
if(ffStrbufStartsWith(&result->exeName, &result->processName))
name = &result->exeName;
else
name = &instance->state.terminal.processName;
name = &result->processName;
if(instance->config.terminalFormat.length == 0)
{
@@ -34,8 +34,8 @@ void ffPrintTerminal(FFinstance* instance)
else
{
ffPrintFormatString(instance, FF_TERMINAL_MODULE_NAME, 0, &instance->config.terminalKey, &instance->config.terminalFormat, NULL, FF_TERMINAL_NUM_FORMAT_ARGS, (FFformatarg[]){
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.terminal.exeName},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.terminal.processName},
{FF_FORMAT_ARG_TYPE_STRBUF, &result->exeName},
{FF_FORMAT_ARG_TYPE_STRBUF, &result->processName},
{FF_FORMAT_ARG_TYPE_STRBUF, name}
});
}
+5 -5
View File
@@ -68,18 +68,18 @@ static void printTTY(FFinstance* instance)
void ffPrintTerminalFont(FFinstance* instance)
{
ffCalculateTerminal(instance);
const FFTerminalResult* result = ffCalculateTerminal(instance);
if(instance->state.terminal.exeName.length == 0)
if(result->exeName.length == 0)
{
ffPrintError(instance, FF_TERMFONT_MODULE_NAME, 0, &instance->config.termFontKey, &instance->config.termFontFormat, FF_TERMFONT_NUM_FORMAT_ARGS, "Terminal font needs successfull terminal detection");
return;
}
if(ffStrbufIgnCaseCompS(&instance->state.terminal.exeName, "konsole") == 0)
if(ffStrbufIgnCaseCompS(&result->exeName, "konsole") == 0)
printKonsole(instance);
else if(ffStrbufStartsWithIgnCaseS(&instance->state.terminal.exeName, "login"))
else if(ffStrbufStartsWithIgnCaseS(&result->exeName, "login"))
printTTY(instance);
else
ffPrintError(instance, FF_TERMFONT_MODULE_NAME, 0, &instance->config.termFontKey, &instance->config.termFontFormat, FF_TERMFONT_NUM_FORMAT_ARGS, "Terminal Font", "Unknown terminal: %s", instance->state.terminal.exeName.chars);
ffPrintError(instance, FF_TERMFONT_MODULE_NAME, 0, &instance->config.termFontKey, &instance->config.termFontFormat, FF_TERMFONT_NUM_FORMAT_ARGS, "Terminal Font", "Unknown terminal: %s", result->exeName.chars);
}
+21 -18
View File
@@ -5,54 +5,57 @@
void ffPrintTheme(FFinstance* instance)
{
ffCalculatePlasmaAndGtk(instance);
const FFPlasmaResult* plasma = ffCalculatePlasma(instance);
const FFstrbuf* gtk2 = &ffCalculateGTK2(instance)->theme;
const FFstrbuf* gtk3 = &ffCalculateGTK3(instance)->theme;
const FFstrbuf* gtk4 = &ffCalculateGTK4(instance)->theme;
if(instance->state.plasma.widgetStyle.length == 0 && instance->state.plasma.colorScheme.length == 0 && instance->state.gtk2.theme.length == 0 && instance->state.gtk3.theme.length == 0 && instance->state.gtk4.theme.length == 0)
if(plasma->widgetStyle.length == 0 && plasma->colorScheme.length == 0 && gtk2->length == 0 && gtk3->length == 0 && gtk4->length == 0)
{
ffPrintError(instance, FF_THEME_MODULE_NAME, 0, &instance->config.themeKey, &instance->config.themeFormat, FF_THEME_NUM_FORMAT_ARGS, "No themes found");
return;
}
FF_STRBUF_CREATE(plasmaColorPretty);
if(ffStrbufStartsWithIgnCase(&instance->state.plasma.colorScheme, &instance->state.plasma.widgetStyle))
ffStrbufAppendNS(&plasmaColorPretty, instance->state.plasma.colorScheme.length - instance->state.plasma.widgetStyle.length, &instance->state.plasma.colorScheme.chars[instance->state.plasma.widgetStyle.length]);
if(ffStrbufStartsWithIgnCase(&plasma->colorScheme, &plasma->widgetStyle))
ffStrbufAppendNS(&plasmaColorPretty, plasma->colorScheme.length - plasma->widgetStyle.length, &plasma->colorScheme.chars[plasma->widgetStyle.length]);
else
ffStrbufAppend(&plasmaColorPretty, &instance->state.plasma.colorScheme);
ffStrbufAppend(&plasmaColorPretty, &plasma->colorScheme);
ffStrbufTrim(&plasmaColorPretty, ' ');
FF_STRBUF_CREATE(gtkPretty);
ffGetGtkPretty(&gtkPretty, &instance->state.gtk2.theme, &instance->state.gtk3.theme, &instance->state.gtk4.theme);
ffGetGtkPretty(&gtkPretty, gtk2, gtk3, gtk4);
if(instance->config.themeFormat.length == 0)
{
ffPrintLogoAndKey(instance, FF_THEME_MODULE_NAME, 0, &instance->config.themeKey);
if(instance->state.plasma.widgetStyle.length > 0)
if(plasma->widgetStyle.length > 0)
{
ffStrbufWriteTo(&instance->state.plasma.widgetStyle, stdout);
ffStrbufWriteTo(&plasma->widgetStyle, stdout);
if(instance->state.plasma.colorScheme.length > 0)
if(plasma->colorScheme.length > 0)
{
fputs(" (", stdout);
if(plasmaColorPretty.length > 0)
ffStrbufWriteTo(&plasmaColorPretty, stdout);
else
ffStrbufWriteTo(&instance->state.plasma.colorScheme, stdout);
ffStrbufWriteTo(&plasma->colorScheme, stdout);
putchar(')');
}
}
else if(instance->state.plasma.colorScheme.length > 0)
else if(plasma->colorScheme.length > 0)
{
if(plasmaColorPretty.length > 0)
ffStrbufWriteTo(&plasmaColorPretty, stdout);
else
ffStrbufWriteTo(&instance->state.plasma.colorScheme, stdout);
ffStrbufWriteTo(&plasma->colorScheme, stdout);
}
if(instance->state.plasma.widgetStyle.length > 0 || instance->state.plasma.colorScheme.length > 0)
if(plasma->widgetStyle.length > 0 || plasma->colorScheme.length > 0)
{
fputs(" [Plasma]", stdout);
@@ -65,12 +68,12 @@ void ffPrintTheme(FFinstance* instance)
else
{
ffPrintFormatString(instance, FF_THEME_MODULE_NAME, 0, &instance->config.themeKey, &instance->config.themeFormat, NULL, FF_THEME_NUM_FORMAT_ARGS, (FFformatarg[]){
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.plasma.widgetStyle},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.plasma.colorScheme},
{FF_FORMAT_ARG_TYPE_STRBUF, &plasma->widgetStyle},
{FF_FORMAT_ARG_TYPE_STRBUF, &plasma->colorScheme},
{FF_FORMAT_ARG_TYPE_STRBUF, &plasmaColorPretty},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk2.theme},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk3.theme},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk4.theme},
{FF_FORMAT_ARG_TYPE_STRBUF, gtk2},
{FF_FORMAT_ARG_TYPE_STRBUF, gtk3},
{FF_FORMAT_ARG_TYPE_STRBUF, gtk4},
{FF_FORMAT_ARG_TYPE_STRBUF, &gtkPretty}
});
}
+9 -9
View File
@@ -5,15 +5,15 @@
void ffPrintWM(FFinstance* instance)
{
ffCalculateWM(instance);
const FFWMResult* result = ffCalculateWM(instance);
if(instance->state.wm.error.length > 0)
if(result->error.length > 0)
{
ffPrintError(instance, FF_WM_MODULE_NAME, 0, &instance->config.wmKey, &instance->config.wmFormat, FF_WM_NUM_FORMAT_ARGS, instance->state.wm.error.chars);
ffPrintError(instance, FF_WM_MODULE_NAME, 0, &instance->config.wmKey, &instance->config.wmFormat, FF_WM_NUM_FORMAT_ARGS, result->error.chars);
return;
}
if(instance->state.wm.prettyName.length == 0 && instance->state.wm.processName.length == 0)
if(result->prettyName.length == 0 && result->processName.length == 0)
{
ffPrintError(instance, FF_WM_MODULE_NAME, 0, &instance->config.wmKey, &instance->config.wmFormat, FF_WM_NUM_FORMAT_ARGS, "No wm name provided");
return;
@@ -22,16 +22,16 @@ void ffPrintWM(FFinstance* instance)
if(instance->config.wmFormat.length == 0)
{
ffPrintLogoAndKey(instance, "WM", 0, &instance->config.wmKey);
if(instance->state.wm.prettyName.length > 0)
ffStrbufPutTo(&instance->state.wm.prettyName, stdout);
if(result->prettyName.length > 0)
ffStrbufPutTo(&result->prettyName, stdout);
else
ffStrbufPutTo(&instance->state.wm.processName, stdout);
ffStrbufPutTo(&result->processName, stdout);
}
else
{
ffPrintFormatString(instance, FF_WM_MODULE_NAME, 0, &instance->config.wmKey, &instance->config.wmFormat, NULL, FF_WM_NUM_FORMAT_ARGS, (FFformatarg[]){
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.wm.processName},
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.wm.prettyName}
{FF_FORMAT_ARG_TYPE_STRBUF, &result->processName},
{FF_FORMAT_ARG_TYPE_STRBUF, &result->prettyName}
});
}
}
+4 -4
View File
@@ -35,16 +35,16 @@ static void printKWin(FFinstance* instance)
void ffPrintWMTheme(FFinstance* instance)
{
ffCalculateWM(instance);
const FFWMResult* result = ffCalculateWM(instance);
if(instance->state.wm.prettyName.length == 0)
if(result->prettyName.length == 0)
{
ffPrintError(instance, FF_WMTHEME_MODULE_NAME, 0, &instance->config.wmThemeKey, &instance->config.wmThemeFormat, FF_WMTHEME_NUM_FORMAT_ARGS, "WM Theme needs sucessfull WM detection");
return;
}
if(ffStrbufIgnCaseCompS(&instance->state.wm.prettyName, "KWin") == 0)
if(ffStrbufIgnCaseCompS(&result->prettyName, "KWin") == 0)
printKWin(instance);
else
ffPrintError(instance, FF_WMTHEME_MODULE_NAME, 0, &instance->config.wmThemeKey, &instance->config.wmThemeFormat, FF_WMTHEME_NUM_FORMAT_ARGS, "Unknown WM: %s", instance->state.wm.prettyName.chars);
ffPrintError(instance, FF_WMTHEME_MODULE_NAME, 0, &instance->config.wmThemeKey, &instance->config.wmThemeFormat, FF_WMTHEME_NUM_FORMAT_ARGS, "Unknown WM: %s", result->prettyName.chars);
}