Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package fastfetch for openSUSE:Factory 
checked in at 2024-02-02 15:47:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fastfetch (Old)
 and      /work/SRC/openSUSE:Factory/.fastfetch.new.1815 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "fastfetch"

Fri Feb  2 15:47:38 2024 rev:13 rq:1143566 version:2.7.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/fastfetch/fastfetch.changes      2024-01-29 
22:29:12.613867544 +0100
+++ /work/SRC/openSUSE:Factory/.fastfetch.new.1815/fastfetch.changes    
2024-02-02 15:48:21.091020955 +0100
@@ -1,0 +2,9 @@
+Fri Feb  2 08:05:34 UTC 2024 - Gordon Leung <piratec...@protonmail.com>
+
+- update to version 2.7.1:
+  Features:
+    * Config presets in app folder now work with symlinks
+  Bugfixes:
+    * Fix a possible segfault when detecting terminal (Terminal, Linux)
+
+-------------------------------------------------------------------

Old:
----
  fastfetch-2.7.0.tar.gz

New:
----
  fastfetch-2.7.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ fastfetch.spec ++++++
--- /var/tmp/diff_new_pack.kE5NXZ/_old  2024-02-02 15:48:21.607039713 +0100
+++ /var/tmp/diff_new_pack.kE5NXZ/_new  2024-02-02 15:48:21.607039713 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           fastfetch
-Version:        2.7.0
+Version:        2.7.1
 Release:        0
 Summary:        Neofetch-like tool written in C
 License:        MIT

++++++ fastfetch-2.7.0.tar.gz -> fastfetch-2.7.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastfetch-2.7.0/CHANGELOG.md 
new/fastfetch-2.7.1/CHANGELOG.md
--- old/fastfetch-2.7.0/CHANGELOG.md    2024-01-26 04:06:32.000000000 +0100
+++ new/fastfetch-2.7.1/CHANGELOG.md    2024-01-30 12:25:55.000000000 +0100
@@ -1,3 +1,11 @@
+# 2.7.1
+
+Features:
+* Config presets in app folder now work with symlinks
+
+Bugfixes:
+* Fix a possible segfault when detecting terminal (Terminal, Linux)
+
 # 2.7.0
 
 Features:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastfetch-2.7.0/CMakeLists.txt 
new/fastfetch-2.7.1/CMakeLists.txt
--- old/fastfetch-2.7.0/CMakeLists.txt  2024-01-26 04:06:32.000000000 +0100
+++ new/fastfetch-2.7.1/CMakeLists.txt  2024-01-30 12:25:55.000000000 +0100
@@ -1,7 +1,7 @@
 cmake_minimum_required(VERSION 3.12.0) # target_link_libraries with OBJECT 
