<pre style='margin:0'>
Herby Gillot (herbygillot) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/4496f35b8dd5171cdd604f61cdf9adb335588a50">https://github.com/macports/macports-ports/commit/4496f35b8dd5171cdd604f61cdf9adb335588a50</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 4496f35b8dd fastfetch: update to 2.29.0
</span>4496f35b8dd is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 4496f35b8dd5171cdd604f61cdf9adb335588a50
</span>Author: Sergey Fedorov <barracuda@macos-powerpc.org>
AuthorDate: Wed Nov 6 15:00:49 2024 +0800

<span style='display:block; white-space:pre;color:#404040;'>    fastfetch: update to 2.29.0
</span>---
 sysutils/fastfetch/Portfile                        |   61 +-
 .../0001-Support-hostinfo-for-PowerPC-Macs.patch   |    6 +-
 ...version.c-add-a-missing-macro-for-powerpc.patch |    8 +-
 .../files/0003-Support-PowerPC-CPU-detection.patch |   14 +-
 .../0004-gpu_apple.-fix-for-older-systems.patch    |   80 ++
 .../files/0004-gpu_apple.m-unbreak-for-10.11.patch |   43 -
 .../files/0005-opengl_apple.c-fix-for-10.7.patch   |   31 +
 ...atch => 0006-memory_apple-fix-for-32-bit.patch} |    6 +-
 .../files/0006-opengl_apple.c-fix-for-10.7.patch   |   34 -
 .../files/0007-sound_apple.c-fix-for-10.8.patch    |    6 +-
 ...brightness_apple.c-add-a-missing-include.patch} |    8 +-
 .../0008-gpu_apple.c-fix-for-old-systems.patch     |   34 -
 .../0009-camera_apple.m-unbreak-for-10.7.patch     |   28 -
 ...cros.patch => 0009-yyjson-PowerPC-macros.patch} |    6 +-
 ...-swap_fat_arch_64-does-not-exist-in-10.6.patch} |    6 +-
 ...k_bsd-no-support-for-creation-time-on-ppc.patch |   25 +
 ...011-os_apple.m-etc.-fix-syntax-for-plists.patch |  171 ----
 .../files/0012-Misc-fixes-for-legacy-systems.patch | 1002 ++++++++++++++++++++
 .../files/0012-osascript.m-fix-syntax.patch        |   41 -
 ...Tiger-specific-adjustments-to-CMakeLists.patch} |   28 +-
 ...013-disk_bsd-no-support-for-creation-time.patch |   36 -
 .../0015-monitor_apple.m-no-HDR-before-10.11.patch |   46 -
 .../files/0016-Fix-autorelease-pools.patch         |  269 ------
 .../files/0017-Fix-compatibility-with-10.4.patch   |  169 ----
 .../files/0018-Revert-some-breakages.patch         |  517 ----------
 .../0019-CMakeLists-adjust-for-legacy-macOS.patch  |  117 ---
 ...akeLists-do-not-use-Linux-ldflag-on-macOS.patch |   25 -
 27 files changed, 1212 insertions(+), 1605 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/Portfile b/sysutils/fastfetch/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index ce8c8c71baf..7adda8d1952 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/fastfetch/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/fastfetch/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8,7 +8,7 @@ PortGroup           legacysupport 1.1
</span> # clock_gettime
 legacysupport.newest_darwin_requires_legacy 15
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-github.setup        fastfetch-cli fastfetch 2.26.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup        fastfetch-cli fastfetch 2.29.0
</span> github.tarball_from archive
 revision            0
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -24,9 +24,9 @@ license             MIT
</span> maintainers         {gmail.com:herby.gillot @herbygillot} \
                     openmaintainer
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums           rmd160  2775411be3aa5d53a18dd55c3c1c61fd8337e348 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  4320d1c304df6880e8c944e6a36340d12a3340477be40b2ead42be308a7fcdaf \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    size    1120664
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  e6549efbe91eed77641468535bf3d5bbb86dc60d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  c3fcccf9502e41c76c30e89530820bf1c7719257e5624bfa5fa77e6627ecb602 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    1136647
</span> 
 set py_version      312
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -56,47 +56,44 @@ if {${os.platform} eq "darwin" \
</span> }
 
 if {${os.platform} eq "darwin" && ${os.major} < 11} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # As of now, it is intended to get updated,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # but since rebasing may be non-trivial,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # we keep a dedicated case for older OS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # to avoid potential breakages on every update.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    github.setup    fastfetch-cli fastfetch 2.25.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # 2.29.0 with the patches below is a noticeable improvement
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # over the earlier versions: display, cursor, opengl modules
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # now work; physicalmemory, wallpaper are not disabled.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Consider this version pegged for now. There are a few things
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # which do not yet work but look fixable, those may be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # addressed. It makes little sense however to keep updating
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # the app to every next version; added bells & whistles are
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # of no use for legacy systems, while the core functionality
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # remains the same. Rebasing patches requires a lot of work
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # due to unsettled API and the code changed for the sake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # of irrelevant for us systems.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    github.setup    fastfetch-cli fastfetch 2.29.0
</span>     revision        0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    checksums       rmd160  07bad93f79c5715f5487544d4c4b335147e82fc1 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  17ea39fd062d5bccc9c608e868f593a665d569646bc9b447111b3a608b648783 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    size    1110619
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    checksums       rmd160  e6549efbe91eed77641468535bf3d5bbb86dc60d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  c3fcccf9502e41c76c30e89530820bf1c7719257e5624bfa5fa77e6627ecb602 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    1136647
</span> 
     maintainers-append \
                     {@barracuda156 gmail.com:vital.had}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # Every update is tested on 10.6 for ppc.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # 2.21.0 has also been tested on 10.4–10.5.
</span> 
     # https://github.com/fastfetch-cli/fastfetch/issues/942
     # https://github.com/fastfetch-cli/fastfetch/issues/943
     # https://github.com/fastfetch-cli/fastfetch/issues/944
     # https://github.com/fastfetch-cli/fastfetch/issues/1148
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # TODO: make physicalmemory module actually display the info.
</span>     patchfiles-append \
                     0001-Support-hostinfo-for-PowerPC-Macs.patch \
                     0002-version.c-add-a-missing-macro-for-powerpc.patch \
                     0003-Support-PowerPC-CPU-detection.patch \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    0004-gpu_apple.m-unbreak-for-10.11.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    0005-memory_apple-fix-for-32-bit.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    0006-opengl_apple.c-fix-for-10.7.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    0004-gpu_apple.-fix-for-older-systems.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    0005-opengl_apple.c-fix-for-10.7.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    0006-memory_apple-fix-for-32-bit.patch \
</span>                     0007-sound_apple.c-fix-for-10.8.patch \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    0008-gpu_apple.c-fix-for-old-systems.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    0009-camera_apple.m-unbreak-for-10.7.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    0010-brightness_apple.c-add-a-missing-include.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    0011-os_apple.m-etc.-fix-syntax-for-plists.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    0012-osascript.m-fix-syntax.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    0013-disk_bsd-no-support-for-creation-time.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    0014-yyjson-PowerPC-macros.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    0015-monitor_apple.m-no-HDR-before-10.11.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    0016-Fix-autorelease-pools.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    0017-Fix-compatibility-with-10.4.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    0018-Revert-some-breakages.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    0019-CMakeLists-adjust-for-legacy-macOS.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    0020-swap_fat_arch_64-does-not-exist-in-10.6.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    0021-CMakeLists-do-not-use-Linux-ldflag-on-macOS.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    0008-brightness_apple.c-add-a-missing-include.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    0009-yyjson-PowerPC-macros.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    0010-swap_fat_arch_64-does-not-exist-in-10.6.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    0011-disk_bsd-no-support-for-creation-time-on-ppc.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    0012-Misc-fixes-for-legacy-systems.patch
</span> 
     # Leopard needs this at least due to physicaldisk_apple module,
     # which uses definitions from storage/IOStorageDeviceCharacteristics.h (IOKit framework);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -104,7 +101,7 @@ if {${os.platform} eq "darwin" && ${os.major} < 11} {
</span>     # that SDK version, or otherwise disable physicaldisk_apple (see the patch).
     if {${os.major} < 10} {
         patchfiles-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    0022-Tiger-specific-adjustments-to-CMakeLists.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    0013-Tiger-specific-adjustments-to-CMakeLists.patch
</span>     }
 
     # To make sure OpenCL is not accidentally enabled.
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/files/0001-Support-hostinfo-for-PowerPC-Macs.patch b/sysutils/fastfetch/files/0001-Support-hostinfo-for-PowerPC-Macs.patch
</span><span style='display:block; white-space:pre;color:#808080;'>index f33f45dc338..b43d6bf0b57 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/fastfetch/files/0001-Support-hostinfo-for-PowerPC-Macs.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/fastfetch/files/0001-Support-hostinfo-for-PowerPC-Macs.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,7 +1,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 4ebfcf685018f55d9cb611b65936d7cc0d4929b1 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 4a3927f8106869ead35d3091f2c06ce7b83df147 Mon Sep 17 00:00:00 2001
</span> From: Sergey Fedorov <vital.had@gmail.com>
 Date: Tue, 6 Aug 2024 01:28:18 +0800
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 01/21] Support hostinfo for PowerPC Macs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 01/12] Support hostinfo for PowerPC Macs
</span> 
 ---
  src/detection/host/host_apple.c | 54 +++++++++++++++++++++++++++++++++
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -73,5 +73,5 @@ index 61a14e64..efc15ab5 100644
</span>  }
  
 -- 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-2.46.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.47.0
</span> 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/files/0002-version.c-add-a-missing-macro-for-powerpc.patch b/sysutils/fastfetch/files/0002-version.c-add-a-missing-macro-for-powerpc.patch
</span><span style='display:block; white-space:pre;color:#808080;'>index 49639e71f7e..edc105c41b9 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/fastfetch/files/0002-version.c-add-a-missing-macro-for-powerpc.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/fastfetch/files/0002-version.c-add-a-missing-macro-for-powerpc.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,14 +1,14 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 4b421119737dfdc925baafce7b30433f9836010f Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From c625c69fd9acb52fe3a6816a7abcdeda26fe1ca9 Mon Sep 17 00:00:00 2001
</span> From: Sergey Fedorov <barracuda@macos-powerpc.org>
 Date: Tue, 6 Aug 2024 09:31:41 +0800
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 02/21] version.c: add a missing macro for powerpc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 02/12] version.c: add a missing macro for powerpc
</span> 
 ---
  src/detection/version/version.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/detection/version/version.c b/src/detection/version/version.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index fe87e2e7..9f4b238c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8b230eec..7c76d053 100644
</span> --- a/src/detection/version/version.c
 +++ b/src/detection/version/version.c
 @@ -10,7 +10,7 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -21,5 +21,5 @@ index fe87e2e7..9f4b238c 100644
</span>  #elif defined(__riscv__) || defined(__riscv)
      #define FF_ARCHITECTURE "riscv"
 -- 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-2.46.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.47.0
</span> 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/files/0003-Support-PowerPC-CPU-detection.patch b/sysutils/fastfetch/files/0003-Support-PowerPC-CPU-detection.patch
</span><span style='display:block; white-space:pre;color:#808080;'>index 58076d9b942..5508692c675 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/fastfetch/files/0003-Support-PowerPC-CPU-detection.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/fastfetch/files/0003-Support-PowerPC-CPU-detection.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,7 +1,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From cc435d56d1b507c949231ea4ce7dd367b5c99a8f Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From b29961a8a9bb7cb92afcb32ee044a5b5cf384049 Mon Sep 17 00:00:00 2001
</span> From: Sergey Fedorov <barracuda@macos-powerpc.org>
 Date: Thu, 12 Sep 2024 08:05:15 +0800
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 03/21] Support PowerPC CPU detection
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 03/12] Support PowerPC CPU detection
</span> 
 ---
  src/detection/cpu/cpu.c       | 11 +++++++++++
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10,7 +10,7 @@ Subject: [PATCH 03/21] Support PowerPC CPU detection
</span>  3 files changed, 23 insertions(+), 1 deletion(-)
 
 diff --git a/src/detection/cpu/cpu.c b/src/detection/cpu/cpu.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 298eb5bf..a664dad8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 774e747a..f4ea970d 100644
</span> --- a/src/detection/cpu/cpu.c
 +++ b/src/detection/cpu/cpu.c
 @@ -41,6 +41,17 @@ const char* ffCPUAppleCodeToName(uint32_t code)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -32,10 +32,10 @@ index 298eb5bf..a664dad8 100644
