diff --git a/Userland/Utilities/CMakeLists.txt b/Userland/Utilities/CMakeLists.txt index 54b461226f..999c54c7cf 100644 --- a/Userland/Utilities/CMakeLists.txt +++ b/Userland/Utilities/CMakeLists.txt @@ -86,7 +86,7 @@ target_link_libraries(dirname LibMain) target_link_libraries(disasm LibX86) target_link_libraries(dmesg LibMain) target_link_libraries(echo LibMain) -target_link_libraries(expr LibRegex) +target_link_libraries(expr LibRegex LibMain) target_link_libraries(fdtdump LibDeviceTree LibMain) target_link_libraries(file LibGfx LibIPC LibCompress LibMain) target_link_libraries(find LibMain) diff --git a/Userland/Utilities/expr.cpp b/Userland/Utilities/expr.cpp index 85471172e2..a724e3c46d 100644 --- a/Userland/Utilities/expr.cpp +++ b/Userland/Utilities/expr.cpp @@ -11,6 +11,8 @@ #include #include #include +#include +#include #include #include #include @@ -571,24 +573,17 @@ NonnullOwnPtr Expression::parse(Queue& args, Precedence fail("Invalid expression"); } -int main(int argc, char** argv) +ErrorOr serenity_main(Main::Arguments arguments) { - if (pledge("stdio", nullptr) < 0) { - perror("pledge"); - return 3; - } + TRY(Core::System::pledge("stdio"sv)); + TRY(Core::System::unveil(nullptr, nullptr)); - if (unveil(nullptr, nullptr) < 0) { - perror("unveil"); - return 3; - } - - if ((argc == 2 && "--help"sv == argv[1]) || argc == 1) + if ((arguments.strings.size() == 2 && "--help"sv == arguments.strings[1]) || arguments.strings.size() == 1) print_help_and_exit(); Queue args; - for (int i = 1; i < argc; ++i) - args.enqueue(argv[i]); + for (size_t i = 1; i < arguments.strings.size(); ++i) + args.enqueue(arguments.strings[i]); auto expression = Expression::parse(args); if (!args.is_empty())