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);