From cf98e6f5a196dc8c2f2b87296810069bd8ea2a96 Mon Sep 17 00:00:00 2001 From: Carter Li Date: Sat, 23 Dec 2023 00:06:37 +0800 Subject: [PATCH] Global: remove unexpected trailing line endings Ref: https://github.com/fastfetch-cli/fastfetch/pull/671#issuecomment-1867777472 --- src/detection/bios/bios_linux.c | 23 ++++--------------- src/detection/board/board_linux.c | 19 +++------------ src/detection/chassis/chassis_linux.c | 19 +++------------ src/detection/diskio/diskio_linux.c | 11 +++++---- src/detection/gamepad/gamepad_linux.c | 3 ++- src/detection/gpu/gpu_linux.c | 2 +- src/detection/host/host_linux.c | 23 ++++--------------- .../physicaldisk/physicaldisk_linux.c | 11 +++++---- src/util/FFstrbuf.c | 18 +++++++++++++++ src/util/FFstrbuf.h | 7 ++++++ src/util/smbiosHelper.c | 22 ++++++++++++++++++ src/util/smbiosHelper.h | 6 ++++- 12 files changed, 85 insertions(+), 79 deletions(-) diff --git a/src/detection/bios/bios_linux.c b/src/detection/bios/bios_linux.c index 2c7402c90..fa794d1c2 100644 --- a/src/detection/bios/bios_linux.c +++ b/src/detection/bios/bios_linux.c @@ -4,25 +4,12 @@ #include -static void getSmbiosValue(const char* devicesPath, const char* classPath, FFstrbuf* buffer) +const char* ffDetectBios(FFBiosResult* bios) { - ffReadFileBuffer(devicesPath, buffer); - if(ffIsSmbiosValueSet(buffer)) - return; - - ffReadFileBuffer(classPath, buffer); - if(ffIsSmbiosValueSet(buffer)) - return; - - ffStrbufClear(buffer); -} - -const char* ffDetectBios(FFBiosResult* bios) -{ - getSmbiosValue("/sys/devices/virtual/dmi/id/bios_date", "/sys/class/dmi/id/bios_date", &bios->date); - getSmbiosValue("/sys/devices/virtual/dmi/id/bios_release", "/sys/class/dmi/id/bios_release", &bios->release); - getSmbiosValue("/sys/devices/virtual/dmi/id/bios_vendor", "/sys/class/dmi/id/bios_vendor", &bios->vendor); - getSmbiosValue("/sys/devices/virtual/dmi/id/bios_version", "/sys/class/dmi/id/bios_version", &bios->version); + ffGetSmbiosValue("/sys/devices/virtual/dmi/id/bios_date", "/sys/class/dmi/id/bios_date", &bios->date); + ffGetSmbiosValue("/sys/devices/virtual/dmi/id/bios_release", "/sys/class/dmi/id/bios_release", &bios->release); + ffGetSmbiosValue("/sys/devices/virtual/dmi/id/bios_vendor", "/sys/class/dmi/id/bios_vendor", &bios->vendor); + ffGetSmbiosValue("/sys/devices/virtual/dmi/id/bios_version", "/sys/class/dmi/id/bios_version", &bios->version); if (ffPathExists("/sys/firmware/efi", FF_PATHTYPE_DIRECTORY) || ffPathExists("/sys/firmware/acpi/tables/UEFI", FF_PATHTYPE_FILE)) ffStrbufSetStatic(&bios->type, "UEFI"); else diff --git a/src/detection/board/board_linux.c b/src/detection/board/board_linux.c index a4d1225b7..1092b54ee 100644 --- a/src/detection/board/board_linux.c +++ b/src/detection/board/board_linux.c @@ -4,23 +4,10 @@ #include -static void getSmbiosValue(const char* devicesPath, const char* classPath, FFstrbuf* buffer) -{ - ffReadFileBuffer(devicesPath, buffer); - if(ffIsSmbiosValueSet(buffer)) - return; - - ffReadFileBuffer(classPath, buffer); - if(ffIsSmbiosValueSet(buffer)) - return; - - ffStrbufClear(buffer); -} - const char* ffDetectBoard(FFBoardResult* board) { - getSmbiosValue("/sys/devices/virtual/dmi/id/board_name", "/sys/class/dmi/id/board_name", &board->name); - getSmbiosValue("/sys/devices/virtual/dmi/id/board_vendor", "/sys/class/dmi/id/board_vendor", &board->vendor); - getSmbiosValue("/sys/devices/virtual/dmi/id/board_version", "/sys/class/dmi/id/board_version", &board->version); + ffGetSmbiosValue("/sys/devices/virtual/dmi/id/board_name", "/sys/class/dmi/id/board_name", &board->name); + ffGetSmbiosValue("/sys/devices/virtual/dmi/id/board_vendor", "/sys/class/dmi/id/board_vendor", &board->vendor); + ffGetSmbiosValue("/sys/devices/virtual/dmi/id/board_version", "/sys/class/dmi/id/board_version", &board->version); return NULL; } diff --git a/src/detection/chassis/chassis_linux.c b/src/detection/chassis/chassis_linux.c index e8ce65c82..8c050b859 100644 --- a/src/detection/chassis/chassis_linux.c +++ b/src/detection/chassis/chassis_linux.c @@ -4,24 +4,11 @@ #include -static void getSmbiosValue(const char* devicesPath, const char* classPath, FFstrbuf* buffer) -{ - ffReadFileBuffer(devicesPath, buffer); - if(ffIsSmbiosValueSet(buffer)) - return; - - ffReadFileBuffer(classPath, buffer); - if(ffIsSmbiosValueSet(buffer)) - return; - - ffStrbufClear(buffer); -} - const char* ffDetectChassis(FFChassisResult* result, FF_MAYBE_UNUSED FFChassisOptions* options) { - getSmbiosValue("/sys/devices/virtual/dmi/id/chassis_type", "/sys/class/dmi/id/chassis_type", &result->type); - getSmbiosValue("/sys/devices/virtual/dmi/id/chassis_vendor", "/sys/class/dmi/id/chassis_vendor", &result->vendor); - getSmbiosValue("/sys/devices/virtual/dmi/id/chassis_version", "/sys/class/dmi/id/chassis_version", &result->version); + ffGetSmbiosValue("/sys/devices/virtual/dmi/id/chassis_type", "/sys/class/dmi/id/chassis_type", &result->type); + ffGetSmbiosValue("/sys/devices/virtual/dmi/id/chassis_vendor", "/sys/class/dmi/id/chassis_vendor", &result->vendor); + ffGetSmbiosValue("/sys/devices/virtual/dmi/id/chassis_version", "/sys/class/dmi/id/chassis_version", &result->version); if(result->type.length) { diff --git a/src/detection/diskio/diskio_linux.c b/src/detection/diskio/diskio_linux.c index e865581c2..4a84f25a5 100644 --- a/src/detection/diskio/diskio_linux.c +++ b/src/detection/diskio/diskio_linux.c @@ -41,13 +41,16 @@ const char* ffDiskIOGetIoCounters(FFlist* result, FFDiskIOOptions* options) { snprintf(pathSysBlock, PATH_MAX, "/sys/block/%s/device/vendor", devName); - ffAppendFileBuffer(pathSysBlock, &device->name); - if (device->name.length > 0) - ffStrbufAppendC(&device->name, ' '); + if (ffAppendFileBuffer(pathSysBlock, &device->name)) + { + ffStrbufTrimRightSpace(&device->name); + if (device->name.length > 0) + ffStrbufAppendC(&device->name, ' '); + } snprintf(pathSysBlock, PATH_MAX, "/sys/block/%s/device/model", devName); ffAppendFileBuffer(pathSysBlock, &device->name); - ffStrbufTrim(&device->name, ' '); + ffStrbufTrimRightSpace(&device->name); if (device->name.length == 0) ffStrbufSetS(&device->name, devName); diff --git a/src/detection/gamepad/gamepad_linux.c b/src/detection/gamepad/gamepad_linux.c index c68a31d74..a5273a0fa 100644 --- a/src/detection/gamepad/gamepad_linux.c +++ b/src/detection/gamepad/gamepad_linux.c @@ -30,7 +30,8 @@ const char* ffDetectGamepad(FFlist* devices /* List of FFGamepadDevice */) FFGamepadDevice* device = (FFGamepadDevice*) ffListAdd(devices); ffStrbufInitS(&device->identifier, entry->d_name); ffStrbufInit(&device->name); - ffAppendFileBuffer(path.chars, &device->name); + if (ffAppendFileBuffer(path.chars, &device->name)) + ffStrbufTrimRightSpace(&device->name); } ffStrbufSubstrBefore(&path, baseLen); diff --git a/src/detection/gpu/gpu_linux.c b/src/detection/gpu/gpu_linux.c index c21465f0e..4a170ead4 100644 --- a/src/detection/gpu/gpu_linux.c +++ b/src/detection/gpu/gpu_linux.c @@ -133,7 +133,7 @@ static void pciDetectDriverName(FFGPUResult* gpu, PCIData* pci, struct pci_dev* ffStrbufAppendC(&gpu->driver, ' '); ffStrbufAppendS(&path, "/module/version"); ffAppendFileBuffer(path.chars, &gpu->driver); - ffStrbufTrimRight(&gpu->driver, ' '); + ffStrbufTrimRightSpace(&gpu->driver); } FF_MAYBE_UNUSED static void pciDetectTemp(FFGPUResult* gpu, struct pci_dev* device) diff --git a/src/detection/host/host_linux.c b/src/detection/host/host_linux.c index 269904eaf..8b11628d6 100644 --- a/src/detection/host/host_linux.c +++ b/src/detection/host/host_linux.c @@ -5,22 +5,9 @@ #include -static void getSmbiosValue(const char* devicesPath, const char* classPath, FFstrbuf* buffer) -{ - ffReadFileBuffer(devicesPath, buffer); - if(ffIsSmbiosValueSet(buffer)) - return; - - ffReadFileBuffer(classPath, buffer); - if(ffIsSmbiosValueSet(buffer)) - return; - - ffStrbufClear(buffer); -} - static void getHostProductName(FFstrbuf* name) { - getSmbiosValue("/sys/devices/virtual/dmi/id/product_name", "/sys/class/dmi/id/product_name", name); + ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_name", "/sys/class/dmi/id/product_name", name); if(name->length > 0) return; @@ -42,11 +29,11 @@ static void getHostProductName(FFstrbuf* name) const char* ffDetectHost(FFHostResult* host) { - getSmbiosValue("/sys/devices/virtual/dmi/id/product_family", "/sys/class/dmi/id/product_family", &host->productFamily); + ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_family", "/sys/class/dmi/id/product_family", &host->productFamily); getHostProductName(&host->productName); - getSmbiosValue("/sys/devices/virtual/dmi/id/product_version", "/sys/class/dmi/id/product_version", &host->productVersion); - getSmbiosValue("/sys/devices/virtual/dmi/id/product_sku", "/sys/class/dmi/id/product_sku", &host->productSku); - getSmbiosValue("/sys/devices/virtual/dmi/id/sys_vendor", "/sys/class/dmi/id/sys_vendor", &host->sysVendor); + ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_version", "/sys/class/dmi/id/product_version", &host->productVersion); + ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_sku", "/sys/class/dmi/id/product_sku", &host->productSku); + ffGetSmbiosValue("/sys/devices/virtual/dmi/id/sys_vendor", "/sys/class/dmi/id/sys_vendor", &host->sysVendor); //KVM/Qemu virtual machine if(ffStrbufStartsWithS(&host->productName, "Standard PC")) diff --git a/src/detection/physicaldisk/physicaldisk_linux.c b/src/detection/physicaldisk/physicaldisk_linux.c index b94667731..89105dbec 100644 --- a/src/detection/physicaldisk/physicaldisk_linux.c +++ b/src/detection/physicaldisk/physicaldisk_linux.c @@ -42,13 +42,16 @@ const char* ffDetectPhysicalDisk(FFlist* result, FFPhysicalDiskOptions* options) { snprintf(pathSysBlock, PATH_MAX, "/sys/block/%s/device/vendor", devName); - ffAppendFileBuffer(pathSysBlock, &device->name); - if (device->name.length > 0) - ffStrbufAppendC(&device->name, ' '); + if (ffAppendFileBuffer(pathSysBlock, &device->name)) + { + ffStrbufTrimRightSpace(&device->name); + if (device->name.length > 0) + ffStrbufAppendC(&device->name, ' '); + } snprintf(pathSysBlock, PATH_MAX, "/sys/block/%s/device/model", devName); ffAppendFileBuffer(pathSysBlock, &device->name); - ffStrbufTrim(&device->name, ' '); + ffStrbufTrimRightSpace(&device->name); if (device->name.length == 0) ffStrbufSetS(&device->name, devName); diff --git a/src/util/FFstrbuf.c b/src/util/FFstrbuf.c index ce4a5c8e5..71e0b4d50 100644 --- a/src/util/FFstrbuf.c +++ b/src/util/FFstrbuf.c @@ -281,6 +281,24 @@ void ffStrbufTrimRight(FFstrbuf* strbuf, char c) strbuf->chars[strbuf->length] = '\0'; } +void ffStrbufTrimRightSpace(FFstrbuf* strbuf) +{ + if(strbuf->length == 0) + return; + + while(ffStrbufEndsWithFn(strbuf, isspace)) + --strbuf->length; + + if(strbuf->allocated == 0) + { + //static string + ffStrbufInitNS(strbuf, strbuf->length, strbuf->chars); + return; + } + + strbuf->chars[strbuf->length] = '\0'; +} + void ffStrbufRemoveSubstr(FFstrbuf* strbuf, uint32_t startIndex, uint32_t endIndex) { if(startIndex > strbuf->length || startIndex >= endIndex) diff --git a/src/util/FFstrbuf.h b/src/util/FFstrbuf.h index 23859d5f8..afdf74520 100644 --- a/src/util/FFstrbuf.h +++ b/src/util/FFstrbuf.h @@ -55,6 +55,7 @@ FF_C_PRINTF(2, 3) void ffStrbufSetF(FFstrbuf* strbuf, const char* format, ...); void ffStrbufTrimLeft(FFstrbuf* strbuf, char c); void ffStrbufTrimRight(FFstrbuf* strbuf, char c); +void ffStrbufTrimRightSpace(FFstrbuf* strbuf); void ffStrbufRemoveSubstr(FFstrbuf* strbuf, uint32_t startIndex, uint32_t endIndex); void ffStrbufRemoveS(FFstrbuf* strbuf, const char* str); @@ -454,6 +455,12 @@ static inline FF_C_NODISCARD bool ffStrbufEndsWithS(const FFstrbuf* strbuf, cons return ffStrbufEndsWithNS(strbuf, (uint32_t) strlen(end), end); } +static inline FF_C_NODISCARD bool ffStrbufEndsWithFn(const FFstrbuf* strbuf, int (*fn)(int)) +{ + return strbuf->length == 0 ? false : + fn(strbuf->chars[strbuf->length - 1]); +} + static inline FF_C_NODISCARD bool ffStrbufEndsWith(const FFstrbuf* strbuf, const FFstrbuf* end) { return ffStrbufEndsWithNS(strbuf, end->length, end->chars); diff --git a/src/util/smbiosHelper.c b/src/util/smbiosHelper.c index 88249f6d8..5f958fc27 100644 --- a/src/util/smbiosHelper.c +++ b/src/util/smbiosHelper.c @@ -1,4 +1,5 @@ #include "smbiosHelper.h" +#include "common/io/io.h" bool ffIsSmbiosValueSet(FFstrbuf* value) { @@ -26,3 +27,24 @@ bool ffIsSmbiosValueSet(FFstrbuf* value) !ffStrbufIgnCaseEqualS(value, "N/A") ; } + +#ifdef __linux__ +void ffGetSmbiosValue(const char* devicesPath, const char* classPath, FFstrbuf* buffer) +{ + if (ffReadFileBuffer(devicesPath, buffer)) + { + ffStrbufTrimRightSpace(buffer); + if(ffIsSmbiosValueSet(buffer)) + return; + } + + if (ffReadFileBuffer(classPath, buffer)) + { + ffStrbufTrimRightSpace(buffer); + if(ffIsSmbiosValueSet(buffer)) + return; + } + + ffStrbufClear(buffer); +} +#endif diff --git a/src/util/smbiosHelper.h b/src/util/smbiosHelper.h index 9be3e3120..f129af5ac 100644 --- a/src/util/smbiosHelper.h +++ b/src/util/smbiosHelper.h @@ -12,4 +12,8 @@ static inline void ffCleanUpSmbiosValue(FFstrbuf* value) ffStrbufClear(value); } -#endif \ No newline at end of file +#ifdef __linux__ +void ffGetSmbiosValue(const char* devicesPath, const char* classPath, FFstrbuf* buffer); +#endif + +#endif