mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-11-05 20:54:21 +01:00
Fastfetch: add --no-buffer option
This commit is contained in:
+4
-7
@@ -51,6 +51,7 @@ static void defaultConfig(FFinstance* instance)
|
||||
instance->config.pipe = false;
|
||||
instance->config.multithreading = true;
|
||||
instance->config.stat = false;
|
||||
instance->config.noBuffer = false;
|
||||
|
||||
ffInitTitleOptions(&instance->config.title);
|
||||
ffInitOSOptions(&instance->config.os);
|
||||
@@ -175,7 +176,7 @@ static void resetConsole()
|
||||
if(ffHideCursor)
|
||||
fputs("\033[?25h", stdout);
|
||||
|
||||
#if defined(_WIN32) && defined(FF_ENABLE_BUFFER)
|
||||
#if defined(_WIN32)
|
||||
fflush(stdout);
|
||||
#endif
|
||||
}
|
||||
@@ -207,9 +208,7 @@ void ffStart(FFinstance* instance)
|
||||
ffHideCursor = instance->config.hideCursor && !instance->config.pipe;
|
||||
|
||||
#ifdef _WIN32
|
||||
#ifdef FF_ENABLE_BUFFER
|
||||
setvbuf(stdout, NULL, _IOFBF, 4096);
|
||||
#endif
|
||||
if (!instance->config.noBuffer) setvbuf(stdout, NULL, _IOFBF, 4096);
|
||||
SetConsoleCtrlHandler(consoleHandler, TRUE);
|
||||
HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||
DWORD mode = 0;
|
||||
@@ -217,9 +216,7 @@ void ffStart(FFinstance* instance)
|
||||
SetConsoleMode(hStdout, mode | ENABLE_PROCESSED_OUTPUT | ENABLE_VIRTUAL_TERMINAL_PROCESSING);
|
||||
SetConsoleOutputCP(CP_UTF8);
|
||||
#else
|
||||
#ifndef FF_ENABLE_BUFFER
|
||||
setvbuf(stdout, NULL, _IONBF, 0);
|
||||
#endif
|
||||
if (instance->config.noBuffer) setvbuf(stdout, NULL, _IONBF, 0);
|
||||
struct sigaction action = { .sa_handler = exitSignalHandler };
|
||||
sigaction(SIGINT, &action, NULL);
|
||||
sigaction(SIGTERM, &action, NULL);
|
||||
|
||||
@@ -266,8 +266,8 @@ static const char* printJsonConfig(FFinstance* instance)
|
||||
printf("\033[s\033[1A\033[9999999C\033[%dD%s\033[u", len, str); // Save; Up 1; Right 9999999; Left <len>; Print <str>; Load
|
||||
}
|
||||
|
||||
#if defined(_WIN32) && defined(FF_ENABLE_BUFFER)
|
||||
fflush(stdout);
|
||||
#if defined(_WIN32)
|
||||
if (!instance->config.noBuffer) fflush(stdout);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -380,6 +380,8 @@ const char* ffParseDisplayJsonConfig(FFinstance* instance)
|
||||
}
|
||||
else if (strcasecmp(key, "percentType") == 0)
|
||||
config->percentType = (uint32_t) yyjson_get_uint(val);
|
||||
else if (strcasecmp(key, "noBuffer") == 0)
|
||||
config->noBuffer = yyjson_get_bool(val);
|
||||
else
|
||||
return "Unknown display property";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user