From 5599335965cba11ff692cef1089d8678286f7566 Mon Sep 17 00:00:00 2001 From: Linus Dierheimer Date: Thu, 29 Dec 2022 14:40:37 +0100 Subject: [PATCH 1/9] Zip windows artifacts --- .github/workflows/push.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index fc9935eb99..b3b601f46c 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -141,7 +141,7 @@ jobs: with: msystem: CLANG64 update: true - install: git mingw-w64-clang-x86_64-cmake mingw-w64-clang-x86_64-clang mingw-w64-clang-x86_64-cjson mingw-w64-clang-x86_64-vulkan-loader mingw-w64-clang-x86_64-opencl-icd + install: git zip mingw-w64-clang-x86_64-cmake mingw-w64-clang-x86_64-clang mingw-w64-clang-x86_64-cjson mingw-w64-clang-x86_64-vulkan-loader mingw-w64-clang-x86_64-opencl-icd - name: print msys version run: uname -a @@ -188,14 +188,14 @@ jobs: - name: run tests run: ctest + - name: create zip archive + run: zip fastfetch-windows.zip *.dll fastfetch.exe flashfetch.exe + - name: upload artifacts uses: actions/upload-artifact@v3 with: name: fastfetch-windows - path: | - ./*.dll - ./fastfetch.exe - ./flashfetch.exe + path: ./fastfetch-windows.zip windows-old: name: Windows-old @@ -215,7 +215,7 @@ jobs: with: msystem: MINGW64 update: true - install: git mingw-w64-x86_64-cmake mingw-w64-x86_64-gcc mingw-w64-x86_64-cjson mingw-w64-x86_64-vulkan-loader mingw-w64-x86_64-opencl-icd + install: git zip mingw-w64-x86_64-cmake mingw-w64-x86_64-gcc mingw-w64-x86_64-cjson mingw-w64-x86_64-vulkan-loader mingw-w64-x86_64-opencl-icd - name: print msys version run: uname -a @@ -262,14 +262,14 @@ jobs: - name: run tests run: ctest + - name: create zip archive + run: zip fastfetch-windows-old.zip *.dll fastfetch.exe flashfetch.exe + - name: upload artifacts uses: actions/upload-artifact@v3 with: name: fastfetch-windows-old - path: | - ./*.dll - ./fastfetch.exe - ./flashfetch.exe + path: ./fastfetch-windows-old.zip release: if: github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository == 'LinusDierheimer/fastfetch' From 7a5d88270edd9b0aa07acf291fe15cdd6b9fb6c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Fri, 30 Dec 2022 01:12:49 +0800 Subject: [PATCH 2/9] macOS: fix building with old xcode Makes homebrew happy https://github.com/Homebrew/homebrew-core/pull/119329 --- src/detection/wifi/wifi_apple.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/detection/wifi/wifi_apple.m b/src/detection/wifi/wifi_apple.m index 8d96778f10..4f09ae1a7f 100644 --- a/src/detection/wifi/wifi_apple.m +++ b/src/detection/wifi/wifi_apple.m @@ -60,7 +60,7 @@ case kCWPHYMode11ac: ffStrbufAppendS(&item->conn.phyType, "802.11ac (Wi-Fi 5)"); break; - case kCWPHYMode11ax: + case 6 /*kCWPHYMode11ax*/: ffStrbufAppendS(&item->conn.phyType, "802.11ax (Wi-Fi 6)"); break; case 7 /*kCWPHYMode11be?*/: From 90d8677b7a36187fb02d41b8c1efd9178f96bebe Mon Sep 17 00:00:00 2001 From: Ian Manske Date: Thu, 29 Dec 2022 12:51:00 -0500 Subject: [PATCH 3/9] Add missing else statement. --- src/fastfetch.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/fastfetch.c b/src/fastfetch.c index ac74ab500c..e7907f8ce7 100644 --- a/src/fastfetch.c +++ b/src/fastfetch.c @@ -701,6 +701,7 @@ static void optionParseColor(const char* key, const char* value, FFstrbuf* buffe else FF_APPEND_COLOR_CODE_COND(magenta, "35") else FF_APPEND_COLOR_CODE_COND(cyan, "36") else FF_APPEND_COLOR_CODE_COND(white, "37") + else { ffStrbufAppendC(buffer, *value); ++value; From 70aad5c320a719577f01960e125368bd1fdf7519 Mon Sep 17 00:00:00 2001 From: Linus Dierheimer Date: Thu, 29 Dec 2022 22:51:23 +0100 Subject: [PATCH 4/9] Fix parsing mountpoints with spaces #364 --- src/detection/disk/disk_linux.c | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/src/detection/disk/disk_linux.c b/src/detection/disk/disk_linux.c index 8abfbdf20e..da6c02d508 100644 --- a/src/detection/disk/disk_linux.c +++ b/src/detection/disk/disk_linux.c @@ -3,6 +3,31 @@ #include #include +static void strbufAppendMountPoint(FFstrbuf* mountpoint, const char* source) +{ + while(*source != '\0' && !isspace(*source)) + { + //Space is encoded as \040 + if(strncmp(source, "\\040", 4) == 0) + { + ffStrbufAppendC(mountpoint, ' '); + source += 4; + continue; + } + + //Tab is encoded as \011 + if(strncmp(source, "\\011", 4) == 0) + { + ffStrbufAppendC(mountpoint, '\t'); + source += 4; + continue; + } + + ffStrbufAppendC(mountpoint, *source); + ++source; + } +} + void ffDetectDisksImpl(FFDiskResult* disks) { FILE* mountsFile = fopen("/proc/mounts", "r"); @@ -25,7 +50,7 @@ void ffDetectDisksImpl(FFDiskResult* disks) if(strncmp(currentPos, "/dev/", 5) != 0 && strncmp(currentPos, "drvfs", 5) != 0) continue; - //Skip /dev/ + //Skip /dev/ or drvfs currentPos += 5; //Don't show loop file systems @@ -41,7 +66,7 @@ void ffDetectDisksImpl(FFDiskResult* disks) ++currentPos; ffStrbufInitA(&disk->mountpoint, 16); - ffStrbufAppendSUntilC(&disk->mountpoint, currentPos, ' '); + strbufAppendMountPoint(&disk->mountpoint, currentPos); //Go to filesystem currentPos += disk->mountpoint.length; From 5026be2d28185efcf6c1ee81fafe2e7657eddeb4 Mon Sep 17 00:00:00 2001 From: Linus Dierheimer Date: Thu, 29 Dec 2022 22:58:29 +0100 Subject: [PATCH 5/9] Fix parsing mountpoints with backslashes #364 --- src/detection/disk/disk_linux.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/detection/disk/disk_linux.c b/src/detection/disk/disk_linux.c index da6c02d508..a4a4760098 100644 --- a/src/detection/disk/disk_linux.c +++ b/src/detection/disk/disk_linux.c @@ -7,6 +7,14 @@ static void strbufAppendMountPoint(FFstrbuf* mountpoint, const char* source) { while(*source != '\0' && !isspace(*source)) { + //Backslash is encoded as \134 + if(strncmp(source, "\\134", 4) == 0) + { + ffStrbufAppendC(mountpoint, '\\'); + source += 4; + continue; + } + //Space is encoded as \040 if(strncmp(source, "\\040", 4) == 0) { From 50983f83f5c80c8241d2ce8ce697dcd5c3e6c558 Mon Sep 17 00:00:00 2001 From: Linus Dierheimer Date: Thu, 29 Dec 2022 23:19:44 +0100 Subject: [PATCH 6/9] Generic decoding for mountpoints #364 --- src/detection/disk/disk_linux.c | 34 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/src/detection/disk/disk_linux.c b/src/detection/disk/disk_linux.c index a4a4760098..72d6c3f27f 100644 --- a/src/detection/disk/disk_linux.c +++ b/src/detection/disk/disk_linux.c @@ -1,5 +1,6 @@ #include "disk.h" +#include #include #include @@ -7,28 +8,19 @@ static void strbufAppendMountPoint(FFstrbuf* mountpoint, const char* source) { while(*source != '\0' && !isspace(*source)) { - //Backslash is encoded as \134 - if(strncmp(source, "\\134", 4) == 0) + //After a backslash the next 3 characters are octal ascii codes + if(*source == '\\' && strnlen(source, 4) == 4) { - ffStrbufAppendC(mountpoint, '\\'); - source += 4; - continue; - } - - //Space is encoded as \040 - if(strncmp(source, "\\040", 4) == 0) - { - ffStrbufAppendC(mountpoint, ' '); - source += 4; - continue; - } - - //Tab is encoded as \011 - if(strncmp(source, "\\011", 4) == 0) - { - ffStrbufAppendC(mountpoint, '\t'); - source += 4; - continue; + char octal[4] = {0}; + strncpy(octal, source + 1, 3); + + long value = strtol(octal, NULL, 8); //Returns 0 on error, so no need to check endptr + if(value > 0 && value < CHAR_MAX) + { + ffStrbufAppendC(mountpoint, (char) value); + source += 4; + continue; + } } ffStrbufAppendC(mountpoint, *source); From 1dabac9782e7844f51e2d11ae6556cd92ec4df37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Fri, 30 Dec 2022 10:47:57 +0800 Subject: [PATCH 7/9] Media: remove the alias name `Song` to avoid confusion So we don't have code like `#define FF_SONG_MODULE_NAME "Media"`. Also fix the error `unknown option: --media-format` --- CHANGELOG.md | 8 +++++++- CMakeLists.txt | 2 +- presets/all | 2 +- src/common/init.c | 4 ++-- src/data/config_user.txt | 6 +++--- src/data/modules.txt | 2 +- src/fastfetch.c | 10 +++++----- src/fastfetch.h | 4 ++-- src/flashfetch.c | 2 +- src/modules/{song.c => media.c} | 14 +++++++------- 10 files changed, 30 insertions(+), 24 deletions(-) rename src/modules/{song.c => media.c} (86%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ff4da1319..94d60341d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +# 1.8.1 + +Notable Changes: + +* `Song` was used as an alias to `Media` module. It's removed to avoid confusion. All song related flags (`--song-key`, etc) should change to media (`--media-key`, etc). + # 1.8.0 This release introduces Windows support! Fastfetch now fully support all major desktop OSes (Linux, macOS, Windows and FreeBSD) @@ -72,7 +78,7 @@ Features: * MacPorts package manager support (@SladeGetz, #234) * Battery support for MacOS (@CarterLi, #235) * Processes, swap & terminal font support for MacOS(@CarterLi, #237) -* Song support for MacOS (@CarterLi, #242) +* Media support for MacOS (@CarterLi, #242) * Player support for MacOS (@CarterLi, #245) * WM theme support for MacOS (@CarterLi, #246) * CPU usage support for MacOS (@CarterLi, #247) diff --git a/CMakeLists.txt b/CMakeLists.txt index a20b980bca..da454f4048 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -284,7 +284,7 @@ set(LIBFASTFETCH_SRC src/modules/resolution.c src/modules/separator.c src/modules/shell.c - src/modules/song.c + src/modules/media.c src/modules/terminal.c src/modules/terminalfont.c src/modules/theme.c diff --git a/presets/all b/presets/all index d28a033a41..6f5fbb4d98 100644 --- a/presets/all +++ b/presets/all @@ -1 +1 @@ ---structure Title:Separator:OS:Host:Bios:Board:Chassis:Kernel:Uptime:Processes:Packages:Shell:Resolution:DE:WM:WMTheme:Theme:Icons:Font:Cursor:Terminal:TerminalFont:CPU:CPUUsage:GPU:Memory:Swap:Disk:Battery:PowerAdapter:Player:Song:PublicIP:LocalIP:Wifi:DateTime:Locale:Vulkan:OpenGL:OpenCL:Users:Weather:Break:Colors +--structure Title:Separator:OS:Host:Bios:Board:Chassis:Kernel:Uptime:Processes:Packages:Shell:Resolution:DE:WM:WMTheme:Theme:Icons:Font:Cursor:Terminal:TerminalFont:CPU:CPUUsage:GPU:Memory:Swap:Disk:Battery:PowerAdapter:Player:Media:PublicIP:LocalIP:Wifi:DateTime:Locale:Vulkan:OpenGL:OpenCL:Users:Weather:Break:Colors diff --git a/src/common/init.c b/src/common/init.c index d36c6ef5c9..37cf2f9aa5 100644 --- a/src/common/init.c +++ b/src/common/init.c @@ -193,7 +193,7 @@ static void defaultConfig(FFinstance* instance) initModuleArg(&instance->config.weather); initModuleArg(&instance->config.wifi); initModuleArg(&instance->config.player); - initModuleArg(&instance->config.song); + initModuleArg(&instance->config.media); initModuleArg(&instance->config.dateTime); initModuleArg(&instance->config.date); initModuleArg(&instance->config.time); @@ -425,7 +425,7 @@ static void destroyConfig(FFinstance* instance) destroyModuleArg(&instance->config.weather); destroyModuleArg(&instance->config.wifi); destroyModuleArg(&instance->config.player); - destroyModuleArg(&instance->config.song); + destroyModuleArg(&instance->config.media); destroyModuleArg(&instance->config.dateTime); destroyModuleArg(&instance->config.date); destroyModuleArg(&instance->config.time); diff --git a/src/data/config_user.txt b/src/data/config_user.txt index acf7f2117d..9725c0f812 100644 --- a/src/data/config_user.txt +++ b/src/data/config_user.txt @@ -247,7 +247,7 @@ #--wifi-key Wifi #--weather-key Weather #--player-key Media Player -#--song-key Song +#--media-key Media #--datetime-key Date Time #--vulkan-key Vulkan #--opengl-key OpenGL @@ -290,7 +290,7 @@ #--public-ip-format #--weather-format #--player-format -#--song-format +#--media-format #--datetime-format #--vulkan-format #--opengl-format @@ -333,7 +333,7 @@ #--public-ip-error #--weather-error #--player-error -#--song-error +#--media-error #--datetime-error #--vulkan-error #--opengl-error diff --git a/src/data/modules.txt b/src/data/modules.txt index 4420e2c91b..a684c1b84b 100644 --- a/src/data/modules.txt +++ b/src/data/modules.txt @@ -18,6 +18,7 @@ Icons Kernel Locale LocalIP +Media Memory OpenGL OS @@ -29,7 +30,6 @@ PublicIP Resolution Separator Shell -Song Swap Terminal TerminalFont diff --git a/src/fastfetch.c b/src/fastfetch.c index e7907f8ce7..fd36ebc1d5 100644 --- a/src/fastfetch.c +++ b/src/fastfetch.c @@ -389,9 +389,9 @@ static inline void printCommandHelp(const char* command) "URL name" ); } - else if(strcasecmp(command, "song-format") == 0 || strcasecmp(command, "media-format") == 0) + else if(strcasecmp(command, "media-format") == 0) { - constructAndPrintCommandHelpFormat("song", "{3} - {1}", 4, + constructAndPrintCommandHelpFormat("media", "{3} - {1}", 4, "Pretty media name", "Media name", "Artist name", @@ -1122,7 +1122,7 @@ static void parseOption(FFinstance* instance, FFdata* data, const char* key, con else if(optionParseModuleArgs(key, value, "public-ip", &instance->config.publicIP)) {} else if(optionParseModuleArgs(key, value, "weather", &instance->config.weather)) {} else if(optionParseModuleArgs(key, value, "player", &instance->config.player)) {} - else if(optionParseModuleArgs(key, value, "song", &instance->config.song)) {} + else if(optionParseModuleArgs(key, value, "media", &instance->config.media)) {} else if(optionParseModuleArgs(key, value, "datetime", &instance->config.dateTime)) {} else if(optionParseModuleArgs(key, value, "date", &instance->config.date)) {} else if(optionParseModuleArgs(key, value, "time", &instance->config.time)) {} @@ -1380,8 +1380,8 @@ static void parseStructureCommand(FFinstance* instance, FFdata* data, const char ffPrintWeather(instance); else if(strcasecmp(line, "player") == 0) ffPrintPlayer(instance); - else if(strcasecmp(line, "media") == 0 || strcasecmp(line, "song") == 0) - ffPrintSong(instance); + else if(strcasecmp(line, "media") == 0) + ffPrintMedia(instance); else if(strcasecmp(line, "datetime") == 0) ffPrintDateTime(instance); else if(strcasecmp(line, "date") == 0) diff --git a/src/fastfetch.h b/src/fastfetch.h index 757e5f0836..a99eadc44a 100644 --- a/src/fastfetch.h +++ b/src/fastfetch.h @@ -134,7 +134,7 @@ typedef struct FFconfig FFModuleArgs publicIP; FFModuleArgs weather; FFModuleArgs player; - FFModuleArgs song; + FFModuleArgs media; FFModuleArgs dateTime; FFModuleArgs date; FFModuleArgs time; @@ -288,7 +288,7 @@ void ffPrintBattery(FFinstance* instance); void ffPrintPowerAdapter(FFinstance* instance); void ffPrintLocale(FFinstance* instance); void ffPrintPlayer(FFinstance* instance); -void ffPrintSong(FFinstance* instance); +void ffPrintMedia(FFinstance* instance); void ffPrintDateTime(FFinstance* instance); void ffPrintDate(FFinstance* instance); void ffPrintTime(FFinstance* instance); diff --git a/src/flashfetch.c b/src/flashfetch.c index 769cdfc5de..196e94bb52 100644 --- a/src/flashfetch.c +++ b/src/flashfetch.c @@ -48,7 +48,7 @@ int main(int argc, char** argv) ffPrintBattery(&instance); ffPrintPowerAdapter(&instance); //ffPrintPlayer(&instance); - //ffPrintSong(&instance); + //ffPrintMedia(&instance); //ffPrintLocalIp(&instance); //ffPrintPublicIp(&instance); //ffPrintWifi(&instance); diff --git a/src/modules/song.c b/src/modules/media.c similarity index 86% rename from src/modules/song.c rename to src/modules/media.c index 9e5feb3a16..eb0eaeeb27 100644 --- a/src/modules/song.c +++ b/src/modules/media.c @@ -4,8 +4,8 @@ #include -#define FF_SONG_MODULE_NAME "Media" -#define FF_SONG_NUM_FORMAT_ARGS 5 +#define FF_MEDIA_MODULE_NAME "Media" +#define FF_MEDIA_NUM_FORMAT_ARGS 5 static bool shouldIgoreChar(char c) { @@ -42,13 +42,13 @@ static bool artistInSongTitle(const FFstrbuf* song, const FFstrbuf* artist) return false; } -void ffPrintSong(FFinstance* instance) +void ffPrintMedia(FFinstance* instance) { const FFMediaResult* media = ffDetectMedia(instance); if(media->error.length > 0) { - ffPrintError(instance, FF_SONG_MODULE_NAME, 0, &instance->config.song, "%s", media->error.chars); + ffPrintError(instance, FF_MEDIA_MODULE_NAME, 0, &instance->config.media, "%s", media->error.chars); return; } @@ -69,7 +69,7 @@ void ffPrintSong(FFinstance* instance) if(songPretty.length == 0) ffStrbufAppend(&songPretty, &media->song); - if(instance->config.song.outputFormat.length == 0) + if(instance->config.media.outputFormat.length == 0) { //We don't expose artistPretty to the format, as it might be empty (when the think that the artist is already in the song title) FFstrbuf artistPretty; @@ -81,7 +81,7 @@ void ffPrintSong(FFinstance* instance) if(artistInSongTitle(&songPretty, &artistPretty)) ffStrbufClear(&artistPretty); - ffPrintLogoAndKey(instance, FF_SONG_MODULE_NAME, 0, &instance->config.song.key); + ffPrintLogoAndKey(instance, FF_MEDIA_MODULE_NAME, 0, &instance->config.media.key); if(artistPretty.length > 0) { @@ -98,7 +98,7 @@ void ffPrintSong(FFinstance* instance) } else { - ffPrintFormat(instance, FF_SONG_MODULE_NAME, 0, &instance->config.song, FF_SONG_NUM_FORMAT_ARGS, (FFformatarg[]){ + ffPrintFormat(instance, FF_MEDIA_MODULE_NAME, 0, &instance->config.media, FF_MEDIA_NUM_FORMAT_ARGS, (FFformatarg[]){ {FF_FORMAT_ARG_TYPE_STRBUF, &songPretty}, {FF_FORMAT_ARG_TYPE_STRBUF, &media->song}, {FF_FORMAT_ARG_TYPE_STRBUF, &media->artist}, From b5c2c9ee7a895050bb75bb3ef194a3248d59557e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Fri, 30 Dec 2022 22:00:11 +0800 Subject: [PATCH 8/9] Release 1.8.1 --- CHANGELOG.md | 4 ++++ CMakeLists.txt | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 94d60341d1..96c2df27f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ Notable Changes: * `Song` was used as an alias to `Media` module. It's removed to avoid confusion. All song related flags (`--song-key`, etc) should change to media (`--media-key`, etc). +Bugfixes: + +* Mountpoint paths don't get decoded (#364) + # 1.8.0 This release introduces Windows support! Fastfetch now fully support all major desktop OSes (Linux, macOS, Windows and FreeBSD) diff --git a/CMakeLists.txt b/CMakeLists.txt index da454f4048..8a0b6966e4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.12.0) # target_link_libraries with OBJECT libs & project homepage url project(fastfetch - VERSION 1.8.0 + VERSION 1.8.1 LANGUAGES C DESCRIPTION "Fast system information tool" HOMEPAGE_URL "https://github.com/LinusDierheimer/fastfetch" From e2cadf85f8ab8e476be1b4832296b7cf3ce649aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Fri, 30 Dec 2022 22:03:53 +0800 Subject: [PATCH 9/9] Changelog: credit #365 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 96c2df27f0..6ebdd83cca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ Notable Changes: Bugfixes: * Mountpoint paths don't get decoded (#364) +* Adds a missing else statement to fix color parsing (#365) # 1.8.0