aboutsummaryrefslogtreecommitdiff
path: root/www/ladybird/files/patch-Userland_Libraries_LibCore_Environment.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'www/ladybird/files/patch-Userland_Libraries_LibCore_Environment.cpp')
-rw-r--r--www/ladybird/files/patch-Userland_Libraries_LibCore_Environment.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/www/ladybird/files/patch-Userland_Libraries_LibCore_Environment.cpp b/www/ladybird/files/patch-Userland_Libraries_LibCore_Environment.cpp
new file mode 100644
index 000000000000..b1582a11e36a
--- /dev/null
+++ b/www/ladybird/files/patch-Userland_Libraries_LibCore_Environment.cpp
@@ -0,0 +1,34 @@
+--- Userland/Libraries/LibCore/Environment.cpp.orig 2024-05-05 05:45:42 UTC
++++ Userland/Libraries/LibCore/Environment.cpp
+@@ -13,7 +13,7 @@
+ #if defined(AK_OS_MACOS) || defined(AK_OS_IOS)
+ # include <crt_externs.h>
+ #else
+-extern char** environ;
++extern "C" char** environ;
+ #endif
+
+ namespace Core::Environment {
+@@ -93,7 +93,7 @@ Optional<StringView> get(StringView name, [[maybe_unus
+ builder.append('\0');
+ // Note the explicit null terminators above.
+
+-#if defined(AK_OS_MACOS) || defined(AK_OS_ANDROID)
++#if defined(AK_OS_MACOS) || defined(AK_OS_ANDROID) || defined(__FreeBSD__) && __FreeBSD__ < 14
+ char* result = ::getenv(builder.string_view().characters_without_null_termination());
+ #else
+ char* result;
+@@ -158,10 +158,12 @@ ErrorOr<void> clear()
+ for (size_t environ_size = 0; environment[environ_size]; ++environ_size) {
+ environment[environ_size] = NULL;
+ }
+-#else
++#elif __FreeBSD__ >= 14
+ auto rc = ::clearenv();
+ if (rc < 0)
+ return Error::from_errno(errno);
++#else
++ environ = NULL;
+ #endif
+ return {};
+ }