From 6655de189f97a95a341488b4c8d7c97a270b4c13 Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Tue, 7 Nov 2023 11:11:39 -0500 Subject: [PATCH] LibCore: Add a Core::System wrapper around `unsetenv` --- Userland/Libraries/LibCore/System.cpp | 13 +++++++++++++ Userland/Libraries/LibCore/System.h | 1 + 2 files changed, 14 insertions(+) diff --git a/Userland/Libraries/LibCore/System.cpp b/Userland/Libraries/LibCore/System.cpp index 935a4b73f5..08434654be 100644 --- a/Userland/Libraries/LibCore/System.cpp +++ b/Userland/Libraries/LibCore/System.cpp @@ -1639,6 +1639,19 @@ ErrorOr setenv(StringView name, StringView value, bool overwrite) return {}; } +ErrorOr unsetenv(StringView name) +{ + auto builder = TRY(StringBuilder::create()); + TRY(builder.try_append(name)); + TRY(builder.try_append('\0')); + + // Note the explicit null terminator above. + auto rc = ::unsetenv(builder.string_view().characters_without_null_termination()); + if (rc < 0) + return Error::from_errno(errno); + return {}; +} + ErrorOr putenv(StringView env) { #ifdef AK_OS_SERENITY diff --git a/Userland/Libraries/LibCore/System.h b/Userland/Libraries/LibCore/System.h index 08e9f20e8f..716b66ecf6 100644 --- a/Userland/Libraries/LibCore/System.h +++ b/Userland/Libraries/LibCore/System.h @@ -229,6 +229,7 @@ ErrorOr setgroups(ReadonlySpan); ErrorOr mknod(StringView pathname, mode_t mode, dev_t dev); ErrorOr mkfifo(StringView pathname, mode_t mode); ErrorOr setenv(StringView, StringView, bool); +ErrorOr unsetenv(StringView); ErrorOr putenv(StringView); ErrorOr posix_openpt(int flags); ErrorOr grantpt(int fildes);