libs & project homepage url
 
 project(fastfetch
-    VERSION 2.7.0
+    VERSION 2.7.1
     LANGUAGES C
     DESCRIPTION "Fast neofetch-like system information tool"
     HOMEPAGE_URL "https://github.com/fastfetch-cli/fastfetch";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastfetch-2.7.0/src/detection/gpu/gpu.c 
new/fastfetch-2.7.1/src/detection/gpu/gpu.c
--- old/fastfetch-2.7.0/src/detection/gpu/gpu.c 2024-01-26 04:06:32.000000000 
+0100
+++ new/fastfetch-2.7.1/src/detection/gpu/gpu.c 2024-01-30 12:25:55.000000000 
+0100
@@ -6,6 +6,8 @@
 const char* FF_GPU_VENDOR_NAME_AMD = "AMD";
 const char* FF_GPU_VENDOR_NAME_INTEL = "Intel";
 const char* FF_GPU_VENDOR_NAME_NVIDIA = "NVIDIA";
+const char* FF_GPU_VENDOR_NAME_QUALCOMM = "Qualcomm";
+const char* FF_GPU_VENDOR_NAME_MTK = "MTK";
 const char* FF_GPU_VENDOR_NAME_VMWARE = "VMware";
 const char* FF_GPU_VENDOR_NAME_PARALLEL = "Parallel";
 const char* FF_GPU_VENDOR_NAME_MICROSOFT = "Microsoft";
@@ -33,6 +35,10 @@
         return FF_GPU_VENDOR_NAME_INTEL;
     else if(arrayContains((const unsigned[]) {0x0955, 0x10de, 0x12d2}, 
vendorId, 3))
         return FF_GPU_VENDOR_NAME_NVIDIA;
+    else if(arrayContains((const unsigned[]) {0x5143}, vendorId, 1))
+        return FF_GPU_VENDOR_NAME_QUALCOMM;
+    else if(arrayContains((const unsigned[]) {0x14c3}, vendorId, 1))
+        return FF_GPU_VENDOR_NAME_MTK;
     else if(arrayContains((const unsigned[]) {0x15ad}, vendorId, 1))
         return FF_GPU_VENDOR_NAME_VMWARE;
     else if(arrayContains((const unsigned[]) {0x1af4}, vendorId, 1))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/fastfetch-2.7.0/src/detection/terminalshell/terminalshell_linux.c 
new/fastfetch-2.7.1/src/detection/terminalshell/terminalshell_linux.c
--- old/fastfetch-2.7.0/src/detection/terminalshell/terminalshell_linux.c       
2024-01-26 04:06:32.000000000 +0100
+++ new/fastfetch-2.7.1/src/detection/terminalshell/terminalshell_linux.c       
2024-01-30 12:25:55.000000000 +0100
@@ -312,7 +312,11 @@
 
 static bool getTerminalInfoByPidEnv(FFTerminalResult* result, const char* 
pidEnv)
 {
-    pid_t pid = (pid_t) strtol(getenv(pidEnv), NULL, 10);
+    const char* envStr = getenv(pidEnv);
+    if (envStr == NULL)
+        return false;
+
+    pid_t pid = (pid_t) strtol(envStr, NULL, 10);
     result->pid = (uint32_t) pid;
     char name[256];
     if (getProcessNameAndPpid(pid, name, (pid_t*) &result->ppid, NULL) == NULL)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastfetch-2.7.0/src/modules/datetime/datetime.c 
new/fastfetch-2.7.1/src/modules/datetime/datetime.c
--- old/fastfetch-2.7.0/src/modules/datetime/datetime.c 2024-01-26 
04:06:32.000000000 +0100
+++ new/fastfetch-2.7.1/src/modules/datetime/datetime.c 2024-01-30 
12:25:55.000000000 +0100
@@ -9,7 +9,7 @@
 #pragma GCC diagnostic ignored "-Wformat" // warning: unknown conversion type 
character 'F' in format
 
 #define FF_DATETIME_DISPLAY_NAME "Date & Time"
-#define FF_DATETIME_NUM_FORMAT_ARGS 20
+#define FF_DATETIME_NUM_FORMAT_ARGS 22
 
 typedef struct FFDateTimeResult
 {
@@ -17,23 +17,25 @@
     uint16_t year; //2022
     uint8_t yearShort; //22
     uint8_t month; //2
-    FFstrbuf monthPretty; //02
-    FFstrbuf monthName; //February
-    FFstrbuf monthNameShort; //Feb
+    char monthPretty[FASTFETCH_STRBUF_DEFAULT_ALLOC]; //02
+    char monthName[FASTFETCH_STRBUF_DEFAULT_ALLOC]; //February
+    char monthNameShort[FASTFETCH_STRBUF_DEFAULT_ALLOC]; //Feb
     uint8_t week; //8
-    FFstrbuf weekday; //Monday
-    FFstrbuf weekdayShort; //Mon
+    char weekday[FASTFETCH_STRBUF_DEFAULT_ALLOC]; //Monday
+    char weekdayShort[FASTFETCH_STRBUF_DEFAULT_ALLOC]; //Mon
     uint16_t dayInYear; //52
     uint8_t dayInMonth; //21
     uint8_t dayInWeek; //1
     uint8_t hour; //15
-    FFstrbuf hourPretty; //15
+    char hourPretty[FASTFETCH_STRBUF_DEFAULT_ALLOC]; //15
     uint8_t hour12; //3
-    FFstrbuf hour12Pretty; //03
+    char hour12Pretty[FASTFETCH_STRBUF_DEFAULT_ALLOC]; //03
     uint8_t minute; //18
-    FFstrbuf minutePretty; //18
+    char minutePretty[FASTFETCH_STRBUF_DEFAULT_ALLOC]; //18
     uint8_t second; //37
-    FFstrbuf secondPretty; //37
+    char secondPretty[FASTFETCH_STRBUF_DEFAULT_ALLOC]; //37
+    char offsetFromUtc[FASTFETCH_STRBUF_DEFAULT_ALLOC];
+    char timezoneName[FASTFETCH_STRBUF_DEFAULT_ALLOC];
 } FFDateTimeResult;
 
 void ffPrintDateTimeFormat(struct tm* tm, const FFModuleArgs* moduleArgs)
@@ -43,80 +45,50 @@
     result.year = (uint16_t) (tm->tm_year + 1900);
     result.yearShort = (uint8_t) (result.year % 100);
     result.month = (uint8_t) (tm->tm_mon + 1);
-
-    ffStrbufInitA(&result.monthPretty, FASTFETCH_STRBUF_DEFAULT_ALLOC);
-    result.monthPretty.length = (uint32_t) strftime(result.monthPretty.chars, 
ffStrbufGetFree(&result.monthPretty), "%m", tm);
-
-    ffStrbufInitA(&result.monthName, FASTFETCH_STRBUF_DEFAULT_ALLOC);
-    result.monthName.length = (uint32_t) strftime(result.monthName.chars, 
ffStrbufGetFree(&result.monthName), "%B", tm);
-
-    ffStrbufInitA(&result.monthNameShort, FASTFETCH_STRBUF_DEFAULT_ALLOC);
-    result.monthNameShort.length = (uint32_t) 
strftime(result.monthNameShort.chars, ffStrbufGetFree(&result.monthNameShort), 
"%b", tm);
-
+    strftime(result.monthPretty, sizeof(result.monthPretty), "%m", tm);
+    strftime(result.monthName, sizeof(result.monthName), "%B", tm);
+    strftime(result.monthNameShort, sizeof(result.monthNameShort), "%b", tm);
     result.week = (uint8_t) (tm->tm_yday / 7 + 1);
-
-    ffStrbufInitA(&result.weekday, FASTFETCH_STRBUF_DEFAULT_ALLOC);
-    result.weekday.length = (uint32_t) strftime(result.weekday.chars, 
ffStrbufGetFree(&result.weekday), "%A", tm);
-
-    ffStrbufInitA(&result.weekdayShort, FASTFETCH_STRBUF_DEFAULT_ALLOC);
-    result.weekdayShort.length = (uint32_t) 
strftime(result.weekdayShort.chars, ffStrbufGetFree(&result.weekdayShort), 
"%a", tm);
-
+    strftime(result.weekday, sizeof(result.weekday), "%A", tm);
+    strftime(result.weekdayShort, sizeof(result.weekdayShort), "%a", tm);
     result.dayInYear = (uint8_t) (tm->tm_yday + 1);
     result.dayInMonth = (uint8_t) tm->tm_mday;
     result.dayInWeek = tm->tm_wday == 0 ? 7 : (uint8_t) tm->tm_wday;
-
     result.hour = (uint8_t) tm->tm_hour;
-
-    ffStrbufInitA(&result.hourPretty, FASTFETCH_STRBUF_DEFAULT_ALLOC);
-    result.hourPretty.length = (uint32_t) strftime(result.hourPretty.chars, 
ffStrbufGetFree(&result.hourPretty), "%H", tm);
-
+    strftime(result.hourPretty, sizeof(result.hourPretty), "%H", tm);
     result.hour12 = (uint8_t) (result.hour % 12);
-
-    ffStrbufInitA(&result.hour12Pretty, FASTFETCH_STRBUF_DEFAULT_ALLOC);
-    result.hour12Pretty.length = (uint32_t) 
strftime(result.hour12Pretty.chars, ffStrbufGetFree(&result.hour12Pretty), 
"%I", tm);
-
+    strftime(result.hour12Pretty, sizeof(result.hour12Pretty), "%I", tm);
     result.minute = (uint8_t) tm->tm_min;
-
-    ffStrbufInitA(&result.minutePretty, FASTFETCH_STRBUF_DEFAULT_ALLOC);
-    result.minutePretty.length = (uint32_t) 
strftime(result.minutePretty.chars, ffStrbufGetFree(&result.minutePretty), 
"%M", tm);
-
+    strftime(result.minutePretty, sizeof(result.minutePretty), "%M", tm);
     result.second = (uint8_t) tm->tm_sec;
-
-    ffStrbufInitA(&result.secondPretty, FASTFETCH_STRBUF_DEFAULT_ALLOC);
-    result.secondPretty.length = (uint32_t) 
strftime(result.secondPretty.chars, ffStrbufGetFree(&result.secondPretty), 
"%S", tm);
+    strftime(result.secondPretty, sizeof(result.secondPretty), "%S", tm);
+    strftime(result.offsetFromUtc, sizeof(result.offsetFromUtc), "%z", tm);
+    strftime(result.timezoneName, sizeof(result.timezoneName), "%Z", tm);
 
     ffPrintFormat(FF_DATETIME_DISPLAY_NAME, 0, moduleArgs, 
FF_DATETIME_NUM_FORMAT_ARGS, (FFformatarg[]) {
         {FF_FORMAT_ARG_TYPE_UINT16, &result.year}, // 1
         {FF_FORMAT_ARG_TYPE_UINT8, &result.yearShort}, // 2
         {FF_FORMAT_ARG_TYPE_UINT8, &result.month}, // 3
-        {FF_FORMAT_ARG_TYPE_STRBUF, &result.monthPretty}, // 4
-        {FF_FORMAT_ARG_TYPE_STRBUF, &result.monthName}, // 5
-        {FF_FORMAT_ARG_TYPE_STRBUF, &result.monthNameShort}, // 6
+        {FF_FORMAT_ARG_TYPE_STRING, result.monthPretty}, // 4
+        {FF_FORMAT_ARG_TYPE_STRING, result.monthName}, // 5
+        {FF_FORMAT_ARG_TYPE_STRING, result.monthNameShort}, // 6
         {FF_FORMAT_ARG_TYPE_UINT8, &result.week}, // 7
-        {FF_FORMAT_ARG_TYPE_STRBUF, &result.weekday}, // 8
-        {FF_FORMAT_ARG_TYPE_STRBUF, &result.weekdayShort}, // 9
+        {FF_FORMAT_ARG_TYPE_STRING, result.weekday}, // 8
+        {FF_FORMAT_ARG_TYPE_STRING, result.weekdayShort}, // 9
         {FF_FORMAT_ARG_TYPE_UINT16, &result.dayInYear}, // 10
         {FF_FORMAT_ARG_TYPE_UINT8, &result.dayInMonth}, // 11
         {FF_FORMAT_ARG_TYPE_UINT8, &result.dayInWeek}, // 12
         {FF_FORMAT_ARG_TYPE_UINT8, &result.hour}, // 13
-        {FF_FORMAT_ARG_TYPE_STRBUF, &result.hourPretty}, // 14
+        {FF_FORMAT_ARG_TYPE_STRING, result.hourPretty}, // 14
         {FF_FORMAT_ARG_TYPE_UINT8, &result.hour12}, // 15
-        {FF_FORMAT_ARG_TYPE_STRBUF, &result.hour12Pretty}, // 16
+        {FF_FORMAT_ARG_TYPE_STRING, result.hour12Pretty}, // 16
         {FF_FORMAT_ARG_TYPE_UINT8, &result.minute}, // 17
-        {FF_FORMAT_ARG_TYPE_STRBUF, &result.minutePretty}, // 18
+        {FF_FORMAT_ARG_TYPE_STRING, result.minutePretty}, // 18
         {FF_FORMAT_ARG_TYPE_UINT8, &result.second}, // 19
-        {FF_FORMAT_ARG_TYPE_STRBUF, &result.secondPretty} // 20
+        {FF_FORMAT_ARG_TYPE_STRING, result.secondPretty}, // 20
+        {FF_FORMAT_ARG_TYPE_STRING, result.offsetFromUtc}, // 21
+        {FF_FORMAT_ARG_TYPE_STRING, result.timezoneName}, // 22
     });
-
-    ffStrbufDestroy(&result.hour12Pretty);
-    ffStrbufDestroy(&result.hourPretty);
-    ffStrbufDestroy(&result.minutePretty);
-    ffStrbufDestroy(&result.monthName);
-    ffStrbufDestroy(&result.monthNameShort);
-    ffStrbufDestroy(&result.monthPretty);
-    ffStrbufDestroy(&result.secondPretty);
-    ffStrbufDestroy(&result.weekday);
-    ffStrbufDestroy(&result.weekdayShort);
 }
 
 void ffPrintDateTime(FFDateTimeOptions* options)
@@ -205,7 +177,9 @@
         "minute",
         "minute with leading zero",
         "second",
-        "second with leading zero"
+        "second with leading zero",
+        "offset from UTC in the ISO 8601 format",
+        "locale-dependent timezone name or abbreviation",
     });
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastfetch-2.7.0/src/util/platform/FFPlatform_unix.c 
new/fastfetch-2.7.1/src/util/platform/FFPlatform_unix.c
--- old/fastfetch-2.7.0/src/util/platform/FFPlatform_unix.c     2024-01-26 
04:06:32.000000000 +0100
+++ new/fastfetch-2.7.1/src/util/platform/FFPlatform_unix.c     2024-01-30 
12:25:55.000000000 +0100
@@ -17,17 +17,17 @@
 
 static void getExePath(FFPlatform* platform)
 {
-    FFstrbuf* const exePath = &platform->exePath;
-    ffStrbufEnsureFree(exePath, PATH_MAX);
+    char exePath[PATH_MAX + 1];
     #ifdef __linux__
-        ssize_t exePathLen = readlink("/proc/self/exe", exePath->chars, 
exePath->allocated - 1);
+        ssize_t exePathLen = readlink("/proc/self/exe", exePath, 
sizeof(exePath) - 1);
+        exePath[exePathLen] = '\0';
     #elif defined(__APPLE__)
-        int exePathLen = proc_pidpath((int) getpid(), exePath->chars, 
exePath->allocated);
+        int exePathLen = proc_pidpath((int) getpid(), exePath, 
sizeof(exePath));
     #elif defined(__FreeBSD__)
-        size_t exePathLen = exePath->allocated;
+        size_t exePathLen = sizeof(exePath);
         if(sysctl(
             (int[]){CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, (int) getpid()}, 
4,
-            exePath->chars, &exePathLen,
+            exePath, &exePathLen,
             NULL, 0
         ) < 0)
             exePathLen = 0;
@@ -35,7 +35,13 @@
             exePathLen--; // remove terminating NUL
     #endif
     if (exePathLen > 0)
-        exePath->length = (uint32_t) exePathLen;
+    {
+        ffStrbufEnsureFree(&platform->exePath, PATH_MAX);
+        if (realpath(platform->exePath.chars, exePath))
+            ffStrbufRecalculateLength(&platform->exePath);
+        else
+            ffStrbufSetNS(&platform->exePath, (uint32_t) exePathLen, exePath);
+    }
 }
 
 static void platformPathAddEnv(FFlist* dirs, const char* env)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/fastfetch-2.7.0/src/util/platform/FFPlatform_windows.c 
