Files
fastfetch/src/modules/wm.c
T
2021-04-25 21:32:35 +02:00

50 lines
1.5 KiB
C

#include "fastfetch.h"
#define FF_WM_MODULE_NAME "WM"
#define FF_WM_NUM_FORMAT_ARGS 3
void ffPrintWM(FFinstance* instance)
{
const FFWMResult* result = ffCalculateWM(instance);
if(result->error.length > 0)
{
ffPrintError(instance, FF_WM_MODULE_NAME, 0, &instance->config.wmKey, &instance->config.wmFormat, FF_WM_NUM_FORMAT_ARGS, result->error.chars);
return;
}
if(instance->config.wmFormat.length == 0)
{
ffPrintLogoAndKey(instance, "WM", 0, &instance->config.wmKey);
if(result->prettyName.length == 0 && result->processName.length == 0)
{
ffStrbufPutTo(&result->protocolName, stdout);
}
else
{
if(result->prettyName.length > 0)
ffStrbufWriteTo(&result->prettyName, stdout);
else
ffStrbufWriteTo(&result->processName, stdout);
if(result->protocolName.length > 0)
{
fputs(" (", stdout);
ffStrbufWriteTo(&result->protocolName, stdout);
putchar(')');
}
putchar('\n');
}
}
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, &result->processName},
{FF_FORMAT_ARG_TYPE_STRBUF, &result->prettyName},
{FF_FORMAT_ARG_TYPE_STRBUF, &result->protocolName}
});
}
}