</span>  {
      // https://github.com/AsahiLinux/docs/wiki/Codenames
 diff --git a/src/detection/cpu/cpu.h b/src/detection/cpu/cpu.h
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 9ddc0030..2ebf1b23 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index eb5bd90f..8f5f6e86 100644
</span> --- a/src/detection/cpu/cpu.h
 +++ b/src/detection/cpu/cpu.h
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -30,6 +30,7 @@ typedef struct FFCPUResult
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -29,6 +29,7 @@ typedef struct FFCPUResult
</span>  
  const char* ffDetectCPU(const FFCPUOptions* options, FFCPUResult* cpu);
  const char* ffCPUAppleCodeToName(uint32_t code);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -44,7 +44,7 @@ index 9ddc0030..2ebf1b23 100644
</span>  
  #if defined(__x86_64__) || defined(__i386__)
 diff --git a/src/detection/cpu/cpu_apple.c b/src/detection/cpu/cpu_apple.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index efdad950..cd2cf8ce 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3c5f4594..02f56e4c 100644
</span> --- a/src/detection/cpu/cpu_apple.c
 +++ b/src/detection/cpu/cpu_apple.c
 @@ -100,13 +100,23 @@ static const char* detectCoreCount(FFCPUResult* cpu)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -73,5 +73,5 @@ index efdad950..cd2cf8ce 100644
</span>      if(cpu->coresPhysical == 1)
          cpu->coresPhysical = (uint16_t) ffSysctlGetInt("hw.physicalcpu", 1);
 -- 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-2.46.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.47.0
</span> 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/files/0004-gpu_apple.-fix-for-older-systems.patch b/sysutils/fastfetch/files/0004-gpu_apple.-fix-for-older-systems.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..4964e4dce32
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/fastfetch/files/0004-gpu_apple.-fix-for-older-systems.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,80 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 559b7d6438486c9a9f13c5a96a3d17c9c4b536ee Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Sergey Fedorov <barracuda@macos-powerpc.org>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 4 Aug 2024 00:54:02 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 04/12] gpu_apple.*: fix for older systems
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/detection/gpu/gpu_apple.c | 3 +++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/detection/gpu/gpu_apple.m | 7 +++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2 files changed, 10 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/detection/gpu/gpu_apple.c b/src/detection/gpu/gpu_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 16f9f9c0..d73383d8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/detection/gpu/gpu_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/detection/gpu/gpu_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4,6 +4,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "util/apple/cf_helpers.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "util/apple/smc_temps.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <IOKit/graphics/IOGraphicsLib.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char* ffGpuDetectMetal(FFlist* gpus);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -99,7 +100,9 @@ const char* ffDetectGPUImpl(const FFGPUOptions* options, FFlist* gpus)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         gpu->dedicated.total = gpu->dedicated.used = gpu->shared.total = gpu->shared.used = FF_GPU_VMEM_SIZE_UNSET;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         gpu->type = FF_GPU_TYPE_UNKNOWN;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         gpu->frequency = FF_GPU_FREQUENCY_UNSET;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060 && !defined(__ppc__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         IORegistryEntryGetRegistryEntryID(registryEntry, &gpu->deviceId);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         ffStrbufInitStatic(&gpu->platformApi, "Metal");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         ffStrbufInit(&gpu->driver); // Ok for both Apple and Intel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/detection/gpu/gpu_apple.m b/src/detection/gpu/gpu_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 95e4c305..2112005d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/detection/gpu/gpu_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/detection/gpu/gpu_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "gpu.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED >= 101100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #import <Metal/MTLDevice.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #import <IOKit/kext/KextManager.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10,9 +12,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #define MTLFeatureSet_macOS_GPUFamily1_v4 ((MTLFeatureSet) 10004)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #define MTLFeatureSet_macOS_GPUFamily2_v1 ((MTLFeatureSet) 10005)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char* ffGpuDetectDriverVersion(FFlist* gpus)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1070
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (@available(macOS 10.7, *))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         NSMutableArray* arr = NSMutableArray.new;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -30,11 +34,13 @@ const char* ffGpuDetectDriverVersion(FFlist* gpus)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return "Unsupported macOS version";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char* ffGpuDetectMetal(FFlist* gpus)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED >= 101000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (@available(macOS 10.13, *))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         for (id<MTLDevice> device in MTLCopyAllDevices())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -71,5 +77,6 @@ const char* ffGpuDetectMetal(FFlist* gpus)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return "Metal API is not supported by this macOS version";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.47.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/files/0004-gpu_apple.m-unbreak-for-10.11.patch b/sysutils/fastfetch/files/0004-gpu_apple.m-unbreak-for-10.11.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 1e007a993b0..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/fastfetch/files/0004-gpu_apple.m-unbreak-for-10.11.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,43 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 83b36221b2544ff01c2b94839279b715cb1bfe9e Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Sergey Fedorov <barracuda@macos-powerpc.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Sun, 4 Aug 2024 00:54:02 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 04/21] gpu_apple.m: unbreak for < 10.11
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/detection/gpu/gpu_apple.m | 5 +++++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 5 insertions(+)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/detection/gpu/gpu_apple.m b/src/detection/gpu/gpu_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index e5b6bebf..314f83a3 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/detection/gpu/gpu_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/detection/gpu/gpu_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,5 +1,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "gpu.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if MAC_OS_X_VERSION_MIN_REQUIRED >= 101100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #import <Metal/MTLDevice.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifndef MAC_OS_VERSION_13_0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -9,9 +11,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     #define MTLFeatureSet_macOS_GPUFamily1_v4 ((MTLFeatureSet) 10004)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     #define MTLFeatureSet_macOS_GPUFamily2_v1 ((MTLFeatureSet) 10005)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const char* ffGpuDetectMetal(FFlist* gpus)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if MAC_OS_X_VERSION_MIN_REQUIRED >= 101000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (@available(macOS 10.13, *))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         for (id<MTLDevice> device in MTLCopyAllDevices())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -47,5 +51,6 @@ const char* ffGpuDetectMetal(FFlist* gpus)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         return NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return "Metal API is not supported by this macOS version";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-2.46.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/files/0005-opengl_apple.c-fix-for-10.7.patch b/sysutils/fastfetch/files/0005-opengl_apple.c-fix-for-10.7.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..e82c37e0d29
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/fastfetch/files/0005-opengl_apple.c-fix-for-10.7.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,31 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 2ef87e5f351f1558dabfd39d1823c234cf6547dc Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Sergey Fedorov <barracuda@macos-powerpc.org>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 4 Aug 2024 01:01:30 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 05/12] opengl_apple.c: fix for < 10.7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/detection/opengl/opengl_apple.c | 4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 2 insertions(+), 2 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/detection/opengl/opengl_apple.c b/src/detection/opengl/opengl_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 63751d6b..79996a63 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/detection/opengl/opengl_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/detection/opengl/opengl_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,4 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "fastfetch.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "opengl.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -38,7 +38,7 @@ const char* cglDetectOpenGL(FFOpenGLResult* result)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CGLPixelFormatObj pixelFormat;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CGLPixelFormatAttribute attrs[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        kCGLPFAOpenGLProfile, (CGLPixelFormatAttribute) kCGLOGLPVersion_3_2_Core,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        kCGLPFADoubleBuffer,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         kCGLPFAAccelerated,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.47.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/files/0005-memory_apple-fix-for-32-bit.patch b/sysutils/fastfetch/files/0006-memory_apple-fix-for-32-bit.patch
</span>similarity index 93%
rename from sysutils/fastfetch/files/0005-memory_apple-fix-for-32-bit.patch
rename to sysutils/fastfetch/files/0006-memory_apple-fix-for-32-bit.patch
<span style='display:block; white-space:pre;color:#808080;'>index f8c1220699a..bbaeb851621 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/fastfetch/files/0005-memory_apple-fix-for-32-bit.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/fastfetch/files/0006-memory_apple-fix-for-32-bit.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,7 +1,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 368dfe132a4ac8862e6f305787e842d36c1476a7 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 5c532c00e87135cab34c7a52339f12893b428148 Mon Sep 17 00:00:00 2001
</span> From: Sergey Fedorov <barracuda@macos-powerpc.org>
 Date: Sun, 4 Aug 2024 00:58:05 +0800
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 05/21] memory_apple: fix for 32-bit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 06/12] memory_apple: fix for 32-bit
</span> 
 ---
  src/detection/memory/memory_apple.c | 10 ++++++++++
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -50,5 +50,5 @@ index cabdab26..cdfdee12 100644
</span>  
      return NULL;
 -- 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-2.46.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.47.0
</span> 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/files/0006-opengl_apple.c-fix-for-10.7.patch b/sysutils/fastfetch/files/0006-opengl_apple.c-fix-for-10.7.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 40d5e9d65b6..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/fastfetch/files/0006-opengl_apple.c-fix-for-10.7.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,34 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 5b22c42f1200b046f981664c1f0fa2c6ef98b3ca Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Sergey Fedorov <barracuda@macos-powerpc.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Sun, 4 Aug 2024 01:01:30 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 06/21] opengl_apple.c: fix for < 10.7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/detection/opengl/opengl_apple.c | 7 ++++++-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 6 insertions(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/detection/opengl/opengl_apple.c b/src/detection/opengl/opengl_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 63751d6b..1d1944a5 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/detection/opengl/opengl_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/detection/opengl/opengl_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,4 +1,4 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "fastfetch.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "opengl.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -6,6 +6,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <OpenGL/gl.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <OpenGL/OpenGL.h> // This brings in CGL, not GL
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if MAC_OS_X_VERSION_MIN_REQUIRED < 1070
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define kCGLPFAOpenGLProfile 99
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define kCGLOGLPVersion_3_2_Core 0x3200
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void ffOpenGLHandleResult(FFOpenGLResult* result, __typeof__(&glGetString) ffglGetString);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static const char* cglHandleContext(FFOpenGLResult* result, CGLContextObj context)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-2.46.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/files/0007-sound_apple.c-fix-for-10.8.patch b/sysutils/fastfetch/files/0007-sound_apple.c-fix-for-10.8.patch
</span><span style='display:block; white-space:pre;color:#808080;'>index 4d2ddec7a23..2180fc583ed 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/fastfetch/files/0007-sound_apple.c-fix-for-10.8.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/fastfetch/files/0007-sound_apple.c-fix-for-10.8.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,7 +1,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From edeecd642157ba9cd7389d3602fc2bf9273f1cf9 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 4681906f2674f9f933712cf4fd4877a87c1ca5f4 Mon Sep 17 00:00:00 2001
</span> From: Sergey Fedorov <barracuda@macos-powerpc.org>
 Date: Sun, 4 Aug 2024 01:03:05 +0800
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 07/21] sound_apple.c: fix for < 10.8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 07/12] sound_apple.c: fix for < 10.8
</span> 
 ---
  src/detection/sound/sound_apple.c | 5 +++++
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -24,5 +24,5 @@ index 22ecec2a..10646206 100644
</span>  #define kAudioObjectPropertyElementMain kAudioObjectPropertyElementMaster
  #endif
 -- 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-2.46.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.47.0
</span> 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/files/0010-brightness_apple.c-add-a-missing-include.patch b/sysutils/fastfetch/files/0008-brightness_apple.c-add-a-missing-include.patch
</span>similarity index 87%
rename from sysutils/fastfetch/files/0010-brightness_apple.c-add-a-missing-include.patch
rename to sysutils/fastfetch/files/0008-brightness_apple.c-add-a-missing-include.patch
<span style='display:block; white-space:pre;color:#808080;'>index 129087cda25..41ab78bd5ba 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/fastfetch/files/0010-brightness_apple.c-add-a-missing-include.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/fastfetch/files/0008-brightness_apple.c-add-a-missing-include.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,14 +1,14 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 1b953f14a52c03f1e3408800e77c2c9c28444222 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 0146c90392b24648b0bda55bfbad1bf198bd2bf7 Mon Sep 17 00:00:00 2001
</span> From: Sergey Fedorov <barracuda@macos-powerpc.org>
 Date: Sun, 4 Aug 2024 01:24:23 +0800
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 10/21] brightness_apple.c: add a missing include
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 08/12] brightness_apple.c: add a missing include
</span> 
 ---
  src/detection/brightness/brightness_apple.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/src/detection/brightness/brightness_apple.c b/src/detection/brightness/brightness_apple.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index a9f8daf0..688e1f1a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e10d912b..a00579b3 100644
</span> --- a/src/detection/brightness/brightness_apple.c
 +++ b/src/detection/brightness/brightness_apple.c
 @@ -14,10 +14,11 @@ extern IOReturn IOAVServiceCopyEDID(IOAVServiceRef service, CFDataRef* x2) __att
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -25,5 +25,5 @@ index a9f8daf0..688e1f1a 100644
</span>  #endif
  
 -- 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-2.46.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.47.0
</span> 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/files/0008-gpu_apple.c-fix-for-old-systems.patch b/sysutils/fastfetch/files/0008-gpu_apple.c-fix-for-old-systems.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index c5cbd36ae8e..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/fastfetch/files/0008-gpu_apple.c-fix-for-old-systems.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,34 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From a75cddf02089f68e77e6ccad6f77d7704b06eb79 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Sergey Fedorov <barracuda@macos-powerpc.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Sun, 4 Aug 2024 01:09:46 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 08/21] gpu_apple.c: fix for old systems
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/detection/gpu/gpu_apple.c | 3 +++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 3 insertions(+)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/detection/gpu/gpu_apple.c b/src/detection/gpu/gpu_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 1190a636..b6fb2721 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/detection/gpu/gpu_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/detection/gpu/gpu_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -4,6 +4,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "detection/temps/temps_apple.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "util/apple/cf_helpers.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <IOKit/graphics/IOGraphicsLib.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const char* ffGpuDetectMetal(FFlist* gpus);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -98,7 +99,9 @@ const char* ffDetectGPUImpl(const FFGPUOptions* options, FFlist* gpus)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         gpu->dedicated.total = gpu->dedicated.used = gpu->shared.total = gpu->shared.used = FF_GPU_VMEM_SIZE_UNSET;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         gpu->type = FF_GPU_TYPE_UNKNOWN;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         gpu->frequency = FF_GPU_FREQUENCY_UNSET;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060 && !defined(__ppc__)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         IORegistryEntryGetRegistryEntryID(registryEntry, &gpu->deviceId);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         ffStrbufInitStatic(&gpu->platformApi, "Metal");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         ffStrbufInit(&gpu->driver); // Ok for both Apple and Intel
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-2.46.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/files/0009-camera_apple.m-unbreak-for-10.7.patch b/sysutils/fastfetch/files/0009-camera_apple.m-unbreak-for-10.7.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index d1fef6bece5..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/fastfetch/files/0009-camera_apple.m-unbreak-for-10.7.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,28 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From fd63f0979048b7543f216475f36a7af658057c05 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Sergey Fedorov <barracuda@macos-powerpc.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Sun, 4 Aug 2024 01:11:58 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 09/21] camera_apple.m: unbreak for < 10.7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/detection/camera/camera_apple.m | 4 ++++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 4 insertions(+)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/detection/camera/camera_apple.m b/src/detection/camera/camera_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index ab15fb99..d30c4259 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/detection/camera/camera_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/detection/camera/camera_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,7 +1,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "camera.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "common/io/io.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1070
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #import <AVFoundation/AVCaptureDevice.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- // warning: 'AVCaptureDeviceTypeExternalUnknown' is deprecated
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-2.46.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/files/0014-yyjson-PowerPC-macros.patch b/sysutils/fastfetch/files/0009-yyjson-PowerPC-macros.patch
</span>similarity index 87%
rename from sysutils/fastfetch/files/0014-yyjson-PowerPC-macros.patch
rename to sysutils/fastfetch/files/0009-yyjson-PowerPC-macros.patch
<span style='display:block; white-space:pre;color:#808080;'>index d94de059e22..e023197adc7 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/fastfetch/files/0014-yyjson-PowerPC-macros.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/fastfetch/files/0009-yyjson-PowerPC-macros.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,7 +1,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 7baf71981bcdfef363283e8de1fbed98818c4877 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 717eaa789c1e102c6c73463e5dafdc9957b01b11 Mon Sep 17 00:00:00 2001
</span> From: Sergey Fedorov <barracuda@macos-powerpc.org>
 Date: Thu, 15 Aug 2024 22:15:15 +0800
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 14/21] yyjson: PowerPC macros
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 09/12] yyjson: PowerPC macros
</span> 
 ---
  src/3rdparty/yyjson/yyjson.c | 2 +-
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -21,5 +21,5 @@ index 16ecbacf..298a56c0 100644
</span>  
  #else
 -- 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-2.46.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.47.0
</span> 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/files/0020-swap_fat_arch_64-does-not-exist-in-10.6.patch b/sysutils/fastfetch/files/0010-swap_fat_arch_64-does-not-exist-in-10.6.patch
</span>similarity index 87%
rename from sysutils/fastfetch/files/0020-swap_fat_arch_64-does-not-exist-in-10.6.patch
rename to sysutils/fastfetch/files/0010-swap_fat_arch_64-does-not-exist-in-10.6.patch
<span style='display:block; white-space:pre;color:#808080;'>index 27718d12f91..8670e146580 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/fastfetch/files/0020-swap_fat_arch_64-does-not-exist-in-10.6.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/fastfetch/files/0010-swap_fat_arch_64-does-not-exist-in-10.6.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,7 +1,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From c8c6959a0143624772b2837e7b1de54f039e5dba Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 867ad54383025b919844d29390320d38dca01625 Mon Sep 17 00:00:00 2001
</span> From: Sergey Fedorov <barracuda@macos-powerpc.org>
 Date: Tue, 27 Aug 2024 16:40:51 +0800
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 20/21] swap_fat_arch_64 does not exist in 10.6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 10/12] swap_fat_arch_64 does not exist in 10.6
</span> 
 ---
  src/util/binary_apple.c | 5 ++---
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -28,5 +28,5 @@ index 6efeb5d5..c3fa3328 100644
</span>          }
  
 -- 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-2.46.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.47.0
