diff --git a/Userland/Libraries/LibCore/System.h b/Userland/Libraries/LibCore/System.h index d9ca3f6402..a3b4072899 100644 --- a/Userland/Libraries/LibCore/System.h +++ b/Userland/Libraries/LibCore/System.h @@ -55,6 +55,29 @@ inline ErrorOr unveil(StringView, StringView) inline ErrorOr pledge(StringView, StringView = {}) { return {}; } #endif +template +ALWAYS_INLINE ErrorOr pledge(char const (&promises)[N]) +{ + return pledge(StringView { promises, N - 1 }); +} + +template +ALWAYS_INLINE ErrorOr pledge(char const (&promises)[NPromises], char const (&execpromises)[NExecPromises]) +{ + return pledge(StringView { promises, NPromises - 1 }, StringView { execpromises, NExecPromises - 1 }); +} + +template +ALWAYS_INLINE ErrorOr unveil(char const (&path)[NPath], char const (&permissions)[NPermissions]) +{ + return unveil(StringView { path, NPath - 1 }, StringView { permissions, NPermissions - 1 }); +} + +ALWAYS_INLINE ErrorOr unveil(std::nullptr_t, std::nullptr_t) +{ + return unveil(StringView {}, StringView {}); +} + #ifndef AK_OS_BSD_GENERIC ErrorOr> getspent(); ErrorOr> getspnam(StringView name);