From dbcccde0622425f7a9eb3c44f0439075279b0559 Mon Sep 17 00:00:00 2001 From: Lucas CHOLLET Date: Thu, 13 Jan 2022 21:37:31 +0100 Subject: [PATCH] hexdump: Port to LibMain --- Userland/Utilities/CMakeLists.txt | 1 + Userland/Utilities/hexdump.cpp | 17 ++++++----------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/Userland/Utilities/CMakeLists.txt b/Userland/Utilities/CMakeLists.txt index 85ad8e0d90..71ede6355a 100644 --- a/Userland/Utilities/CMakeLists.txt +++ b/Userland/Utilities/CMakeLists.txt @@ -106,6 +106,7 @@ target_link_libraries(groups LibMain) target_link_libraries(gunzip LibCompress LibMain) target_link_libraries(gzip LibCompress LibMain) target_link_libraries(head LibMain) +target_link_libraries(hexdump LibMain) target_link_libraries(id LibMain) target_link_libraries(ini LibMain) target_link_libraries(jp LibMain) diff --git a/Userland/Utilities/hexdump.cpp b/Userland/Utilities/hexdump.cpp index ea2cee9bb2..8e53001bea 100644 --- a/Userland/Utilities/hexdump.cpp +++ b/Userland/Utilities/hexdump.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include #include @@ -18,7 +19,7 @@ enum class State { SkipPrint }; -int main(int argc, char** argv) +ErrorOr serenity_main(Main::Arguments args) { Core::ArgsParser args_parser; const char* path = nullptr; @@ -26,20 +27,14 @@ int main(int argc, char** argv) args_parser.add_positional_argument(path, "Input", "input", Core::ArgsParser::Required::No); args_parser.add_option(verbose, "Display all input data", "verbose", 'v'); - args_parser.parse(argc, argv); + args_parser.parse(args); RefPtr file; - if (!path) { + if (!path) file = Core::File::standard_input(); - } else { - auto file_or_error = Core::File::open(path, Core::OpenMode::ReadOnly); - if (file_or_error.is_error()) { - warnln("Failed to open {}: {}", path, file_or_error.error()); - return 1; - } - file = file_or_error.value(); - } + else + file = TRY(Core::File::open(path, Core::OpenMode::ReadOnly)); auto print_line = [](u8* buf, size_t size) { VERIFY(size <= LINE_LENGTH_BYTES);