new/fastfetch-2.7.1/src/util/platform/FFPlatform_windows.c
--- old/fastfetch-2.7.0/src/util/platform/FFPlatform_windows.c  2024-01-26 
04:06:32.000000000 +0100
+++ new/fastfetch-2.7.1/src/util/platform/FFPlatform_windows.c  2024-01-30 
12:25:55.000000000 +0100
@@ -18,6 +18,14 @@
     DWORD exePathWLen = GetModuleFileNameW(NULL, exePathW, MAX_PATH);
     if (exePathWLen == 0 && exePathWLen >= MAX_PATH) return;
 
+    FF_AUTO_CLOSE_FD HANDLE hPath = CreateFileW(exePathW, GENERIC_READ, 
FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
+    if (hPath != INVALID_HANDLE_VALUE)
+    {
+        DWORD len = GetFinalPathNameByHandleW(hPath, exePathW, MAX_PATH, 
FILE_NAME_OPENED);
+        if (len > 0 && len < MAX_PATH)
+            exePathWLen = len;
+    }
+
     ffStrbufSetNWS(&platform->exePath, exePathWLen, exePathW);
     if (ffStrbufStartsWithS(&platform->exePath, "\\\\?\\"))
         ffStrbufSubstrAfter(&platform->exePath, 3);

Reply via email to