</span> 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/files/0011-disk_bsd-no-support-for-creation-time-on-ppc.patch b/sysutils/fastfetch/files/0011-disk_bsd-no-support-for-creation-time-on-ppc.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..3483f8a242b
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/fastfetch/files/0011-disk_bsd-no-support-for-creation-time-on-ppc.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,25 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From f29bacfee1f04ddac773091e7fa05bb2b733ccd4 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Sergey Fedorov <barracuda@macos-powerpc.org>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 5 Nov 2024 22:33:08 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 11/12] disk_bsd: no support for creation time on ppc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/detection/disk/disk_bsd.c | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 1 insertion(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/detection/disk/disk_bsd.c b/src/detection/disk/disk_bsd.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 957314f1..ad7c4404 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/detection/disk/disk_bsd.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/detection/disk/disk_bsd.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -175,7 +175,7 @@ const char* ffDetectDisksImpl(FFDiskOptions* options, FFlist* disks)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         #ifdef __OpenBSD__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         #define st_birthtimespec __st_birthtim
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        #ifndef __DragonFly__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        #if !defined(__DragonFly__) && !(defined(__APPLE__) && defined(__ppc__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         struct stat st;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if(stat(fs->f_mntonname, &st) == 0 && st.st_birthtimespec.tv_sec > 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             disk->createTime = (uint64_t)((st.st_birthtimespec.tv_sec * 1000) + (st.st_birthtimespec.tv_nsec / 1000000));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.47.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/files/0011-os_apple.m-etc.-fix-syntax-for-plists.patch b/sysutils/fastfetch/files/0011-os_apple.m-etc.-fix-syntax-for-plists.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 74669340330..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/fastfetch/files/0011-os_apple.m-etc.-fix-syntax-for-plists.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,171 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From bbdadcca8732bb57749ffda998ab2e22e7fb8035 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Sergey Fedorov <barracuda@macos-powerpc.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Sun, 4 Aug 2024 01:39:51 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 11/21] os_apple.m etc.: fix syntax for plists
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CMakeLists.txt                                |  2 +-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/detection/cursor/cursor_apple.m           | 10 +------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/detection/os/os_apple.m                   | 22 ++++++---------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- .../terminalfont/terminalfont_apple.m         | 28 ++++---------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/detection/wmtheme/wmtheme_apple.m         | 10 +------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 5 files changed, 18 insertions(+), 54 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/CMakeLists.txt b/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 7efcfde8..48b09289 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -647,7 +647,7 @@ elseif(APPLE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/cpu/cpu_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/cpucache/cpucache_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/cpuusage/cpuusage_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        src/detection/cursor/cursor_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        src/detection/cursor/cursor_nosupport.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/disk/disk_bsd.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/dns/dns_linux.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/physicaldisk/physicaldisk_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/detection/cursor/cursor_apple.m b/src/detection/cursor/cursor_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 40d4b90c..c71c440a 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/detection/cursor/cursor_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/detection/cursor/cursor_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -19,15 +19,7 @@ static void appendColor(FFstrbuf* str, NSDictionary* color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void ffDetectCursor(FFCursorResult* result)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    NSError* error;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    NSString* fileName = [NSString stringWithFormat:@"file://%s/Library/Preferences/com.apple.universalaccess.plist", instance.state.platform.homeDir.chars];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    NSDictionary* dict = [NSDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:fileName]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                                       error:&error];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    if(error)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        ffStrbufAppendS(&result->error, error.localizedDescription.UTF8String);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    NSDictionary* dict = [NSDictionary dictionaryWithContentsOfFile:[NSHomeDirectory() stringByAppendingPathComponent:@"/Library/Preferences/com.apple.universalaccess.plist"]];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     NSDictionary* color;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/detection/os/os_apple.m b/src/detection/os/os_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 5a8ef621..dc606c92 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/detection/os/os_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/detection/os/os_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -6,25 +6,21 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <stdlib.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <string.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#import <Foundation/Foundation.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <Foundation/Foundation.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void parseSystemVersion(FFOSResult* os)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    NSError* error;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    NSString* fileName = @"file:///System/Library/CoreServices/SystemVersion.plist";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    NSDictionary* dict = [NSDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:fileName]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                                       error:&error];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    if(error)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    NSDictionary* dict = [NSDictionary dictionaryWithContentsOfFile:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        @"/System/Library/CoreServices/SystemVersion.plist"];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     NSString* value;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    if((value = [dict valueForKey:@"ProductName"]))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        ffStrbufInitS(&os->name, value.UTF8String);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    if((value = [dict valueForKey:@"ProductUserVisibleVersion"]))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        ffStrbufInitS(&os->version, value.UTF8String);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    if((value = [dict valueForKey:@"ProductBuildVersion"]))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        ffStrbufInitS(&os->buildID, value.UTF8String);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if ((value = [dict objectForKey:@"ProductName"]))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        ffStrbufInitS(&os->name, [value UTF8String]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if ((value = [dict objectForKey:@"ProductUserVisibleVersion"]))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        ffStrbufInitS(&os->version, [value UTF8String]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if ((value = [dict objectForKey:@"ProductBuildVersion"]))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        ffStrbufInitS(&os->buildID, [value UTF8String]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static bool detectOSCodeName(FFOSResult* os)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/detection/terminalfont/terminalfont_apple.m b/src/detection/terminalfont/terminalfont_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 7d6aca28..96917199 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/detection/terminalfont/terminalfont_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/detection/terminalfont/terminalfont_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -16,19 +16,11 @@ static void detectIterm2(FFTerminalFontResult* terminalFont)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    NSError* error;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    NSString* fileName = [NSString stringWithFormat:@"file://%s/Library/Preferences/com.googlecode.iterm2.plist", instance.state.platform.homeDir.chars];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    NSDictionary* dict = [NSDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:fileName]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                                       error:&error];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    if(error)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        ffStrbufAppendS(&terminalFont->error, error.localizedDescription.UTF8String);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    NSDictionary* dict = [NSDictionary dictionaryWithContentsOfFile:[NSHomeDirectory() stringByAppendingPathComponent:@"/Library/Preferences/com.googlecode.iterm2.plist"]];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     for(NSDictionary* bookmark in [dict valueForKey:@"New Bookmarks"])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        if(![[bookmark valueForKey:@"Name"] isEqualToString:@(profile)])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if(![[bookmark valueForKey:@"Name"] isEqualToString:[NSString stringWithUTF8String:profile]])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             continue;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         NSString* normalFont = [bookmark valueForKey:@"Normal Font"];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -37,14 +29,14 @@ static void detectIterm2(FFTerminalFontResult* terminalFont)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             ffStrbufAppendF(&terminalFont->error, "`Normal Font` key in profile `%s` doesn't exist", profile);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        ffFontInitWithSpace(&terminalFont->font, normalFont.UTF8String);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        ffFontInitWithSpace(&terminalFont->font, [normalFont UTF8String]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         NSNumber* useNonAsciiFont = [bookmark valueForKey:@"Use Non-ASCII Font"];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        if(useNonAsciiFont.boolValue)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if([useNonAsciiFont boolValue])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             NSString* nonAsciiFont = [bookmark valueForKey:@"Non Ascii Font"];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             if (nonAsciiFont)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                ffFontInitWithSpace(&terminalFont->fallback, nonAsciiFont.UTF8String);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                ffFontInitWithSpace(&terminalFont->fallback, [nonAsciiFont UTF8String]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -68,15 +60,7 @@ static void detectAppleTerminal(FFTerminalFontResult* terminalFont)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void detectWarpTerminal(FFTerminalFontResult* terminalFont)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    NSError* error;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    NSString* fileName = [NSString stringWithFormat:@"file://%s/Library/Preferences/dev.warp.Warp-Stable.plist", instance.state.platform.homeDir.chars];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    NSDictionary* dict = [NSDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:fileName]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                                       error:&error];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    if(error)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        ffStrbufAppendS(&terminalFont->error, error.localizedDescription.UTF8String);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    NSDictionary* dict = [NSDictionary dictionaryWithContentsOfFile:[NSHomeDirectory() stringByAppendingPathComponent:@"/Library/Preferences/dev.warp.Warp-Stable.plist"]];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     NSString* fontName = [dict valueForKey:@"FontName"];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if(!fontName)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/detection/wmtheme/wmtheme_apple.m b/src/detection/wmtheme/wmtheme_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 08810b6c..b78acac0 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/detection/wmtheme/wmtheme_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/detection/wmtheme/wmtheme_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -5,15 +5,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- bool ffDetectWmTheme(FFstrbuf* themeOrError)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    NSError* error;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    NSString* fileName = [NSString stringWithFormat:@"file://%s/Library/Preferences/.GlobalPreferences.plist", instance.state.platform.homeDir.chars];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    NSDictionary* dict = [NSDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:fileName]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                                       error:&error];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    if(error)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        ffStrbufAppendS(themeOrError, error.localizedDescription.UTF8String);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        return false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    NSDictionary* dict = [NSDictionary dictionaryWithContentsOfFile:[NSHomeDirectory() stringByAppendingPathComponent:@"/Library/Preferences/.GlobalPreferences.plist"]];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     NSNumber* wmThemeColor = [dict valueForKey:@"AppleAccentColor"];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if(!wmThemeColor)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-2.46.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/files/0012-Misc-fixes-for-legacy-systems.patch b/sysutils/fastfetch/files/0012-Misc-fixes-for-legacy-systems.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..3a0b1d0eace
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/fastfetch/files/0012-Misc-fixes-for-legacy-systems.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,1002 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 78f5a91f370dd0eea6d6ef4ff9cb902c23e6d96f Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Sergey Fedorov <barracuda@macos-powerpc.org>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Mon, 4 Nov 2024 08:31:15 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 12/12] Misc fixes for legacy systems
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CMakeLists.txt                                | 32 ++++------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/common/processing_linux.c                 |  7 ++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/detection/bluetooth/bluetooth_apple.m     | 13 +++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/detection/camera/camera_apple.m           |  4 ++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/detection/cursor/cursor_apple.m           | 36 ++++++-----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/detection/displayserver/displayserver.c   | 22 +++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/detection/displayserver/displayserver.h   | 11 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../displayserver/displayserver_apple.c       | 63 ++++++++++++++++++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/detection/font/font_apple.m               | 13 +++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/detection/host/host_apple.c               |  4 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/detection/memory/memory_apple.c           |  2 +
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/detection/os/os_apple.m                   | 34 ++++++----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../physicalmemory/physicalmemory_apple.m     | 57 +++++++++++------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../terminalfont/terminalfont_apple.m         | 45 +++++--------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/detection/wallpaper/wallpaper_apple.m     | 16 +++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/detection/wmtheme/wmtheme_apple.m         | 28 +++++----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/util/apple/osascript.h                    | 10 +++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/util/apple/osascript.m                    | 16 ++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/util/kmod.c                               |  9 +++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/util/platform/FFPlatform_unix.c           |  5 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 20 files changed, 297 insertions(+), 130 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/CMakeLists.txt b/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cc33bf5b..09ae13a5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -132,10 +132,10 @@ else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     message(STATUS "Threads type: disabled")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-set(WARNING_FLAGS "-Wall -Wextra -Wconversion -Werror=uninitialized -Werror=return-type")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(WARNING_FLAGS "-Wall -Wextra -Wconversion -Wno-error=uninitialized -Werror=return-type")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(CMAKE_C_STANDARD 11)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARNING_FLAGS} -Werror=incompatible-pointer-types -Werror=implicit-function-declaration -Werror=int-conversion")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARNING_FLAGS} -Wno-error=incompatible-pointer-types -Wno-error=implicit-function-declaration -Wno-error=int-conversion")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(WIN32 OR ENABLE_DIRECTX_HEADERS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     enable_language(CXX)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -156,7 +156,7 @@ if(ENABLE_ASAN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${FASTFETCH_FLAGS_DEBUG}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${FASTFETCH_FLAGS_DEBUG} -fstack-protector-all -fno-delete-null-pointer-checks")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if(NOT WIN32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(NOT WIN32 AND NOT APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -rdynamic")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -842,11 +842,11 @@ elseif(APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/common/sysctl.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/battery/battery_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/bios/bios_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        src/detection/bluetooth/bluetooth_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        src/detection/bluetoothradio/bluetoothradio_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        src/detection/bluetooth/bluetooth_nosupport.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        src/detection/bluetoothradio/bluetoothradio_nosupport.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/board/board_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/bootmgr/bootmgr_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        src/detection/brightness/brightness_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        src/detection/brightness/brightness_nosupport.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/btrfs/btrfs_nosupport.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/chassis/chassis_nosupport.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/cpu/cpu_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -871,15 +871,15 @@ elseif(APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/libc/libc_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/locale/locale_linux.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/localip/localip_linux.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        src/detection/gamepad/gamepad_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        src/detection/media/media_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        src/detection/gamepad/gamepad_nosupport.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        src/detection/media/media_nosupport.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/memory/memory_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/mouse/mouse_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/netio/netio_bsd.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/opengl/opengl_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/os/os_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/packages/packages_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        src/detection/poweradapter/poweradapter_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        src/detection/poweradapter/poweradapter_nosupport.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/processes/processes_bsd.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/sound/sound_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/swap/swap_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -891,7 +891,7 @@ elseif(APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/uptime/uptime_bsd.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/users/users_linux.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/wallpaper/wallpaper_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        src/detection/wifi/wifi_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        src/detection/wifi/wifi_nosupport.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/wm/wm_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/de/de_nosupport.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/wmtheme/wmtheme_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1389,25 +1389,17 @@ if(LINUX)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ elseif(APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     target_link_libraries(libfastfetch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        PRIVATE "-framework AVFoundation"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         PRIVATE "-framework Cocoa"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         PRIVATE "-framework CoreFoundation"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         PRIVATE "-framework CoreAudio"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         PRIVATE "-framework CoreMedia"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         PRIVATE "-framework CoreVideo"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        PRIVATE "-framework CoreWLAN"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         PRIVATE "-framework IOBluetooth"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         PRIVATE "-framework IOKit"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        PRIVATE "-framework Metal"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         PRIVATE "-framework OpenGL"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        PRIVATE "-framework OpenCL"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         PRIVATE "-framework SystemConfiguration"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        PRIVATE "-weak_framework CoreDisplay"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        PRIVATE "-F /System/Library/PrivateFrameworks"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        PRIVATE "-weak_framework DisplayServices"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        PRIVATE "-weak_framework MediaRemote"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        PRIVATE "-weak_framework Apple80211"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        PRIVATE "-framework DisplayServices"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        PRIVATE "-F/System/Library/PrivateFrameworks"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ elseif(WIN32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     target_link_libraries(libfastfetch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/common/processing_linux.c b/src/common/processing_linux.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fb5db626..1da27d10 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/common/processing_linux.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/common/processing_linux.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19,7 +19,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #include <sys/sysctl.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    #include <libproc.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        #include <libproc.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(__sun)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #include <procfs.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(__OpenBSD__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -193,6 +196,7 @@ void ffProcessGetInfoLinux(pid_t pid, FFstrbuf* processName, FFstrbuf* exe, cons
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             ffStrbufSetS(exe, arg0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050 // No proc_pidpath on 10.4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         ffStrbufEnsureFixedLengthFree(exe, PATH_MAX);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -205,6 +209,7 @@ void ffProcessGetInfoLinux(pid_t pid, FFstrbuf* processName, FFstrbuf* exe, cons
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #elif defined(__FreeBSD__) || defined(__NetBSD__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     size_t size = ARG_MAX;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/detection/bluetooth/bluetooth_apple.m b/src/detection/bluetooth/bluetooth_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index abd31a0c..d5e83094 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/detection/bluetooth/bluetooth_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/detection/bluetooth/bluetooth_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2,8 +2,19 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #import <IOBluetooth/IOBluetooth.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED < 1090
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLSTART NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLEND   [pool release];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLSTART
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLEND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char* ffDetectBluetooth(FFlist* devices /* FFBluetoothResult */)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    POOLSTART
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     NSArray<IOBluetoothDevice*>* ioDevices = IOBluetoothDevice.pairedDevices;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if(!ioDevices)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return "IOBluetoothDevice.pairedDevices failed";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -87,6 +98,6 @@ const char* ffDetectBluetooth(FFlist* devices /* FFBluetoothResult */)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             ffStrbufTrimRight(&device->type, ',');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    POOLEND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/detection/camera/camera_apple.m b/src/detection/camera/camera_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ab15fb99..d30c4259 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/detection/camera/camera_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/detection/camera/camera_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,7 +1,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "camera.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "common/io/io.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1070
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #import <AVFoundation/AVCaptureDevice.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // warning: 'AVCaptureDeviceTypeExternalUnknown' is deprecated
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/detection/cursor/cursor_apple.m b/src/detection/cursor/cursor_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 29187e11..c0cbbd1f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/detection/cursor/cursor_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/detection/cursor/cursor_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2,12 +2,22 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #import <Foundation/Foundation.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED < 1090
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLSTART NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLEND   [pool release];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLSTART
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLEND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void appendColor(FFstrbuf* str, NSDictionary* color)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    int r = (int) (((NSNumber*) color[@"red"]).doubleValue * 255);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    int g = (int) (((NSNumber*) color[@"green"]).doubleValue * 255);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    int b = (int) (((NSNumber*) color[@"blue"]).doubleValue * 255);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    int a = (int) (((NSNumber*) color[@"alpha"]).doubleValue * 255);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    int r = (int) (((NSNumber*) [color valueForKey:@"red"]).doubleValue * 255);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    int g = (int) (((NSNumber*) [color valueForKey:@"green"]).doubleValue * 255);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    int b = (int) (((NSNumber*) [color valueForKey:@"blue"]).doubleValue * 255);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    int a = (int) (((NSNumber*) [color valueForKey:@"alpha"]).doubleValue * 255);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (r == 255 && g == 255 && b == 255 && a == 255)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         ffStrbufAppendS(str, "White");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19,34 +29,28 @@ static void appendColor(FFstrbuf* str, NSDictionary* color)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void ffDetectCursor(FFCursorResult* result)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NSError* error;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NSString* fileName = [NSString stringWithFormat:@"file://%s/Library/Preferences/com.apple.universalaccess.plist", instance.state.platform.homeDir.chars];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NSDictionary* dict = [NSDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:fileName]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                       error:&error];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if(error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        ffStrbufAppendS(&result->error, error.localizedDescription.UTF8String);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    POOLSTART
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    NSDictionary* dict = [NSDictionary dictionaryWithContentsOfFile:[NSHomeDirectory() stringByAppendingPathComponent:@"/Library/Preferences/com.apple.universalaccess.plist"]];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     NSDictionary* color;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ffStrbufAppendS(&result->theme, "Fill - ");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if ((color = dict[@"cursorFill"]))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if ((color = [dict valueForKey:@"cursorFill"]))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         appendColor(&result->theme, color);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         ffStrbufAppendS(&result->theme, "Black");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ffStrbufAppendS(&result->theme, ", Outline - ");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if ((color = dict[@"cursorOutline"]))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if ((color = [dict valueForKey:@"cursorOutline"]))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         appendColor(&result->theme, color);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         ffStrbufAppendS(&result->theme, "White");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NSNumber* mouseDriverCursorSize = dict[@"mouseDriverCursorSize"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    NSNumber* mouseDriverCursorSize = [dict valueForKey:@"mouseDriverCursorSize"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (mouseDriverCursorSize)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         ffStrbufAppendF(&result->size, "%d", (int) (mouseDriverCursorSize.doubleValue * 32));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         ffStrbufAppendS(&result->size, "32");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    POOLEND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/detection/displayserver/displayserver.c b/src/detection/displayserver/displayserver.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c2ba3e59..74038c7d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/detection/displayserver/displayserver.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/detection/displayserver/displayserver.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,27 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "displayserver.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef CG_LEGACY_API
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++uint32_t ffdsParseRefreshRate(int32_t refreshRate)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(refreshRate <= 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    int remainder = refreshRate % 5;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(remainder >= 3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        refreshRate += (5 - remainder);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        refreshRate -= remainder;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    // All other typicall refresh rates are dividable by 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(refreshRate == 145)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        refreshRate = 144;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return (uint32_t) refreshRate;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ FFDisplayResult* ffdsAppendDisplay(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     FFDisplayServerResult* result,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     uint32_t width,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/detection/displayserver/displayserver.h b/src/detection/displayserver/displayserver.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d1d21839..c2f6fffd 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/detection/displayserver/displayserver.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/detection/displayserver/displayserver.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2,6 +2,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "fastfetch.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060 || defined(__ppc__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define CG_LEGACY_API
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define FF_DE_PRETTY_PLASMA "KDE Plasma"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define FF_DE_PRETTY_GNOME "GNOME"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define FF_DE_PRETTY_GNOME_CLASSIC "GNOME Classic"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -90,6 +97,10 @@ typedef struct FFDisplayServerResult
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const FFDisplayServerResult* ffConnectDisplayServer();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef CG_LEGACY_API
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++uint32_t ffdsParseRefreshRate(int32_t refreshRate);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ FFDisplayResult* ffdsAppendDisplay(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     FFDisplayServerResult* result,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     uint32_t width,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/detection/displayserver/displayserver_apple.c b/src/detection/displayserver/displayserver_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d5158492..1f9ecfd7 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/detection/displayserver/displayserver_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/detection/displayserver/displayserver_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,6 +6,35 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <stdlib.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <string.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <assert.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef CG_LEGACY_API
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "common/sysctl.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <ApplicationServices/ApplicationServices.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef union
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    uint8_t rawData[0xDC];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    struct
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        uint32_t mode;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        uint32_t flags;     // 0x4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        uint32_t width;     // 0x8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        uint32_t height;    // 0xC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        uint32_t depth;     // 0x10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        uint32_t dc2[42];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        uint16_t dc3;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        uint16_t freq;      // 0xBC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        uint32_t dc4[4];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        float density;      // 0xD0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    } derived;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++} modes_D4;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void CGSGetCurrentDisplayMode(CGDirectDisplayID display, int* modeNum);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void CGSGetDisplayModeDescriptionOfLength(CGDirectDisplayID display, int idx, modes_D4* mode, int length);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <CoreGraphics/CGDirectDisplay.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <CoreVideo/CVDisplayLink.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -27,11 +56,22 @@ static void detectDisplays(FFDisplayServerResult* ds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     FF_STRBUF_AUTO_DESTROY buffer = ffStrbufCreate();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     for(uint32_t i = 0; i < screenCount; i++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef CG_LEGACY_API
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        int modeID;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        CGSGetCurrentDisplayMode(screens[i], &modeID);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        modes_D4 mode;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        CGSGetDisplayModeDescriptionOfLength(screens[i], modeID, &mode, 0xD4);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         CGDirectDisplayID screen = screens[i];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef CG_LEGACY_API
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         CGDisplayModeRef mode = CGDisplayCopyDisplayMode(screen);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if(mode)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            //https://github.com/glfw/glfw/commit/aab08712dd8142b642e2042e7b7ba563acd07a45
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef CG_LEGACY_API
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            double refreshRate = ffdsParseRefreshRate(mode.derived.freq);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             double refreshRate = CGDisplayModeGetRefreshRate(mode);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if (refreshRate == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -45,7 +85,7 @@ static void detectDisplays(FFDisplayServerResult* ds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     CVDisplayLinkRelease(link);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             ffStrbufClear(&buffer);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             CFDictionaryRef FF_CFTYPE_AUTO_RELEASE displayInfo = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             #ifdef MAC_OS_X_VERSION_10_15
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -83,11 +123,21 @@ static void detectDisplays(FFDisplayServerResult* ds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             FFDisplayResult* display = ffdsAppendDisplay(ds,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef CG_LEGACY_API
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                mode.derived.width,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                mode.derived.height,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 (uint32_t)CGDisplayModeGetPixelWidth(mode),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 (uint32_t)CGDisplayModeGetPixelHeight(mode),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 refreshRate,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED > 1070
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 (uint32_t)CGDisplayModeGetWidth(mode),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 (uint32_t)CGDisplayModeGetHeight(mode),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                0,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                0,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 (uint32_t)CGDisplayRotation(screen),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 &buffer,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 CGDisplayIsBuiltin(screen) ? FF_DISPLAY_TYPE_BUILTIN : FF_DISPLAY_TYPE_EXTERNAL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -99,6 +149,7 @@ static void detectDisplays(FFDisplayServerResult* ds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if (display)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef CG_LEGACY_API
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 // https://stackoverflow.com/a/33519316/9976392
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 // Also shitty, but better than parsing `CFCopyDescription(mode)`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 CFDictionaryRef dict = (CFDictionaryRef) *((int64_t *)mode + 2);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -125,7 +176,7 @@ static void detectDisplays(FFDisplayServerResult* ds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                         display->hdrStatus = FF_DISPLAY_HDR_STATUS_UNSUPPORTED;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 display->serial = CGDisplaySerialNumber(screen);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 int value;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 if (ffCfDictGetInt(displayInfo, CFSTR(kDisplayYearOfManufacture), &value) == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -133,7 +184,9 @@ static void detectDisplays(FFDisplayServerResult* ds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 if (ffCfDictGetInt(displayInfo, CFSTR(kDisplayWeekOfManufacture), &value) == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     display->manufactureWeek = (uint16_t) value;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef CG_LEGACY_API
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             CGDisplayModeRelease(mode);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         CGDisplayRelease(screen);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -142,7 +195,11 @@ static void detectDisplays(FFDisplayServerResult* ds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void ffConnectDisplayServerImpl(FFDisplayServerResult* ds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1080
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         FF_CFTYPE_AUTO_RELEASE CFMachPortRef port = CGWindowServerCreateServerPort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        FF_CFTYPE_AUTO_RELEASE CFMachPortRef port = CGWindowServerCFMachPort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (port)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             ffStrbufSetStatic(&ds->wmProcessName, "WindowServer");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/detection/font/font_apple.m b/src/detection/font/font_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 683acad0..a2c9fb74 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/detection/font/font_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/detection/font/font_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4,6 +4,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #import <AppKit/NSFont.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED < 1090
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLSTART NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLEND   [pool release];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLSTART
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLEND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void generateString(FFFontResult* font)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if(font->fonts[0].length > 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23,6 +33,7 @@ static void generateString(FFFontResult* font)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char* ffDetectFontImpl(FFFontResult* result)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    POOLSTART
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ffStrbufAppendS(&result->fonts[0], [NSFont systemFontOfSize:12].familyName.UTF8String);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ffStrbufAppendS(&result->fonts[1], [NSFont userFontOfSize:12].familyName.UTF8String);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #ifdef MAC_OS_X_VERSION_10_15
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -32,6 +43,6 @@ const char* ffDetectFontImpl(FFFontResult* result)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ffStrbufAppendS(&result->fonts[3], [NSFont userFixedPitchFontOfSize:12].familyName.UTF8String);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     generateString(result);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    POOLEND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/detection/host/host_apple.c b/src/detection/host/host_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index efc15ab5..10fd867c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/detection/host/host_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/detection/host/host_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4,6 +4,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "util/stringUtils.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <IOKit/IOKitLib.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static const char* getProductNameWithHwModel(const FFstrbuf* hwModel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -238,6 +239,7 @@ const char* getProductNameWithIokit(FFstrbuf* result)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char* getOthersByIokit(FFHostResult* host)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     FF_IOOBJECT_AUTO_RELEASE io_registry_entry_t registryEntry = IOServiceGetMatchingService(MACH_PORT_NULL, IOServiceMatching("IOPlatformExpertDevice"));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (!registryEntry)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return "IOServiceGetMatchingService() failed";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -253,7 +255,7 @@ const char* getOthersByIokit(FFHostResult* host)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     FF_CFTYPE_AUTO_RELEASE CFStringRef manufacturer = IORegistryEntryCreateCFProperty(registryEntry, CFSTR("manufacturer"), kCFAllocatorDefault, kNilOptions);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (manufacturer)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         ffCfStrGetString(manufacturer, &host->vendor);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/detection/memory/memory_apple.c b/src/detection/memory/memory_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cdfdee12..23ce20dc 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/detection/memory/memory_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/detection/memory/memory_apple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -28,7 +28,9 @@ const char* ffDetectMemory(FFMemoryResult* ram)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ram->bytesUsed = ((uint64_t)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         + vmstat.active_count
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         + vmstat.inactive_count
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         + vmstat.speculative_count
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         + vmstat.wire_count
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if (MAC_OS_X_VERSION_MIN_REQUIRED >= 1060) && !defined(__ppc__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         + vmstat.compressor_page_count
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/detection/os/os_apple.m b/src/detection/os/os_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b86202b1..803bed1c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/detection/os/os_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/detection/os/os_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,25 +6,33 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <stdlib.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <string.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#import <Foundation/Foundation.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <Foundation/Foundation.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED < 1090
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLSTART NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLEND   [pool release];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLSTART
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLEND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void parseSystemVersion(FFOSResult* os)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NSError* error;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NSString* fileName = @"file:///System/Library/CoreServices/SystemVersion.plist";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NSDictionary* dict = [NSDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:fileName]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                       error:&error];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if(error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    POOLSTART
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    NSDictionary* dict = [NSDictionary dictionaryWithContentsOfFile:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        @"/System/Library/CoreServices/SystemVersion.plist"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     NSString* value;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if((value = dict[@"ProductName"]))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        ffStrbufInitS(&os->name, value.UTF8String);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if((value = dict[@"ProductUserVisibleVersion"]))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        ffStrbufInitS(&os->version, value.UTF8String);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if((value = dict[@"ProductBuildVersion"]))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        ffStrbufInitS(&os->buildID, value.UTF8String);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if ((value = [dict objectForKey:@"ProductName"]))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        ffStrbufInitS(&os->name, [value UTF8String]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if ((value = [dict objectForKey:@"ProductUserVisibleVersion"]))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        ffStrbufInitS(&os->version, [value UTF8String]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if ((value = [dict objectForKey:@"ProductBuildVersion"]))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        ffStrbufInitS(&os->buildID, [value UTF8String]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    POOLEND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static bool detectOSCodeName(FFOSResult* os)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/detection/physicalmemory/physicalmemory_apple.m b/src/detection/physicalmemory/physicalmemory_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 243b35ac..5cfd0ba9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/detection/physicalmemory/physicalmemory_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/detection/physicalmemory/physicalmemory_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3,7 +3,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "util/smbiosHelper.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "util/stringUtils.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#import <Foundation/Foundation.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <Foundation/Foundation.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED < 1090
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLSTART NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLEND   [pool release];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLSTART
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLEND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void appendDevice(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     FFlist* result,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11,7 +20,7 @@ static void appendDevice(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     NSString* vendor,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     NSString* size,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    // Intel only
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    // Intel and PowerPC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     NSString* locator,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     NSString* serial,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     NSString* partNumber,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -66,6 +75,7 @@ static void appendDevice(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char* ffDetectPhysicalMemory(FFlist* result)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    POOLSTART
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     FF_STRBUF_AUTO_DESTROY buffer = ffStrbufCreate();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (ffProcessAppendStdOut(&buffer, (char* const[]) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         "system_profiler",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -77,31 +87,37 @@ const char* ffDetectPhysicalMemory(FFlist* result)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }) != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return "Starting `system_profiler SPMemoryDataType -xml -detailLevel full` failed";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NSArray* arr = [NSPropertyListSerialization propertyListWithData:[NSData dataWithBytes:buffer.chars length:buffer.length]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    options:NSPropertyListImmutable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    format:nil
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    error:nil];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (!arr || !arr.count)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    NSString* error;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    NSData* plistData = [NSData dataWithBytes:buffer.chars length:buffer.length];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    NSPropertyListFormat format;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    NSArray* arr = [NSPropertyListSerialization propertyListFromData:plistData
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    mutabilityOption:NSPropertyListImmutable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    format:&format
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    errorDescription:&error];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (!arr) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return "system_profiler SPMemoryDataType returned an empty array";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        [error release];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    for (NSDictionary* data in arr[0][@"_items"])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    for (NSDictionary* data in [[arr objectAtIndex:0] objectForKey:@"_items"])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if (data[@"_items"])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if ([data objectForKey:@"_items"])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            // for Intel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            for (NSDictionary* item in data[@"_items"])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            // for Intel and PowerPC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            for (NSDictionary* item in [data objectForKey:@"_items"])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 appendDevice(result,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    item[@"dimm_type"],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    item[@"dimm_manufacturer"],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    item[@"dimm_size"],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    item[@"_name"],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    item[@"dimm_serial_number"],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    item[@"dimm_part_number"],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    item[@"dimm_speed"],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    !![data[@"global_ecc_state"] isEqualToString:@"ecc_enabled"]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    [item valueForKey:@"dimm_type"],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    [item valueForKey:@"dimm_manufacturer"],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    [item valueForKey:@"dimm_size"],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    [item valueForKey:@"_name"],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    [item valueForKey:@"dimm_serial_number"],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    [item valueForKey:@"dimm_part_number"],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    [item valueForKey:@"dimm_speed"],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    !![[data objectForKey:@"global_ecc_state"] isEqualToString:@"ecc_enabled"]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __arm64__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             // for Apple Silicon
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -115,7 +131,8 @@ const char* ffDetectPhysicalMemory(FFlist* result)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 nil,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 false);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    POOLEND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/detection/terminalfont/terminalfont_apple.m b/src/detection/terminalfont/terminalfont_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 90fed7fd..b3f50ffa 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/detection/terminalfont/terminalfont_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/detection/terminalfont/terminalfont_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5,7 +5,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <stdlib.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <string.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#import <Foundation/Foundation.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <Foundation/Foundation.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void detectIterm2(FFTerminalFontResult* terminalFont)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16,38 +17,32 @@ static void detectIterm2(FFTerminalFontResult* terminalFont)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NSError* error;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NSString* fileName = [NSString stringWithFormat:@"file://%s/Library/Preferences/com.googlecode.iterm2.plist", instance.state.platform.homeDir.chars];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NSDictionary* dict = [NSDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:fileName]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                       error:&error];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if(error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        ffStrbufAppendS(&terminalFont->error, error.localizedDescription.UTF8String);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    NSDictionary* dict = [NSDictionary dictionaryWithContentsOfFile:[NSHomeDirectory() stringByAppendingPathComponent:@"/Library/Preferences/com.googlecode.iterm2.plist"]];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    for(NSDictionary* bookmark in dict[@"New Bookmarks"])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050 // This chunk of code breaks linkage on 10.4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    for(NSDictionary* bookmark in [dict valueForKey:@"New Bookmarks"])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if(![bookmark[@"Name"] isEqualToString:@(profile)])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if(![[bookmark valueForKey:@"Name"] isEqualToString:[NSString stringWithUTF8String:profile]])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             continue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        NSString* normalFont = bookmark[@"Normal Font"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        NSString* normalFont = [bookmark valueForKey:@"Normal Font"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if(!normalFont)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             ffStrbufAppendF(&terminalFont->error, "`Normal Font` key in profile `%s` doesn't exist", profile);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        ffFontInitWithSpace(&terminalFont->font, normalFont.UTF8String);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        ffFontInitWithSpace(&terminalFont->font, [normalFont UTF8String]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        NSNumber* useNonAsciiFont = bookmark[@"Use Non-ASCII Font"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if(useNonAsciiFont.boolValue)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        NSNumber* useNonAsciiFont = [bookmark valueForKey:@"Use Non-ASCII Font"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if([useNonAsciiFont boolValue])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            NSString* nonAsciiFont = bookmark[@"Non Ascii Font"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            NSString* nonAsciiFont = [bookmark valueForKey:@"Non Ascii Font"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if (nonAsciiFont)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                ffFontInitWithSpace(&terminalFont->fallback, nonAsciiFont.UTF8String);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                ffFontInitWithSpace(&terminalFont->fallback, [nonAsciiFont UTF8String]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ffStrbufAppendF(&terminalFont->error, "find profile `%s` bookmark failed", profile);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -68,23 +63,15 @@ static void detectAppleTerminal(FFTerminalFontResult* terminalFont)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void detectWarpTerminal(FFTerminalFontResult* terminalFont)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NSError* error;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NSString* fileName = [NSString stringWithFormat:@"file://%s/Library/Preferences/dev.warp.Warp-Stable.plist", instance.state.platform.homeDir.chars];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NSDictionary* dict = [NSDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:fileName]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                       error:&error];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if(error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        ffStrbufAppendS(&terminalFont->error, error.localizedDescription.UTF8String);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    NSDictionary* dict = [NSDictionary dictionaryWithContentsOfFile:[NSHomeDirectory() stringByAppendingPathComponent:@"/Library/Preferences/dev.warp.Warp-Stable.plist"]];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NSString* fontName = dict[@"FontName"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    NSString* fontName = [dict valueForKey:@"FontName"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if(!fontName)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         fontName = @"Hack";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         fontName = [fontName stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"\""]];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NSString* fontSize = dict[@"FontSize"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    NSString* fontSize = [dict valueForKey:@"FontSize"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if(!fontSize)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         fontSize = @"13";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/detection/wallpaper/wallpaper_apple.m b/src/detection/wallpaper/wallpaper_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6780828d..d04dd772 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/detection/wallpaper/wallpaper_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/detection/wallpaper/wallpaper_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2,10 +2,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "common/settings.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "util/apple/osascript.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#import <Foundation/Foundation.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <Foundation/Foundation.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char* ffDetectWallpaper(FFstrbuf* result)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED > 130000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         // For Sonoma
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         // https://github.com/JohnCoates/Aerial/issues/1332
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -18,16 +22,16 @@ const char* ffDetectWallpaper(FFstrbuf* result)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             NSArray* choices = [dict valueForKeyPath:@"SystemDefault.Desktop.Content.Choices"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if (choices.count > 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                NSDictionary* choice = choices[0];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                NSArray* files = choice[@"Files"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                NSDictionary* choice = [choices objectAtIndex:0];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                NSArray* files = [choice valueForKey:@"Files"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 if (files.count > 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    NSString* file = files[0][@"relative"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    NSString* file = [[files objectAtIndex: 0] valueForKey: @"relative"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     ffStrbufAppendS(result, [NSURL URLWithString:file].path.UTF8String);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    NSString* provider = choice[@"Provider"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    NSString* provider = [choice valueForKey:@"Provider"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     NSString* builtinPrefix = @"com.apple.wallpaper.choice.";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     if ([provider hasPrefix:builtinPrefix])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                         provider = [provider substringFromIndex:builtinPrefix.length];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -44,6 +48,8 @@ const char* ffDetectWallpaper(FFstrbuf* result)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #ifdef FF_HAVE_SQLITE3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/detection/wmtheme/wmtheme_apple.m b/src/detection/wmtheme/wmtheme_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8c43877b..c3fc8bb1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/detection/wmtheme/wmtheme_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/detection/wmtheme/wmtheme_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,21 +1,24 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "fastfetch.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "wmtheme.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#import <Foundation/Foundation.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <Foundation/Foundation.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED < 1090
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLSTART NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLEND   [pool release];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLSTART
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLEND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool ffDetectWmTheme(FFstrbuf* themeOrError)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NSError* error;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NSString* fileName = [NSString stringWithFormat:@"file://%s/Library/Preferences/.GlobalPreferences.plist", instance.state.platform.homeDir.chars];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NSDictionary* dict = [NSDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:fileName]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                       error:&error];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if(error)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        ffStrbufAppendS(themeOrError, error.localizedDescription.UTF8String);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    POOLSTART
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    NSDictionary* dict = [NSDictionary dictionaryWithContentsOfFile:[NSHomeDirectory() stringByAppendingPathComponent:@"/Library/Preferences/.GlobalPreferences.plist"]];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NSNumber* wmThemeColor = dict[@"AppleAccentColor"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    NSNumber* wmThemeColor = [dict valueForKey:@"AppleAccentColor"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if(!wmThemeColor)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         ffStrbufAppendS(themeOrError, "Multicolor");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34,7 +37,8 @@ bool ffDetectWmTheme(FFstrbuf* themeOrError)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NSString* wmTheme = dict[@"AppleInterfaceStyle"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    NSString* wmTheme = [dict valueForKey:@"AppleInterfaceStyle"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ffStrbufAppendF(themeOrError, " (%s)", wmTheme ? wmTheme.UTF8String : "Light");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    POOLEND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/util/apple/osascript.h b/src/util/apple/osascript.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 164d8d70..1255ac30 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/util/apple/osascript.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/util/apple/osascript.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3,3 +3,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "fastfetch.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool ffOsascript(const char* input, FFstrbuf* result);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED < 1090
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLSTART NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLEND   [pool release];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLSTART
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POOLEND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/util/apple/osascript.m b/src/util/apple/osascript.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8b01ba06..ebe9ae8e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/util/apple/osascript.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/util/apple/osascript.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,17 +1,19 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "osascript.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#import <Foundation/Foundation.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#import <AppKit/AppKit.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#import <CoreData/CoreData.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <Foundation/Foundation.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <AppKit/AppKit.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <CoreData/CoreData.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-bool ffOsascript(const char* input, FFstrbuf* result)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NSAppleScript* script = [NSAppleScript.alloc initWithSource:@(input)];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++bool ffOsascript(const char* input, FFstrbuf* result) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    POOLSTART
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    NSString* appleScript = [NSString stringWithUTF8String: input];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    NSAppleScript* script = [[NSAppleScript alloc] initWithSource:appleScript];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     NSDictionary* errInfo = nil;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     NSAppleEventDescriptor* descriptor = [script executeAndReturnError:&errInfo];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (errInfo)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    ffStrbufSetS(result, descriptor.stringValue.UTF8String);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ffStrbufSetS(result, [[descriptor stringValue] cStringUsingEncoding:NSUTF8StringEncoding]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    POOLEND
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/util/kmod.c b/src/util/kmod.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 60d1889b..7dcaf0f8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/util/kmod.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/util/kmod.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -35,7 +35,10 @@ bool ffKmodLoaded(const char* modName)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "util/apple/cf_helpers.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <IOKit/kext/KextManager.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <CoreFoundation/CoreFoundation.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// KextManagerCopyLoadedKextInfo available in 10.7+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1070
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool ffKmodLoaded(const char* modName)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     FF_CFTYPE_AUTO_RELEASE CFStringRef name = CFStringCreateWithCString(kCFAllocatorDefault, modName, kCFStringEncodingUTF8);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -44,6 +47,12 @@ bool ffKmodLoaded(const char* modName)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     FF_CFTYPE_AUTO_RELEASE CFDictionaryRef kextInfo = KextManagerCopyLoadedKextInfo(identifiers, keys);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return CFDictionaryContainsKey(kextInfo, name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else // MAC_OS_X_VERSION_MIN_REQUIRED < 1070
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++bool ffKmodLoaded(FF_MAYBE_UNUSED const char* modName)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return true; // Don't generate kernel module related errors
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif // MAC_OS_X_VERSION_MIN_REQUIRED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool ffKmodLoaded(FF_MAYBE_UNUSED const char* modName)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/util/platform/FFPlatform_unix.c b/src/util/platform/FFPlatform_unix.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b0d0ac1b..3672da3a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/util/platform/FFPlatform_unix.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/util/platform/FFPlatform_unix.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10,7 +10,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <paths.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #include <libproc.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #include <sys/sysctl.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #include <sys/sysctl.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -22,7 +25,7 @@ static void getExePath(FFPlatform* platform)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #ifdef __linux__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         ssize_t exePathLen = readlink("/proc/self/exe", exePath, sizeof(exePath) - 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         exePath[exePathLen] = '\0';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    #elif defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #elif defined(__APPLE__) && (MAC_OS_X_VERSION_MIN_REQUIRED >= 1050)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         int exePathLen = proc_pidpath((int) getpid(), exePath, sizeof(exePath));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #elif defined(__FreeBSD__) || defined(__NetBSD__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         size_t exePathLen = sizeof(exePath);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.47.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/files/0012-osascript.m-fix-syntax.patch b/sysutils/fastfetch/files/0012-osascript.m-fix-syntax.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 5d5362c894f..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/fastfetch/files/0012-osascript.m-fix-syntax.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,41 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From a001fe2c929b53138914ea3289d94ddd97574951 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Sergey Fedorov <barracuda@macos-powerpc.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Sun, 4 Aug 2024 01:38:18 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 12/21] osascript.m: fix syntax
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/util/apple/osascript.m | 14 +++++++-------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 7 insertions(+), 7 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/util/apple/osascript.m b/src/util/apple/osascript.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 8b01ba06..ddef3407 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/util/apple/osascript.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/util/apple/osascript.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,17 +1,17 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "osascript.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#import <Foundation/Foundation.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#import <AppKit/AppKit.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#import <CoreData/CoreData.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <Foundation/Foundation.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <AppKit/AppKit.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <CoreData/CoreData.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--bool ffOsascript(const char* input, FFstrbuf* result)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    NSAppleScript* script = [NSAppleScript.alloc initWithSource:@(input)];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+bool ffOsascript(const char* input, FFstrbuf* result) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    NSString* appleScript = [NSString stringWithUTF8String: input];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    NSAppleScript* script = [[NSAppleScript alloc] initWithSource:appleScript];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     NSDictionary* errInfo = nil;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     NSAppleEventDescriptor* descriptor = [script executeAndReturnError:&errInfo];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (errInfo)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         return false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    ffStrbufSetS(result, descriptor.stringValue.UTF8String);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ffStrbufSetS(result, [[descriptor stringValue] cStringUsingEncoding:NSUTF8StringEncoding]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-2.46.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/files/0022-Tiger-specific-adjustments-to-CMakeLists.patch b/sysutils/fastfetch/files/0013-Tiger-specific-adjustments-to-CMakeLists.patch
</span>similarity index 67%
rename from sysutils/fastfetch/files/0022-Tiger-specific-adjustments-to-CMakeLists.patch
rename to sysutils/fastfetch/files/0013-Tiger-specific-adjustments-to-CMakeLists.patch
<span style='display:block; white-space:pre;color:#808080;'>index e1d867fb214..ef49e4fb870 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/fastfetch/files/0022-Tiger-specific-adjustments-to-CMakeLists.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/fastfetch/files/0013-Tiger-specific-adjustments-to-CMakeLists.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,17 +1,17 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 58366c1126c0f3d4178e5d3a03edc1aa2d36eb6f Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 395bcd42075a2638f4eedc62107ec55b240273b4 Mon Sep 17 00:00:00 2001
</span> From: Sergey Fedorov <barracuda@macos-powerpc.org>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Tue, 27 Aug 2024 16:08:42 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Wed, 6 Nov 2024 14:43:00 +0800
</span> Subject: [PATCH] Tiger-specific adjustments to CMakeLists
 
 ---
<span style='display:block; white-space:pre;background:#ffe0e0;'>- CMakeLists.txt | 7 +++----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 3 insertions(+), 4 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CMakeLists.txt | 9 ++++-----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 4 insertions(+), 5 deletions(-)
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git CMakeLists.txt CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 6b2a2bcf..b607fabf 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/CMakeLists.txt b/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 09ae13a5..4605edd8 100644
</span> --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -632,7 +632,7 @@ elseif(APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -840,7 +840,7 @@ elseif(APPLE)
</span>          src/common/networking_linux.c
          src/common/processing_linux.c
          src/common/sysctl.c
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -20,25 +20,27 @@ index 6b2a2bcf..b607fabf 100644
</span>          src/detection/bios/bios_apple.c
          src/detection/bluetooth/bluetooth_nosupport.c
          src/detection/bluetoothradio/bluetoothradio_nosupport.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -646,7 +646,7 @@ elseif(APPLE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/cursor/cursor_nosupport.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -855,8 +855,8 @@ elseif(APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/cursor/cursor_apple.m
</span>          src/detection/disk/disk_bsd.c
          src/detection/dns/dns_linux.c
 -        src/detection/physicaldisk/physicaldisk_apple.c
<span style='display:block; white-space:pre;background:#e0ffe0;'>+-        src/detection/physicalmemory/physicalmemory_apple.m
</span> +        src/detection/physicaldisk/physicaldisk_nosupport.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/physicalmemory/physicalmemory_nosupport.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        src/detection/physicalmemory/physicalmemory_nosupport.c
</span>          src/detection/diskio/diskio_apple.c
          src/detection/displayserver/displayserver_apple.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -689,7 +689,7 @@ elseif(APPLE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/util/apple/cf_helpers.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/detection/font/font_apple.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -901,7 +901,7 @@ elseif(APPLE)
</span>          src/util/apple/osascript.m
<span style='display:block; white-space:pre;background:#e0ffe0;'>+         src/util/apple/smc_temps.c
</span>          src/util/platform/FFPlatform_unix.c
 -        src/util/binary_apple.c
 +        src/util/binary_linux.c
      )
  elseif(WIN32)
      list(APPEND LIBFASTFETCH_SRC
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1108,7 +1108,6 @@ elseif(APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1392,7 +1392,6 @@ elseif(APPLE)
</span>          PRIVATE "-framework Cocoa"
          PRIVATE "-framework CoreFoundation"
          PRIVATE "-framework CoreAudio"
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/files/0013-disk_bsd-no-support-for-creation-time.patch b/sysutils/fastfetch/files/0013-disk_bsd-no-support-for-creation-time.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 33115e4ca78..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/fastfetch/files/0013-disk_bsd-no-support-for-creation-time.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,36 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 5612e01f8c0e66558bd63c3f97b8fd0e7a68c217 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Sergey Fedorov <barracuda@macos-powerpc.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Sun, 4 Aug 2024 19:58:34 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 13/21] disk_bsd: no support for creation time
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/detection/disk/disk_bsd.c | 3 +++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 3 insertions(+)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/detection/disk/disk_bsd.c b/src/detection/disk/disk_bsd.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 81be9c83..4c35f50c 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/detection/disk/disk_bsd.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/detection/disk/disk_bsd.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -65,6 +65,7 @@ static void detectFsInfo(struct statfs* fs, FFDisk* disk)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <sys/attr.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <unistd.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifndef MAC_OS_X_VERSION_10_15
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     #define MNT_REMOVABLE 0x00000200
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -143,9 +144,11 @@ const char* ffDetectDisksImpl(FFDiskOptions* options, FFlist* disks)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         if(fs->f_flags & MNT_RDONLY)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             disk->type |= FF_DISK_VOLUME_TYPE_READONLY_BIT;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef MAC_OS_X_VERSION_10_15
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         struct stat st;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         if(stat(fs->f_mntonname, &st) == 0 && st.st_birthtimespec.tv_sec > 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             disk->createTime = (uint64_t)((st.st_birthtimespec.tv_sec * 1000) + (st.st_birthtimespec.tv_nsec / 1000000));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-2.46.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/files/0015-monitor_apple.m-no-HDR-before-10.11.patch b/sysutils/fastfetch/files/0015-monitor_apple.m-no-HDR-before-10.11.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 6ad00f32ec6..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/fastfetch/files/0015-monitor_apple.m-no-HDR-before-10.11.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,46 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 730c592561f97748df02ca22510abe2e181e206a Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Sergey Fedorov <barracuda@macos-powerpc.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Thu, 15 Aug 2024 22:19:23 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 15/21] monitor_apple.m: no HDR before 10.11
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/detection/monitor/monitor_apple.m | 7 +++++++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 7 insertions(+)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/detection/monitor/monitor_apple.m b/src/detection/monitor/monitor_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 70d71eeb..009577c9 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/detection/monitor/monitor_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/detection/monitor/monitor_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -7,15 +7,21 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #import <Foundation/Foundation.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #import <CoreGraphics/CoreGraphics.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifdef MAC_OS_X_VERSION_10_15
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- extern CFDictionaryRef CoreDisplay_DisplayCreateInfoDictionary(CGDirectDisplayID display) __attribute__((weak_import));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <IOKit/graphics/IOGraphicsLib.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifndef MAC_OS_X_VERSION_10_8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define CoreDisplay_IODisplayCreateInfoDictionary IODisplayCreateInfoDictionary
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static bool detectHdrSupportWithNSScreen(FFDisplayResult* display)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     NSScreen* mainScreen = NSScreen.mainScreen;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if MAC_OS_X_VERSION_MIN_REQUIRED >= 101100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (display->primary)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         #ifdef MAC_OS_X_VERSION_10_15
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -40,6 +46,7 @@ static bool detectHdrSupportWithNSScreen(FFDisplayResult* display)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-2.46.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/files/0016-Fix-autorelease-pools.patch b/sysutils/fastfetch/files/0016-Fix-autorelease-pools.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 3656adcdd25..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/fastfetch/files/0016-Fix-autorelease-pools.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,269 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 2a92d3c06adedac7b0ee6088865b88fccffcb198 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Sergey Fedorov <barracuda@macos-powerpc.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Thu, 15 Aug 2024 22:41:23 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 16/21] Fix autorelease pools
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/detection/bluetooth/bluetooth_apple.m | 13 ++++++++++++-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/detection/cursor/cursor_apple.m       | 12 ++++++++++++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/detection/font/font_apple.m           | 13 ++++++++++++-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/detection/monitor/monitor_apple.m     | 13 ++++++++++++-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/detection/os/os_apple.m               | 12 ++++++++++++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/detection/wmtheme/wmtheme_apple.m     | 12 ++++++++++++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/util/apple/osascript.h                | 10 ++++++++++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/util/apple/osascript.m                |  2 ++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 8 files changed, 84 insertions(+), 3 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/detection/bluetooth/bluetooth_apple.m b/src/detection/bluetooth/bluetooth_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index abd31a0c..d5e83094 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/detection/bluetooth/bluetooth_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/detection/bluetooth/bluetooth_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2,8 +2,19 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #import <IOBluetooth/IOBluetooth.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if MAC_OS_X_VERSION_MIN_REQUIRED < 1090
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLSTART NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLEND   [pool release];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLSTART
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLEND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const char* ffDetectBluetooth(FFlist* devices /* FFBluetoothResult */)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    POOLSTART
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     NSArray<IOBluetoothDevice*>* ioDevices = IOBluetoothDevice.pairedDevices;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if(!ioDevices)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         return "IOBluetoothDevice.pairedDevices failed";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -87,6 +98,6 @@ const char* ffDetectBluetooth(FFlist* devices /* FFBluetoothResult */)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             ffStrbufTrimRight(&device->type, ',');
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    POOLEND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/detection/cursor/cursor_apple.m b/src/detection/cursor/cursor_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index c71c440a..c0cbbd1f 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/detection/cursor/cursor_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/detection/cursor/cursor_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2,6 +2,16 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #import <Foundation/Foundation.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if MAC_OS_X_VERSION_MIN_REQUIRED < 1090
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLSTART NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLEND   [pool release];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLSTART
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLEND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void appendColor(FFstrbuf* str, NSDictionary* color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     int r = (int) (((NSNumber*) [color valueForKey:@"red"]).doubleValue * 255);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -19,6 +29,7 @@ static void appendColor(FFstrbuf* str, NSDictionary* color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void ffDetectCursor(FFCursorResult* result)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    POOLSTART
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     NSDictionary* dict = [NSDictionary dictionaryWithContentsOfFile:[NSHomeDirectory() stringByAppendingPathComponent:@"/Library/Preferences/com.apple.universalaccess.plist"]];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     NSDictionary* color;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -41,4 +52,5 @@ void ffDetectCursor(FFCursorResult* result)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         ffStrbufAppendF(&result->size, "%d", (int) (mouseDriverCursorSize.doubleValue * 32));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         ffStrbufAppendS(&result->size, "32");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    POOLEND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/detection/font/font_apple.m b/src/detection/font/font_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 683acad0..a2c9fb74 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/detection/font/font_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/detection/font/font_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -4,6 +4,16 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #import <AppKit/NSFont.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if MAC_OS_X_VERSION_MIN_REQUIRED < 1090
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLSTART NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLEND   [pool release];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLSTART
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLEND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void generateString(FFFontResult* font)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if(font->fonts[0].length > 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -23,6 +33,7 @@ static void generateString(FFFontResult* font)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const char* ffDetectFontImpl(FFFontResult* result)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    POOLSTART
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ffStrbufAppendS(&result->fonts[0], [NSFont systemFontOfSize:12].familyName.UTF8String);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ffStrbufAppendS(&result->fonts[1], [NSFont userFontOfSize:12].familyName.UTF8String);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     #ifdef MAC_OS_X_VERSION_10_15
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -32,6 +43,6 @@ const char* ffDetectFontImpl(FFFontResult* result)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ffStrbufAppendS(&result->fonts[3], [NSFont userFixedPitchFontOfSize:12].familyName.UTF8String);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     generateString(result);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    POOLEND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/detection/monitor/monitor_apple.m b/src/detection/monitor/monitor_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 009577c9..c72c7f55 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/detection/monitor/monitor_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/detection/monitor/monitor_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -18,8 +18,17 @@ extern CFDictionaryRef CoreDisplay_DisplayCreateInfoDictionary(CGDirectDisplayID
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if MAC_OS_X_VERSION_MIN_REQUIRED < 1090
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLSTART NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLEND   [pool release];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLSTART
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLEND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static bool detectHdrSupportWithNSScreen(FFDisplayResult* display)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    POOLSTART
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     NSScreen* mainScreen = NSScreen.mainScreen;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #if MAC_OS_X_VERSION_MIN_REQUIRED >= 101100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (display->primary)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -47,6 +56,7 @@ static bool detectHdrSupportWithNSScreen(FFDisplayResult* display)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    POOLEND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -55,6 +65,7 @@ const char* ffDetectMonitor(FFlist* results)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     #ifdef MAC_OS_X_VERSION_10_15
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if(!CoreDisplay_DisplayCreateInfoDictionary) return "CoreDisplay_DisplayCreateInfoDictionary is not available";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    POOLSTART
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     const FFDisplayServerResult* displayServer = ffConnectDisplayServer();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     FF_LIST_FOR_EACH(FFDisplayResult, display, displayServer->displays)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -127,6 +138,6 @@ const char* ffDetectMonitor(FFlist* results)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         if (ffCfDictGetInt64(displayInfo, CFSTR("DisplayWeekManufacture"), &week) == NULL)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             monitor->manufactureWeek = (uint16_t) week;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    POOLEND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/detection/os/os_apple.m b/src/detection/os/os_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index dc606c92..803bed1c 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/detection/os/os_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/detection/os/os_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -8,8 +8,19 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <string.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <Foundation/Foundation.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if MAC_OS_X_VERSION_MIN_REQUIRED < 1090
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLSTART NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLEND   [pool release];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLSTART
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLEND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void parseSystemVersion(FFOSResult* os)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    POOLSTART
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     NSDictionary* dict = [NSDictionary dictionaryWithContentsOfFile:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         @"/System/Library/CoreServices/SystemVersion.plist"];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -21,6 +32,7 @@ static void parseSystemVersion(FFOSResult* os)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         ffStrbufInitS(&os->version, [value UTF8String]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if ((value = [dict objectForKey:@"ProductBuildVersion"]))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         ffStrbufInitS(&os->buildID, [value UTF8String]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    POOLEND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static bool detectOSCodeName(FFOSResult* os)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/detection/wmtheme/wmtheme_apple.m b/src/detection/wmtheme/wmtheme_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index b78acac0..904dacbd 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/detection/wmtheme/wmtheme_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/detection/wmtheme/wmtheme_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -3,8 +3,19 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #import <Foundation/Foundation.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if MAC_OS_X_VERSION_MIN_REQUIRED < 1090
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLSTART NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLEND   [pool release];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLSTART
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLEND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- bool ffDetectWmTheme(FFstrbuf* themeOrError)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    POOLSTART
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     NSDictionary* dict = [NSDictionary dictionaryWithContentsOfFile:[NSHomeDirectory() stringByAppendingPathComponent:@"/Library/Preferences/.GlobalPreferences.plist"]];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     NSNumber* wmThemeColor = [dict valueForKey:@"AppleAccentColor"];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -28,5 +39,6 @@ bool ffDetectWmTheme(FFstrbuf* themeOrError)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     NSString* wmTheme = [dict valueForKey:@"AppleInterfaceStyle"];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ffStrbufAppendF(themeOrError, " (%s)", wmTheme ? wmTheme.UTF8String : "Light");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    POOLEND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/util/apple/osascript.h b/src/util/apple/osascript.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 2c9fe830..f7c0b27b 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/util/apple/osascript.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/util/apple/osascript.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -8,3 +8,13 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- bool ffOsascript(const char* input, FFstrbuf* result);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if MAC_OS_X_VERSION_MIN_REQUIRED < 1090
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLSTART NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLEND   [pool release];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLSTART
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define POOLEND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/util/apple/osascript.m b/src/util/apple/osascript.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index ddef3407..ebe9ae8e 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/util/apple/osascript.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/util/apple/osascript.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -5,6 +5,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <CoreData/CoreData.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- bool ffOsascript(const char* input, FFstrbuf* result) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    POOLSTART
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     NSString* appleScript = [NSString stringWithUTF8String: input];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     NSAppleScript* script = [[NSAppleScript alloc] initWithSource:appleScript];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     NSDictionary* errInfo = nil;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -13,5 +14,6 @@ bool ffOsascript(const char* input, FFstrbuf* result) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         return false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ffStrbufSetS(result, [[descriptor stringValue] cStringUsingEncoding:NSUTF8StringEncoding]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    POOLEND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-2.46.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/files/0017-Fix-compatibility-with-10.4.patch b/sysutils/fastfetch/files/0017-Fix-compatibility-with-10.4.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 8e1520ef67d..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/fastfetch/files/0017-Fix-compatibility-with-10.4.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,169 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From c064f12df209043cbc47b99c5ccb1aef41d2627b Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Sergey Fedorov <barracuda@macos-powerpc.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Tue, 6 Aug 2024 03:52:56 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 17/21] Fix compatibility with 10.4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/common/processing_linux.c                   | 8 ++++++--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/detection/host/host_apple.c                 | 4 +++-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/detection/memory/memory_apple.c             | 2 ++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/detection/temps/temps_apple.c               | 3 +++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/detection/terminalfont/terminalfont_apple.m | 5 ++++-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/util/platform/FFPlatform_unix.c             | 5 ++++-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 6 files changed, 22 insertions(+), 5 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/common/processing_linux.c b/src/common/processing_linux.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index af3f4ebf..b2b1d6fa 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/common/processing_linux.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/common/processing_linux.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -19,7 +19,10 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     #include <sys/sysctl.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #if defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    #include <libproc.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  #include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  #if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      #include <libproc.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #elif defined(__sun)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     #include <procfs.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -185,6 +188,7 @@ void ffProcessGetInfoLinux(pid_t pid, FFstrbuf* processName, FFstrbuf* exe, cons
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             ffStrbufSetS(exe, arg0);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    #if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050 // No proc_pidpath on 10.4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         ffStrbufEnsureFixedLengthFree(exe, PATH_MAX);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -196,7 +200,7 @@ void ffProcessGetInfoLinux(pid_t pid, FFstrbuf* processName, FFstrbuf* exe, cons
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 ffStrbufSet(exePath, exe);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     #elif defined(__FreeBSD__)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     size_t size = ARG_MAX;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/detection/host/host_apple.c b/src/detection/host/host_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index efc15ab5..10fd867c 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/detection/host/host_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/detection/host/host_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -4,6 +4,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "util/stringUtils.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <IOKit/IOKitLib.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static const char* getProductNameWithHwModel(const FFstrbuf* hwModel)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -238,6 +239,7 @@ const char* getProductNameWithIokit(FFstrbuf* result)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const char* getOthersByIokit(FFHostResult* host)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     FF_IOOBJECT_AUTO_RELEASE io_registry_entry_t registryEntry = IOServiceGetMatchingService(MACH_PORT_NULL, IOServiceMatching("IOPlatformExpertDevice"));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (!registryEntry)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         return "IOServiceGetMatchingService() failed";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -253,7 +255,7 @@ const char* getOthersByIokit(FFHostResult* host)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     FF_CFTYPE_AUTO_RELEASE CFStringRef manufacturer = IORegistryEntryCreateCFProperty(registryEntry, CFSTR("manufacturer"), kCFAllocatorDefault, kNilOptions);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (manufacturer)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         ffCfStrGetString(manufacturer, &host->vendor);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/detection/memory/memory_apple.c b/src/detection/memory/memory_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index cdfdee12..23ce20dc 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/detection/memory/memory_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/detection/memory/memory_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -28,7 +28,9 @@ const char* ffDetectMemory(FFMemoryResult* ram)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ram->bytesUsed = ((uint64_t)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         + vmstat.active_count
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         + vmstat.inactive_count
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         + vmstat.speculative_count
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         + vmstat.wire_count
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #if (MAC_OS_X_VERSION_MIN_REQUIRED >= 1060) && !defined(__ppc__)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         + vmstat.compressor_page_count
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/detection/temps/temps_apple.c b/src/detection/temps/temps_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index c4cef782..0fea5a84 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/detection/temps/temps_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/detection/temps/temps_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -5,6 +5,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <stdint.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <math.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <IOKit/IOKitLib.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static const char kSmcCmdReadBytes = 5;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static const char kSmcCmdReadKeyInfo = 9;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -87,7 +88,9 @@ static const char *smcCall(io_connect_t conn, uint32_t selector, SmcKeyData_t *i
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     size_t size = sizeof(SmcKeyData_t);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (IOConnectCallStructMethod(conn, selector, inputStructure, size, outputStructure, &size) != kIOReturnSuccess)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         return "IOConnectCallStructMethod(conn) failed";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/detection/terminalfont/terminalfont_apple.m b/src/detection/terminalfont/terminalfont_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 96917199..b3f50ffa 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/detection/terminalfont/terminalfont_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/detection/terminalfont/terminalfont_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -5,7 +5,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <stdlib.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <string.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#import <Foundation/Foundation.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <Foundation/Foundation.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void detectIterm2(FFTerminalFontResult* terminalFont)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -18,6 +19,7 @@ static void detectIterm2(FFTerminalFontResult* terminalFont)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     NSDictionary* dict = [NSDictionary dictionaryWithContentsOfFile:[NSHomeDirectory() stringByAppendingPathComponent:@"/Library/Preferences/com.googlecode.iterm2.plist"]];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050 // This chunk of code breaks linkage on 10.4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     for(NSDictionary* bookmark in [dict valueForKey:@"New Bookmarks"])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         if(![[bookmark valueForKey:@"Name"] isEqualToString:[NSString stringWithUTF8String:profile]])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -40,6 +42,7 @@ static void detectIterm2(FFTerminalFontResult* terminalFont)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ffStrbufAppendF(&terminalFont->error, "find profile `%s` bookmark failed", profile);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/util/platform/FFPlatform_unix.c b/src/util/platform/FFPlatform_unix.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index b442eed5..8cac81f2 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/util/platform/FFPlatform_unix.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/util/platform/FFPlatform_unix.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10,7 +10,10 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <paths.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  #include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  #if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     #include <libproc.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     #include <sys/sysctl.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #elif defined(__FreeBSD__)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     #include <sys/sysctl.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -22,7 +25,7 @@ static void getExePath(FFPlatform* platform)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     #ifdef __linux__
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         ssize_t exePathLen = readlink("/proc/self/exe", exePath, sizeof(exePath) - 1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         exePath[exePathLen] = '\0';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    #elif defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    #elif defined(__APPLE__) && (MAC_OS_X_VERSION_MIN_REQUIRED >= 1050)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         int exePathLen = proc_pidpath((int) getpid(), exePath, sizeof(exePath));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     #elif defined(__FreeBSD__)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         size_t exePathLen = sizeof(exePath);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-2.46.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/files/0018-Revert-some-breakages.patch b/sysutils/fastfetch/files/0018-Revert-some-breakages.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 81c3d0519cb..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/fastfetch/files/0018-Revert-some-breakages.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,517 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From a7d9d6274e96ef4a269a8dd15d54390795beef67 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Sergey Fedorov <barracuda@macos-powerpc.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Thu, 12 Sep 2024 08:17:48 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 18/21] Revert some breakages
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/detection/displayserver/displayserver.c   |  35 +++--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/detection/displayserver/displayserver.h   |  14 +-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- .../displayserver/displayserver_apple.c       | 138 +++++++-----------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/detection/font/font_apple.m               |   3 +-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/detection/monitor/monitor.h               |   1 -
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/detection/monitor/monitor_apple.m         |  19 +--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/modules/display/display.c                 |  63 ++------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/modules/monitor/monitor.c                 |   8 +-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 8 files changed, 98 insertions(+), 183 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/detection/displayserver/displayserver.c b/src/detection/displayserver/displayserver.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index ddc97396..20a36623 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/detection/displayserver/displayserver.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/detection/displayserver/displayserver.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,6 +1,24 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "displayserver.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--FFDisplayResult* ffdsAppendDisplay(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+uint32_t ffdsParseRefreshRate(int32_t refreshRate)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if(refreshRate <= 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    int remainder = refreshRate % 5;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if(remainder >= 3)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        refreshRate += (5 - remainder);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        refreshRate -= remainder;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    // All other typicall refresh rates are dividable by 5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if(refreshRate == 145)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        refreshRate = 144;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    return (uint32_t) refreshRate;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+bool ffdsAppendDisplay(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     FFDisplayServerResult* result,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     uint32_t width,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     uint32_t height,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11,12 +29,10 @@ FFDisplayResult* ffdsAppendDisplay(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     FFstrbuf* name,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     FFDisplayType type,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     bool primary,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    uint64_t id,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    uint32_t physicalWidth,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    uint32_t physicalHeight)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    uint64_t id)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if(width == 0 || height == 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        return NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     FFDisplayResult* display = ffListAdd(&result->displays);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     display->width = width;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -27,15 +43,10 @@ FFDisplayResult* ffdsAppendDisplay(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     display->rotation = rotation;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ffStrbufInitMove(&display->name, name);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     display->type = type;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    display->id = id;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    display->physicalWidth = physicalWidth;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    display->physicalHeight = physicalHeight;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     display->primary = primary;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    display->id = id;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    display->bitDepth = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    display->hdrEnabled = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    return display;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    return true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void ffConnectDisplayServerImpl(FFDisplayServerResult* ds);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/detection/displayserver/displayserver.h b/src/detection/displayserver/displayserver.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 127dbc5f..ffe46466 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/detection/displayserver/displayserver.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/detection/displayserver/displayserver.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -58,12 +58,8 @@ typedef struct FFDisplayResult
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     FFstrbuf name;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     FFDisplayType type;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     uint32_t rotation;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    uint64_t id; // platform dependent
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    uint32_t physicalWidth;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    uint32_t physicalHeight;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     bool primary;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    uint8_t bitDepth;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    bool hdrEnabled;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    uint64_t id; // platform dependent
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } FFDisplayResult;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- typedef struct FFDisplayServerResult
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -78,7 +74,9 @@ typedef struct FFDisplayServerResult
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const FFDisplayServerResult* ffConnectDisplayServer();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--FFDisplayResult* ffdsAppendDisplay(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+uint32_t ffdsParseRefreshRate(int32_t refreshRate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+bool ffdsAppendDisplay(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     FFDisplayServerResult* result,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     uint32_t width,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     uint32_t height,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -89,6 +87,4 @@ FFDisplayResult* ffdsAppendDisplay(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     FFstrbuf* name,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     FFDisplayType type,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     bool primary,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    uint64_t id,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    uint32_t physicalWidth,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    uint32_t physicalHeight);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    uint64_t id);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/detection/displayserver/displayserver_apple.c b/src/detection/displayserver/displayserver_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index ab2abe5e..4b6b6fe4 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/detection/displayserver/displayserver_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/detection/displayserver/displayserver_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,111 +1,77 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "displayserver.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "util/apple/cf_helpers.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#include "util/stringUtils.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include "common/sysctl.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <stdlib.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <ctype.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <string.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <assert.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#include <CoreGraphics/CGDirectDisplay.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#include <CoreVideo/CVDisplayLink.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <ApplicationServices/ApplicationServices.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#ifdef MAC_OS_X_VERSION_10_15
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--extern CFDictionaryRef CoreDisplay_DisplayCreateInfoDictionary(CGDirectDisplayID display) __attribute__((weak_import));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--extern Boolean CoreDisplay_Display_IsHDRModeEnabled(CGDirectDisplayID display) __attribute__((weak_import));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#include <IOKit/graphics/IOGraphicsLib.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+typedef union
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    uint8_t rawData[0xDC];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    struct
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        uint32_t mode;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        uint32_t flags;           // 0x4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        uint32_t width;           // 0x8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        uint32_t height;  // 0xC
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        uint32_t depth;           // 0x10
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        uint32_t dc2[42];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        uint16_t dc3;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        uint16_t freq;            // 0xBC
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        uint32_t dc4[4];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        float density;            // 0xD0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    } derived;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} modes_D4;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+void CGSGetCurrentDisplayMode(CGDirectDisplayID display, int* modeNum);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+void CGSGetDisplayModeDescriptionOfLength(CGDirectDisplayID display, int idx, modes_D4* mode, int length);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void detectDisplays(FFDisplayServerResult* ds)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    CGDirectDisplayID screens[128];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    uint32_t screenCount;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    if(CGGetOnlineDisplayList(sizeof(screens) / sizeof(screens[0]), screens, &screenCount) != kCGErrorSuccess)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    CGDisplayCount screenCount;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    CGGetOnlineDisplayList(INT_MAX, NULL, &screenCount);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if(screenCount == 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    CGDirectDisplayID* screens = malloc(screenCount * sizeof(CGDirectDisplayID));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    CGGetOnlineDisplayList(INT_MAX, screens, &screenCount);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     for(uint32_t i = 0; i < screenCount; i++)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        CGDirectDisplayID screen = screens[i];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        CGDisplayModeRef mode = CGDisplayCopyDisplayMode(screen);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        if(mode)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            //https://github.com/glfw/glfw/commit/aab08712dd8142b642e2042e7b7ba563acd07a45
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            double refreshRate = CGDisplayModeGetRefreshRate(mode);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        int modeID;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        CGSGetCurrentDisplayMode(screens[i], &modeID);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        modes_D4 mode;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        CGSGetDisplayModeDescriptionOfLength(screens[i], modeID, &mode, 0xD4);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            if (refreshRate == 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                CVDisplayLinkRef link;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                if(CVDisplayLinkCreateWithCGDisplay(screen, &link) == kCVReturnSuccess)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                    const CVTime time = CVDisplayLinkGetNominalOutputVideoRefreshPeriod(link);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                    if (!(time.flags & kCVTimeIsIndefinite))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                        refreshRate = time.timeScale / (double) time.timeValue; //59.97...
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                    CVDisplayLinkRelease(link);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            FF_STRBUF_AUTO_DESTROY name = ffStrbufCreate();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            CFDictionaryRef FF_CFTYPE_AUTO_RELEASE displayInfo = NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            #ifdef MAC_OS_X_VERSION_10_15
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            if(CoreDisplay_DisplayCreateInfoDictionary)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                displayInfo = CoreDisplay_DisplayCreateInfoDictionary(screen);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            #else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                io_service_t servicePort = CGDisplayIOServicePort(screen);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                displayInfo = IODisplayCreateInfoDictionary(servicePort, kIODisplayOnlyPreferredName);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            if(displayInfo)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                CFDictionaryRef productNames;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                if(!ffCfDictGetDict(displayInfo, CFSTR(kDisplayProductName), &productNames))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                    ffCfDictGetString(productNames, CFSTR("en_US"), &name);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            CGSize size = CGDisplayScreenSize(screen);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            FFDisplayResult* display = ffdsAppendDisplay(ds,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                (uint32_t)CGDisplayModeGetPixelWidth(mode),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                (uint32_t)CGDisplayModeGetPixelHeight(mode),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                refreshRate,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                (uint32_t)CGDisplayModeGetWidth(mode),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                (uint32_t)CGDisplayModeGetHeight(mode),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                (uint32_t)CGDisplayRotation(screen),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                &name,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                CGDisplayIsBuiltin(screen) ? FF_DISPLAY_TYPE_BUILTIN : FF_DISPLAY_TYPE_EXTERNAL,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                CGDisplayIsMain(screen),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                (uint64_t)screen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                (uint32_t) (size.width + 0.5),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                (uint32_t) (size.height + 0.5)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            );
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            if (display)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                // https://stackoverflow.com/a/33519316/9976392
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                // Also shitty, but better than parsing `CFCopyDescription(mode)`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                CFDictionaryRef dict = (CFDictionaryRef) *((int64_t *)mode + 2);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                if (CFGetTypeID(dict) == CFDictionaryGetTypeID())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                    int32_t bitDepth;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                    ffCfDictGetInt(dict, kCGDisplayBitsPerSample, &bitDepth);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                    display->bitDepth = (uint8_t) bitDepth;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                #ifdef MAC_OS_X_VERSION_10_15
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                if (CoreDisplay_Display_IsHDRModeEnabled)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                    display->hdrEnabled = CoreDisplay_Display_IsHDRModeEnabled(screen);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            CGDisplayModeRelease(mode);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        CGDisplayRelease(screen);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        double refreshRate = ffdsParseRefreshRate(mode.derived.freq);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        ffdsAppendDisplay(ds,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            mode.derived.width,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            mode.derived.height,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            refreshRate,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            0,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            0,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            0,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            NULL,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            FF_DISPLAY_TYPE_UNKNOWN,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            true,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        );
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    free(screens);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void ffConnectDisplayServerImpl(FFDisplayServerResult* ds)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1080
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         FF_CFTYPE_AUTO_RELEASE CFMachPortRef port = CGWindowServerCreateServerPort();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        FF_CFTYPE_AUTO_RELEASE CFMachPortRef port = CGWindowServerCFMachPort();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         if (port)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             ffStrbufSetStatic(&ds->wmProcessName, "WindowServer");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/detection/font/font_apple.m b/src/detection/font/font_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index a2c9fb74..80874ced 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/detection/font/font_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/detection/font/font_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2,7 +2,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "common/io/io.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "font.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#import <AppKit/NSFont.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <Foundation/Foundation.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <AppKit/NSFont.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/detection/monitor/monitor.h b/src/detection/monitor/monitor.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 4066f117..a6150e5d 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/detection/monitor/monitor.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/detection/monitor/monitor.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -5,7 +5,6 @@ typedef struct FFMonitorResult
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     FFstrbuf name;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     uint32_t width; // native / maximum resolution, in pixels
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     uint32_t height; // native / maximum resolution, in pixels
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    double refreshRate;// maximum refresh rate in native resolution, in Hz
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     uint32_t physicalWidth; // in mm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     uint32_t physicalHeight; // in mm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     bool hdrCompatible;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/detection/monitor/monitor_apple.m b/src/detection/monitor/monitor_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index c72c7f55..5c6cdb0d 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/detection/monitor/monitor_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/detection/monitor/monitor_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -117,22 +117,9 @@ const char* ffDetectMonitor(FFlist* results)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         monitor->physicalHeight = (uint32_t) (size.height + 0.5);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         monitor->hdrCompatible = CFDictionaryContainsKey(displayInfo, CFSTR("ReferencePeakHDRLuminance")) ||
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             detectHdrSupportWithNSScreen(display);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        monitor->serial = CGDisplaySerialNumber((CGDirectDisplayID) display->id);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        FF_CFTYPE_AUTO_RELEASE CFArrayRef modes = CGDisplayCopyAllDisplayModes((CGDirectDisplayID) display->id, NULL);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        double maxRefreshRate = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        for (uint32_t j = 0; j < CFArrayGetCount(modes); ++j)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            CGDisplayModeRef mode = (CGDisplayModeRef) CFArrayGetValueAtIndex(modes, j);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            if (CGDisplayModeGetWidth(mode) == (uint32_t) width && CGDisplayModeGetHeight(mode) == (uint32_t) height)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                double refreshRate = CGDisplayModeGetRefreshRate(mode);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                if (refreshRate > maxRefreshRate) maxRefreshRate = refreshRate;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        monitor->refreshRate = maxRefreshRate;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        int64_t year, week;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        int64_t serial, year, week;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if (ffCfDictGetInt64(displayInfo, CFSTR("DisplaySerialNumber"), &serial) == NULL)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            monitor->serial = (uint32_t) (uint64_t) serial;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         if (ffCfDictGetInt64(displayInfo, CFSTR("DisplayYearManufacture"), &year) == NULL)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             monitor->manufactureYear = (uint16_t) year;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         if (ffCfDictGetInt64(displayInfo, CFSTR("DisplayWeekManufacture"), &week) == NULL)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/modules/display/display.c b/src/modules/display/display.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 4e3f67eb..277ad49d 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/modules/display/display.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/modules/display/display.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -4,9 +4,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "modules/display/display.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "util/stringUtils.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#include <math.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#define FF_DISPLAY_NUM_FORMAT_ARGS 15
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define FF_DISPLAY_NUM_FORMAT_ARGS 9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static int sortByNameAsc(FFDisplayResult* a, FFDisplayResult* b)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -99,47 +97,35 @@ void ffPrintDisplay(FFDisplayOptions* options)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             }));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        FF_STRBUF_AUTO_DESTROY buffer = ffStrbufCreate();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        double inch = sqrt(result->physicalWidth * result->physicalWidth + result->physicalHeight * result->physicalHeight) / 25.4;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         if(options->moduleArgs.outputFormat.length == 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             ffPrintLogoAndKey(key.chars, 0, &options->moduleArgs, FF_PRINT_TYPE_NO_CUSTOM_KEY);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            ffStrbufAppendF(&buffer, "%ix%i", result->width, result->height);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            printf("%ix%i", result->width, result->height);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             if(result->refreshRate > 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 if(options->preciseRefreshRate)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                    ffStrbufAppendF(&buffer, " @ %g Hz", ((int) (result->refreshRate * 1000 + 0.5)) / 1000.0);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    printf(" @ %gHz", ((int) (result->refreshRate * 1000 + 0.5)) / 1000.0);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                    ffStrbufAppendF(&buffer, " @ %i Hz", (uint32_t) (result->refreshRate + 0.5));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    printf(" @ %iHz", (uint32_t) (result->refreshRate + 0.5));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             if(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 result->scaledWidth > 0 && result->scaledWidth != result->width &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 result->scaledHeight > 0 && result->scaledHeight != result->height)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                ffStrbufAppendF(&buffer, " (as %ix%i)", result->scaledWidth, result->scaledHeight);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            if (inch > 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                ffStrbufAppendF(&buffer, " in %i″", (uint32_t) (inch + 0.5));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                printf(" (as %ix%i)", result->scaledWidth, result->scaledHeight);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             if(result->type != FF_DISPLAY_TYPE_UNKNOWN)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                ffStrbufAppendS(&buffer, result->type == FF_DISPLAY_TYPE_BUILTIN ? " [Built-in]" : " [External]");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            if (result->hdrEnabled)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                ffStrbufAppendS(&buffer, " [HDR]");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                fputs(result->type == FF_DISPLAY_TYPE_BUILTIN ? " [Built-in]" : " [External]", stdout);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             if(moduleIndex > 0 && result->primary)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                ffStrbufAppendS(&buffer, " *");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                printf(" *");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            ffStrbufPutTo(&buffer, stdout);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            ffStrbufClear(&buffer);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            putchar('\n');
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            double ppi = sqrt(result->width * result->width + result->height * result->height) / inch;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             char refreshRate[16];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             if(result->refreshRate > 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -160,12 +146,6 @@ void ffPrintDisplay(FFDisplayOptions* options)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 FF_FORMAT_ARG(displayType, "type"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 FF_FORMAT_ARG(result->rotation, "rotation"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 FF_FORMAT_ARG(result->primary, "is-primary"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                FF_FORMAT_ARG(result->physicalWidth, "physical-width"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                FF_FORMAT_ARG(result->physicalHeight, "physical-height"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                FF_FORMAT_ARG(inch, "inch"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                FF_FORMAT_ARG(ppi, "ppi"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                FF_FORMAT_ARG(result->bitDepth, "bit-depth"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                FF_FORMAT_ARG(result->hdrEnabled, "hdr-enabled"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             }));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -316,26 +296,14 @@ void ffGenerateDisplayJsonResult(FF_MAYBE_UNUSED FFDisplayOptions* options, yyjs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     FF_LIST_FOR_EACH(FFDisplayResult, item, dsResult->displays)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         yyjson_mut_val* obj = yyjson_mut_arr_add_obj(doc, arr);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        yyjson_mut_obj_add_uint(doc, obj, "width", item->width);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        yyjson_mut_obj_add_uint(doc, obj, "height", item->height);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         yyjson_mut_obj_add_uint(doc, obj, "id", item->id);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         yyjson_mut_obj_add_strbuf(doc, obj, "name", &item->name);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         yyjson_mut_obj_add_bool(doc, obj, "primary", item->primary);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        yyjson_mut_val* output = yyjson_mut_obj_add_obj(doc, obj, "output");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        yyjson_mut_obj_add_uint(doc, output, "width", item->width);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        yyjson_mut_obj_add_uint(doc, output, "height", item->height);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        yyjson_mut_val* scaled = yyjson_mut_obj_add_obj(doc, obj, "scaled");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        yyjson_mut_obj_add_uint(doc, scaled, "width", item->scaledWidth);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        yyjson_mut_obj_add_uint(doc, scaled, "height", item->scaledHeight);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        yyjson_mut_val* physical = yyjson_mut_obj_add_obj(doc, obj, "physical");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        yyjson_mut_obj_add_uint(doc, physical, "width", item->physicalWidth);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        yyjson_mut_obj_add_uint(doc, physical, "height", item->physicalHeight);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        yyjson_mut_obj_add_real(doc, obj, "refreshRate", item->refreshRate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        yyjson_mut_obj_add_uint(doc, obj, "rotation", item->rotation);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        yyjson_mut_obj_add_uint(doc, obj, "bitDepth", item->bitDepth);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        yyjson_mut_obj_add_bool(doc, obj, "hdrEnabled", item->hdrEnabled);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        yyjson_mut_obj_add_uint(doc, obj, "scaledHeight", item->scaledHeight);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        yyjson_mut_obj_add_uint(doc, obj, "scaledWidth", item->scaledWidth);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         switch (item->type)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -364,12 +332,6 @@ void ffPrintDisplayHelpFormat(void)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         "Screen type (builtin, external or unknown) - type",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         "Screen rotation (in degrees) - rotation",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         "True if being the primary screen - is-primary",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        "Screen physical width (in millimeters) - physical-width",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        "Screen physical height (in millimeters) - physical-height",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        "Physical diagonal length in inches - inch",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        "Pixels per inch (PPI) - ppi",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        "Bits per color channel - bit-depth",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        "True if high dynamic range (HDR) is enabled - hdr-enabled",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/modules/monitor/monitor.c b/src/modules/monitor/monitor.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index a2d43cff..fd823fb5 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/modules/monitor/monitor.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/modules/monitor/monitor.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -6,7 +6,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <math.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#define FF_MONITOR_NUM_FORMAT_ARGS 11
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define FF_MONITOR_NUM_FORMAT_ARGS 10
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void ffPrintMonitor(FFMonitorOptions* options)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -53,8 +53,6 @@ void ffPrintMonitor(FFMonitorOptions* options)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             ffPrintLogoAndKey(key.chars, 0, &options->moduleArgs, FF_PRINT_TYPE_NO_CUSTOM_KEY);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             printf("%ux%u px", display->width, display->height);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            if (display->refreshRate > 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                printf(" @ %g Hz", ((int) (display->refreshRate * 1000 + 0.5)) / 1000.0);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             if (inch > 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 printf(" - %ux%u mm (%.2f inches, %.2f ppi)\n", display->physicalWidth, display->physicalHeight, inch, ppi);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -82,7 +80,6 @@ void ffPrintMonitor(FFMonitorOptions* options)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 FF_FORMAT_ARG(display->manufactureYear, "manufacture-year"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 FF_FORMAT_ARG(display->manufactureWeek, "manufacture-week"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 FF_FORMAT_ARG(buf, "serial"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                FF_FORMAT_ARG(display->refreshRate, "refresh-rate"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             }));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -157,8 +154,6 @@ void ffGenerateMonitorJsonResult(FF_MAYBE_UNUSED FFMonitorOptions* options, yyjs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             yyjson_mut_obj_add_uint(doc, physical, "height", item->physicalHeight);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             yyjson_mut_obj_add_uint(doc, physical, "width", item->physicalWidth);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            yyjson_mut_obj_add_real(doc, obj, "refreshRate", item->refreshRate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             if (item->manufactureYear)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 yyjson_mut_val* manufactureDate = yyjson_mut_obj_add_obj(doc, obj, "manufactureDate");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -196,7 +191,6 @@ void ffPrintMonitorHelpFormat(void)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         "Year of manufacturing - manufacture-year",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         "Nth week of manufacturing in the year - manufacture-week",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         "Serial number - serial",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        "Maximum refresh rate in Hz - refresh-rate",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-2.46.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/files/0019-CMakeLists-adjust-for-legacy-macOS.patch b/sysutils/fastfetch/files/0019-CMakeLists-adjust-for-legacy-macOS.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 3fb554459e9..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/fastfetch/files/0019-CMakeLists-adjust-for-legacy-macOS.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,117 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From dc743cff581b33c468536d4267e555da2a3789de Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Sergey Fedorov <barracuda@macos-powerpc.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Tue, 27 Aug 2024 16:06:55 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 19/21] CMakeLists: adjust for legacy macOS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CMakeLists.txt | 36 ++++++++++++++----------------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 14 insertions(+), 22 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/CMakeLists.txt b/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 48b09289..0b88ab15 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -122,10 +122,10 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     message(STATUS "Threads type: disabled")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- endif()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--set(WARNING_FLAGS "-Wall -Wextra -Wconversion -Werror=uninitialized -Werror=return-type")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+set(WARNING_FLAGS "-Wall -Wextra -Wconversion -Wno-error=uninitialized -Werror=return-type")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set(CMAKE_C_STANDARD 11)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARNING_FLAGS} -Werror=incompatible-pointer-types -Werror=implicit-function-declaration -Werror=int-conversion")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARNING_FLAGS} -Wno-error=incompatible-pointer-types -Wno-error=implicit-function-declaration -Wno-error=int-conversion")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if(WIN32 OR ENABLE_DIRECTX_HEADERS)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     enable_language(CXX)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -651,11 +651,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/common/sysctl.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/battery/battery_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/bios/bios_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        src/detection/bluetooth/bluetooth_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        src/detection/bluetoothradio/bluetoothradio_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        src/detection/bluetooth/bluetooth_nosupport.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        src/detection/bluetoothradio/bluetoothradio_nosupport.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/board/board_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/bootmgr/bootmgr_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        src/detection/brightness/brightness_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        src/detection/brightness/brightness_nosupport.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/btrfs/btrfs_nosupport.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/chassis/chassis_nosupport.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/cpu/cpu_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -665,7 +665,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/disk/disk_bsd.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/dns/dns_linux.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/physicaldisk/physicaldisk_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        src/detection/physicalmemory/physicalmemory_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        src/detection/physicalmemory/physicalmemory_nosupport.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/diskio/diskio_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/displayserver/displayserver_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/font/font_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -679,15 +679,15 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/libc/libc_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/locale/locale_linux.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/localip/localip_linux.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        src/detection/gamepad/gamepad_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        src/detection/media/media_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        src/detection/gamepad/gamepad_nosupport.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        src/detection/media/media_nosupport.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/memory/memory_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/monitor/monitor_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/netio/netio_bsd.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/opengl/opengl_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/os/os_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/packages/packages_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        src/detection/poweradapter/poweradapter_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        src/detection/poweradapter/poweradapter_nosupport.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/processes/processes_bsd.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/sound/sound_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/swap/swap_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -698,8 +698,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/theme/theme_nosupport.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/uptime/uptime_bsd.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/users/users_linux.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        src/detection/wallpaper/wallpaper_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        src/detection/wifi/wifi_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        src/detection/wallpaper/wallpaper_nosupport.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        src/detection/wifi/wifi_nosupport.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/wm/wm_apple.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/de/de_nosupport.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         src/detection/wmtheme/wmtheme_apple.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -908,7 +908,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     # Used for dlopen finding dylibs installed by homebrew
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     # `/opt/homebrew/lib` is not on in dlopen search path by default
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if(APPLE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath,/opt/homebrew/lib -Wl,-rpath,/usr/local/lib")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath,/opt/local/lib")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     endif()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- endif()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1147,25 +1147,17 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- elseif(APPLE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     target_link_libraries(libfastfetch
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        PRIVATE "-framework AVFoundation"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         PRIVATE "-framework Cocoa"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         PRIVATE "-framework CoreFoundation"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         PRIVATE "-framework CoreAudio"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         PRIVATE "-framework CoreMedia"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         PRIVATE "-framework CoreVideo"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        PRIVATE "-framework CoreWLAN"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         PRIVATE "-framework IOBluetooth"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         PRIVATE "-framework IOKit"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        PRIVATE "-framework Metal"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         PRIVATE "-framework OpenGL"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        PRIVATE "-framework OpenCL"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         PRIVATE "-framework SystemConfiguration"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        PRIVATE "-weak_framework CoreDisplay"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        PRIVATE "-F /System/Library/PrivateFrameworks"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        PRIVATE "-weak_framework DisplayServices"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        PRIVATE "-weak_framework MediaRemote"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        PRIVATE "-weak_framework Apple80211"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        PRIVATE "-framework DisplayServices"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        PRIVATE "-F/System/Library/PrivateFrameworks"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- elseif(WIN32)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     target_compile_definitions(libfastfetch PRIVATE -D_WIN32_WINNT=0x0601)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/fastfetch/files/0021-CMakeLists-do-not-use-Linux-ldflag-on-macOS.patch b/sysutils/fastfetch/files/0021-CMakeLists-do-not-use-Linux-ldflag-on-macOS.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 971a9b74993..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/fastfetch/files/0021-CMakeLists-do-not-use-Linux-ldflag-on-macOS.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,25 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From c0010a09b0b311b67ffeeef089701f0a3ee7caf9 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Sergey Fedorov <barracuda@macos-powerpc.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Sat, 7 Sep 2024 18:06:12 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 21/21] CMakeLists: do not use Linux ldflag on macOS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CMakeLists.txt | 2 +-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 1 insertion(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/CMakeLists.txt b/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0b88ab15..ed062e61 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -137,7 +137,7 @@ if(ENABLE_ASAN)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- endif()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${FASTFETCH_FLAGS_DEBUG}")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${FASTFETCH_FLAGS_DEBUG} -fstack-protector-all -fno-delete-null-pointer-checks")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--if(NOT WIN32)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if(NOT WIN32 AND NOT APPLE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -rdynamic")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- endif()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-2.46.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span></pre><pre style='margin:0'>

</pre>