Util: moves util/*.c to util/impl/

This commit is contained in:
Carter Li
2026-01-06 09:42:54 +08:00
parent 61690a1804
commit 874f3918b7
53 changed files with 232 additions and 227 deletions
+115 -115
View File
@@ -342,7 +342,7 @@ fastfetch_load_text(src/data/structure.txt DATATEXT_STRUCTURE)
configure_file(src/fastfetch_config.h.in fastfetch_config.h @ONLY)
configure_file(src/fastfetch_datatext.h.in fastfetch_datatext.h @ONLY)
if(APPLE)
configure_file(src/util/apple/Info.plist.in Info.plist @ONLY)
configure_file(src/util/impl/apple/Info.plist.in Info.plist @ONLY)
endif()
####################
@@ -473,33 +473,33 @@ set(LIBFASTFETCH_SRC
src/options/display.c
src/options/logo.c
src/options/general.c
src/util/commandoption.c
src/util/duration.c
src/util/font.c
src/util/format.c
src/util/frequency.c
src/util/init.c
src/util/jsonconfig.c
src/util/library.c
src/util/netif.c
src/util/networking_common.c
src/util/option.c
src/util/parsing.c
src/util/percent.c
src/util/printing.c
src/util/properties.c
src/util/settings.c
src/util/size.c
src/util/temps.c
src/util/time.c
src/util/edidHelper.c
src/util/base64.c
src/util/FFlist.c
src/util/FFstrbuf.c
src/util/kmod.c
src/util/path.c
src/util/FFPlatform.c
src/util/smbiosHelper.c
src/util/impl/commandoption.c
src/util/impl/duration.c
src/util/impl/font.c
src/util/impl/format.c
src/util/impl/frequency.c
src/util/impl/init.c
src/util/impl/jsonconfig.c
src/util/impl/library.c
src/util/impl/netif.c
src/util/impl/networking_common.c
src/util/impl/option.c
src/util/impl/parsing.c
src/util/impl/percent.c
src/util/impl/printing.c
src/util/impl/properties.c
src/util/impl/settings.c
src/util/impl/size.c
src/util/impl/temps.c
src/util/impl/time.c
src/util/impl/edidHelper.c
src/util/impl/base64.c
src/util/impl/FFlist.c
src/util/impl/FFstrbuf.c
src/util/impl/kmod.c
src/util/impl/path.c
src/util/impl/FFPlatform.c
src/util/impl/smbiosHelper.c
)
if(LINUX)
@@ -578,13 +578,13 @@ if(LINUX)
src/detection/de/de_linux.c
src/detection/wmtheme/wmtheme_linux.c
src/detection/camera/camera_linux.c
src/util/dbus.c
src/util/io_unix.c
src/util/netif_linux.c
src/util/networking_linux.c
src/util/processing_linux.c
src/util/FFPlatform_unix.c
src/util/binary_linux.c
src/util/impl/dbus.c
src/util/impl/io_unix.c
src/util/impl/netif_linux.c
src/util/impl/networking_linux.c
src/util/impl/processing_linux.c
src/util/impl/FFPlatform_unix.c
src/util/impl/binary_linux.c
)
elseif(ANDROID)
list(APPEND LIBFASTFETCH_SRC
@@ -651,13 +651,13 @@ elseif(ANDROID)
src/detection/de/de_linux.c
src/detection/wmtheme/wmtheme_linux.c
src/detection/camera/camera_android.c
src/util/dbus.c
src/util/io_unix.c
src/util/netif_linux.c
src/util/networking_linux.c
src/util/processing_linux.c
src/util/FFPlatform_unix.c
src/util/binary_linux.c
src/util/impl/dbus.c
src/util/impl/io_unix.c
src/util/impl/netif_linux.c
src/util/impl/networking_linux.c
src/util/impl/processing_linux.c
src/util/impl/FFPlatform_unix.c
src/util/impl/binary_linux.c
)
elseif(FreeBSD)
list(APPEND LIBFASTFETCH_SRC
@@ -732,14 +732,14 @@ elseif(FreeBSD)
src/detection/de/de_linux.c
src/detection/wmtheme/wmtheme_linux.c
src/detection/camera/camera_linux.c
src/util/dbus.c
src/util/io_unix.c
src/util/netif_bsd.c
src/util/networking_linux.c
src/util/processing_linux.c
src/util/sysctl.c
src/util/FFPlatform_unix.c
src/util/binary_linux.c
src/util/impl/dbus.c
src/util/impl/io_unix.c
src/util/impl/netif_bsd.c
src/util/impl/networking_linux.c
src/util/impl/processing_linux.c
src/util/impl/sysctl.c
src/util/impl/FFPlatform_unix.c
src/util/impl/binary_linux.c
)
if(DragonFly)
list(APPEND LIBFASTFETCH_SRC
@@ -825,14 +825,14 @@ elseif(NetBSD)
src/detection/de/de_linux.c
src/detection/wmtheme/wmtheme_linux.c
src/detection/camera/camera_linux.c
src/util/dbus.c
src/util/io_unix.c
src/util/netif_bsd.c
src/util/networking_linux.c
src/util/processing_linux.c
src/util/sysctl.c
src/util/FFPlatform_unix.c
src/util/binary_linux.c
src/util/impl/dbus.c
src/util/impl/io_unix.c
src/util/impl/netif_bsd.c
src/util/impl/networking_linux.c
src/util/impl/processing_linux.c
src/util/impl/sysctl.c
src/util/impl/FFPlatform_unix.c
src/util/impl/binary_linux.c
)
elseif(OpenBSD)
list(APPEND LIBFASTFETCH_SRC
@@ -907,15 +907,15 @@ elseif(OpenBSD)
src/detection/de/de_linux.c
src/detection/wmtheme/wmtheme_linux.c
src/detection/camera/camera_linux.c
src/util/dbus.c
src/util/io_unix.c
src/util/netif_bsd.c
src/util/networking_linux.c
src/util/processing_linux.c
src/util/sysctl.c
src/util/FFPlatform_unix.c
src/util/binary_linux.c
src/util/smbiosHelper.c
src/util/impl/dbus.c
src/util/impl/io_unix.c
src/util/impl/netif_bsd.c
src/util/impl/networking_linux.c
src/util/impl/processing_linux.c
src/util/impl/sysctl.c
src/util/impl/FFPlatform_unix.c
src/util/impl/binary_linux.c
src/util/impl/smbiosHelper.c
)
elseif(APPLE)
list(APPEND LIBFASTFETCH_SRC
@@ -977,16 +977,16 @@ elseif(APPLE)
src/detection/de/de_nosupport.c
src/detection/wmtheme/wmtheme_apple.m
src/detection/camera/camera_apple.m
src/util/io_unix.c
src/util/netif_apple.c
src/util/networking_linux.c
src/util/processing_linux.c
src/util/sysctl.c
src/util/apple/cf_helpers.c
src/util/apple/osascript.m
src/util/apple/smc_temps.c
src/util/FFPlatform_unix.c
src/util/binary_apple.c
src/util/impl/io_unix.c
src/util/impl/netif_apple.c
src/util/impl/networking_linux.c
src/util/impl/processing_linux.c
src/util/impl/sysctl.c
src/util/impl/apple/cf_helpers.c
src/util/impl/apple/osascript.m
src/util/impl/apple/smc_temps.c
src/util/impl/FFPlatform_unix.c
src/util/impl/binary_apple.c
)
elseif(WIN32)
list(APPEND LIBFASTFETCH_SRC
@@ -1047,19 +1047,19 @@ elseif(WIN32)
src/detection/de/de_nosupport.c
src/detection/wmtheme/wmtheme_windows.c
src/detection/camera/camera_windows.cpp
src/util/io_windows.c
src/util/netif_windows.c
src/util/networking_windows.c
src/util/processing_windows.c
src/util/windows/getline.c
src/util/windows/com.cpp
src/util/windows/registry.c
src/util/windows/unicode.c
src/util/windows/wmi.cpp
src/util/windows/version.c
src/util/FFPlatform_windows.c
src/util/binary_windows.c
src/util/debug_windows.c
src/util/impl/io_windows.c
src/util/impl/netif_windows.c
src/util/impl/networking_windows.c
src/util/impl/processing_windows.c
src/util/impl/windows/getline.c
src/util/impl/windows/com.cpp
src/util/impl/windows/registry.c
src/util/impl/windows/unicode.c
src/util/impl/windows/wmi.cpp
src/util/impl/windows/version.c
src/util/impl/FFPlatform_windows.c
src/util/impl/binary_windows.c
src/util/impl/debug_windows.c
)
elseif(SunOS)
list(APPEND LIBFASTFETCH_SRC
@@ -1134,13 +1134,13 @@ elseif(SunOS)
src/detection/de/de_linux.c
src/detection/wmtheme/wmtheme_linux.c
src/detection/camera/camera_nosupport.c
src/util/dbus.c
src/util/io_unix.c
src/util/netif_apple.c
src/util/networking_linux.c
src/util/processing_linux.c
src/util/FFPlatform_unix.c
src/util/binary_linux.c
src/util/impl/dbus.c
src/util/impl/io_unix.c
src/util/impl/netif_apple.c
src/util/impl/networking_linux.c
src/util/impl/processing_linux.c
src/util/impl/FFPlatform_unix.c
src/util/impl/binary_linux.c
)
elseif(Haiku)
list(APPEND LIBFASTFETCH_SRC
@@ -1202,14 +1202,14 @@ elseif(Haiku)
src/detection/de/de_nosupport.c
src/detection/wmtheme/wmtheme_nosupport.c
src/detection/camera/camera_nosupport.c
src/util/dbus.c
src/util/io_unix.c
src/util/netif_haiku.c
src/util/networking_linux.c
src/util/processing_linux.c
src/util/FFPlatform_unix.c
src/util/binary_linux.c
src/util/haiku/version.cpp
src/util/impl/dbus.c
src/util/impl/io_unix.c
src/util/impl/netif_haiku.c
src/util/impl/networking_linux.c
src/util/impl/processing_linux.c
src/util/impl/FFPlatform_unix.c
src/util/impl/binary_linux.c
src/util/impl/haiku/version.cpp
)
elseif(GNU)
list(APPEND LIBFASTFETCH_SRC
@@ -1281,13 +1281,13 @@ elseif(GNU)
src/detection/de/de_linux.c
src/detection/wmtheme/wmtheme_linux.c
src/detection/camera/camera_nosupport.c
src/util/dbus.c
src/util/io_unix.c
src/util/netif_gnu.c
src/util/networking_linux.c
src/util/processing_linux.c
src/util/FFPlatform_unix.c
src/util/binary_linux.c
src/util/impl/dbus.c
src/util/impl/io_unix.c
src/util/impl/netif_gnu.c
src/util/impl/networking_linux.c
src/util/impl/processing_linux.c
src/util/impl/FFPlatform_unix.c
src/util/impl/binary_linux.c
)
endif()
@@ -1308,7 +1308,7 @@ endif()
include(CheckFunctionExists)
check_function_exists(wcwidth HAVE_WCWIDTH)
if(NOT HAVE_WCWIDTH)
list(APPEND LIBFASTFETCH_SRC src/util/wcwidth.c)
list(APPEND LIBFASTFETCH_SRC src/util/impl/wcwidth.c)
endif()
if(NOT WIN32)
check_function_exists(pipe2 HAVE_PIPE2)
@@ -1881,7 +1881,7 @@ set_target_properties(fastfetch PROPERTIES LINKER_LANGUAGE C)
if(WIN32)
target_sources(fastfetch
PRIVATE src/util/windows/version.rc
PRIVATE src/util/impl/windows/version.rc
)
elseif(APPLE)
target_link_options(fastfetch
@@ -1909,7 +1909,7 @@ if (BUILD_FLASHFETCH)
if(WIN32)
target_sources(flashfetch
PRIVATE src/util/windows/version.rc
PRIVATE src/util/impl/windows/version.rc
)
elseif(APPLE)
target_link_options(flashfetch
+2
View File
@@ -28,4 +28,6 @@ static inline const char* ffFindFileName(const char* file)
#define FF_DEBUG(format, ...) FF_DEBUG_PRINT(__FILE__, __LINE__, format, ##__VA_ARGS__)
#if _WIN32
const char* ffDebugWin32Error(unsigned long errorCode);
#endif
@@ -1,6 +1,6 @@
#pragma once
#include "FFPlatform.h"
#include "util/FFPlatform.h"
void ffPlatformInitImpl(FFPlatform* platform);
+1 -1
View File
@@ -1,4 +1,4 @@
#include "FFlist.h"
#include "util/FFlist.h"
#include <stdlib.h>
#include <string.h>
@@ -1,4 +1,4 @@
#include "FFstrbuf.h"
#include "util/FFstrbuf.h"
#include "util/mallocHelper.h"
#include <ctype.h>
+1 -1
View File
@@ -1,4 +1,4 @@
#include "base64.h"
#include "util/base64.h"
// https://github.com/kostya/benchmarks/blob/master/base64/test-nolib.c#L145
void ffBase64EncodeRaw(uint32_t size, const char *str, uint32_t *out_size, char *output)
@@ -1,4 +1,4 @@
#include "binary.h"
#include "util/binary.h"
#include "util/io.h"
#include "util/stringUtils.h"
#include "util/mallocHelper.h"
@@ -1,4 +1,4 @@
#include "binary.h"
#include "util/binary.h"
#if defined(FF_HAVE_ELF) || defined(__sun) || (defined(__FreeBSD__) && !defined(__DragonFly__)) || defined(__OpenBSD__) || defined(__NetBSD__)
@@ -1,4 +1,4 @@
#include "binary.h"
#include "util/binary.h"
#include "util/io.h"
#include "util/stringUtils.h"
#include "util/mallocHelper.h"
@@ -1,4 +1,4 @@
#include "commandoption.h"
#include "util/commandoption.h"
#include "util/color.h"
#include "util/printing.h"
#include "util/time.h"
+1 -1
View File
@@ -1,4 +1,4 @@
#include "dbus.h"
#include "util/dbus.h"
#ifdef FF_HAVE_DBUS
@@ -1,4 +1,4 @@
#include "debug.h"
#include "util/debug.h"
#include <windows.h>
@@ -1,4 +1,4 @@
#include "duration.h"
#include "util/duration.h"
void ffDurationAppendNum(uint64_t totalSeconds, FFstrbuf* result)
{
@@ -1,4 +1,4 @@
#include "edidHelper.h"
#include "util/edidHelper.h"
void ffEdidGetPhysicalResolution(const uint8_t edid[128], uint32_t* width, uint32_t* height)
{
@@ -1,4 +1,4 @@
#include "frequency.h"
#include "util/frequency.h"
bool ffFreqAppendNum(uint32_t mhz, FFstrbuf* result)
{
@@ -1,4 +1,4 @@
#include "io.h"
#include "util/io.h"
#include "fastfetch.h"
#include "util/stringUtils.h"
#include "util/time.h"
@@ -1,4 +1,4 @@
#include "io.h"
#include "util/io.h"
#include "fastfetch.h"
#include "util/stringUtils.h"
+1 -1
View File
@@ -1,4 +1,4 @@
#include "kmod.h"
#include "util/kmod.h"
#if __linux__
#include "util/io.h"
+1 -1
View File
@@ -1,4 +1,4 @@
#include "netif.h"
#include "util/netif.h"
#ifndef _WIN32
#include <net/if.h>
@@ -1,5 +1,4 @@
#include "netif.h"
#include "util/netif.h"
#include "util/io.h"
#include "util/mallocHelper.h"
@@ -1,5 +1,4 @@
#include "netif.h"
#include "util/netif.h"
#include "util/io.h"
#include "util/mallocHelper.h"
@@ -1,4 +1,4 @@
#include "netif.h"
#include "util/netif.h"
#include "util/io.h"
#include <net/if.h>
@@ -1,4 +1,4 @@
#include "netif.h"
#include "util/netif.h"
#include "util/io.h"
#include "util/mallocHelper.h"
@@ -1,4 +1,4 @@
#include "netif.h"
#include "util/netif.h"
#include "util/io.h"
#include "util/mallocHelper.h"
#include "util/debug.h"
@@ -1,4 +1,4 @@
#include "netif.h"
#include "util/netif.h"
#include "util/mallocHelper.h"
#include <ws2tcpip.h> // AF_INET6, IN6_IS_ADDR_UNSPECIFIED
+1 -2
View File
@@ -1,5 +1,4 @@
#include "path.h"
#include "util/path.h"
#include "util/io.h"
#include "util/stringUtils.h"
+1 -1
View File
@@ -1,4 +1,4 @@
#include "size.h"
#include "util/size.h"
#include <inttypes.h>
@@ -1,4 +1,4 @@
#include "smbiosHelper.h"
#include "util/smbiosHelper.h"
#include "util/io.h"
#include "util/unused.h"
#include "util/mallocHelper.h"
+1 -1
View File
@@ -1,4 +1,4 @@
#include "sysctl.h"
#include "util/sysctl.h"
#include <stdlib.h>
+83
View File
@@ -0,0 +1,83 @@
#include "util/time.h"
#include <stdio.h>
char ffTimeInternalBuffer[64]; // Reduce memory usage and prevent redundant allocations
#ifdef _WIN32
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wformat"
#endif
const char* ffTimeToFullStr(uint64_t msec)
{
if (msec == 0) return "";
time_t tsec = (time_t) (msec / 1000);
const struct tm* tm = localtime(&tsec);
uint32_t len = 0;
len += (uint32_t) strftime(ffTimeInternalBuffer, ARRAY_SIZE(ffTimeInternalBuffer) - len, "%FT%T", tm);
len += (uint32_t) snprintf(ffTimeInternalBuffer + len, ARRAY_SIZE(ffTimeInternalBuffer) - len, ".%03u", (unsigned) (msec % 1000));
len += (uint32_t) strftime(ffTimeInternalBuffer + len, ARRAY_SIZE(ffTimeInternalBuffer) - len, "%z", tm);
return ffTimeInternalBuffer;
}
const char* ffTimeToShortStr(uint64_t msec)
{
if (msec == 0) return "";
time_t tsec = (time_t) (msec / 1000);
strftime(ffTimeInternalBuffer, ARRAY_SIZE(ffTimeInternalBuffer), "%F %T", localtime(&tsec));
return ffTimeInternalBuffer;
}
const char* ffTimeToTimeStr(uint64_t msec)
{
if (msec == 0) return "";
time_t tsec = (time_t) (msec / 1000);
uint32_t len = (uint32_t) strftime(ffTimeInternalBuffer, ARRAY_SIZE(ffTimeInternalBuffer), "%T", localtime(&tsec));
sprintf(ffTimeInternalBuffer + len, ".%03u", (unsigned) (msec % 1000));
return ffTimeInternalBuffer;
}
#ifdef _WIN32
#pragma GCC diagnostic pop
#endif
FFTimeGetAgeResult ffTimeGetAge(uint64_t birthMs, uint64_t nowMs)
{
FFTimeGetAgeResult result = {};
if (__builtin_expect(birthMs == 0 || nowMs < birthMs, 0))
return result;
time_t birth_s = (time_t) (birthMs / 1000);
struct tm birth_tm;
#ifdef _WIN32
localtime_s(&birth_tm, &birth_s);
#else
localtime_r(&birth_s, &birth_tm);
#endif
time_t now_s = (time_t) (nowMs / 1000);
struct tm now_tm;
#ifdef _WIN32
localtime_s(&now_tm, &now_s);
#else
localtime_r(&now_s, &now_tm);
#endif
result.years = (uint32_t) (now_tm.tm_year - birth_tm.tm_year);
if (now_tm.tm_yday < birth_tm.tm_yday)
result.years--;
birth_tm.tm_year += (int) result.years;
birth_s = mktime(&birth_tm);
uint32_t diff_s = (uint32_t) (now_s - birth_s);
result.daysOfYear = diff_s / (24 * 60 * 60);
birth_tm.tm_year += 1;
result.yearsFraction = (double) diff_s / (double) (mktime(&birth_tm) - birth_s) + result.years;
return result;
}
-3
View File
@@ -1,3 +0,0 @@
#include <time.h>
char ffTimeInternalBuffer[64]; // Reduce memory usage and prevent redundant allocations
+5 -79
View File
@@ -2,7 +2,6 @@
#include <stdint.h>
#include <time.h>
#include <stdio.h>
#ifdef _WIN32
#include <synchapi.h>
#include <profileapi.h>
@@ -54,52 +53,14 @@ static inline void ffTimeSleep(uint32_t msec)
#endif
}
#ifdef _WIN32
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wformat"
#endif
// Not thread-safe
const char* ffTimeToFullStr(uint64_t msec);
// Not thread-safe
static inline const char* ffTimeToFullStr(uint64_t msec)
{
if (msec == 0) return "";
time_t tsec = (time_t) (msec / 1000);
const struct tm* tm = localtime(&tsec);
extern char ffTimeInternalBuffer[64];
uint32_t len = 0;
len += (uint32_t) strftime(ffTimeInternalBuffer, ARRAY_SIZE(ffTimeInternalBuffer) - len, "%FT%T", tm);
len += (uint32_t) snprintf(ffTimeInternalBuffer + len, ARRAY_SIZE(ffTimeInternalBuffer) - len, ".%03u", (unsigned) (msec % 1000));
len += (uint32_t) strftime(ffTimeInternalBuffer + len, ARRAY_SIZE(ffTimeInternalBuffer) - len, "%z", tm);
return ffTimeInternalBuffer;
}
const char* ffTimeToShortStr(uint64_t msec);
// Not thread-safe
static inline const char* ffTimeToShortStr(uint64_t msec)
{
if (msec == 0) return "";
time_t tsec = (time_t) (msec / 1000);
extern char ffTimeInternalBuffer[64];
strftime(ffTimeInternalBuffer, ARRAY_SIZE(ffTimeInternalBuffer), "%F %T", localtime(&tsec));
return ffTimeInternalBuffer;
}
// Not thread-safe
static inline const char* ffTimeToTimeStr(uint64_t msec)
{
if (msec == 0) return "";
time_t tsec = (time_t) (msec / 1000);
extern char ffTimeInternalBuffer[64];
uint32_t len = (uint32_t) strftime(ffTimeInternalBuffer, ARRAY_SIZE(ffTimeInternalBuffer), "%T", localtime(&tsec));
sprintf(ffTimeInternalBuffer + len, ".%03u", (unsigned) (msec % 1000));
return ffTimeInternalBuffer;
}
#ifdef _WIN32
#pragma GCC diagnostic pop
#endif
const char* ffTimeToTimeStr(uint64_t msec);
typedef struct FFTimeGetAgeResult
{
@@ -108,39 +69,4 @@ typedef struct FFTimeGetAgeResult
double yearsFraction;
} FFTimeGetAgeResult;
static inline FFTimeGetAgeResult ffTimeGetAge(uint64_t birthMs, uint64_t nowMs)
{
FFTimeGetAgeResult result = {};
if (__builtin_expect(birthMs == 0 || nowMs < birthMs, 0))
return result;
time_t birth_s = (time_t) (birthMs / 1000);
struct tm birth_tm;
#ifdef _WIN32
localtime_s(&birth_tm, &birth_s);
#else
localtime_r(&birth_s, &birth_tm);
#endif
time_t now_s = (time_t) (nowMs / 1000);
struct tm now_tm;
#ifdef _WIN32
localtime_s(&now_tm, &now_s);
#else
localtime_r(&now_s, &now_tm);
#endif
result.years = (uint32_t) (now_tm.tm_year - birth_tm.tm_year);
if (now_tm.tm_yday < birth_tm.tm_yday)
result.years--;
birth_tm.tm_year += (int) result.years;
birth_s = mktime(&birth_tm);
uint32_t diff_s = (uint32_t) (now_s - birth_s);
result.daysOfYear = diff_s / (24 * 60 * 60);
birth_tm.tm_year += 1;
result.yearsFraction = (double) diff_s / (double) (mktime(&birth_tm) - birth_s) + result.years;
return result;
}
FFTimeGetAgeResult ffTimeGetAge(uint64_t birthMs, uint64_t nowMs);