From 5c15b97ca42f225df3f35aa45d964848e53e3733 Mon Sep 17 00:00:00 2001 From: Kenneth Myhra Date: Sat, 27 Nov 2021 21:33:08 +0100 Subject: [PATCH] cut: Port to LibMain :^) --- Userland/Utilities/CMakeLists.txt | 1 + Userland/Utilities/cut.cpp | 14 +++++++------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Userland/Utilities/CMakeLists.txt b/Userland/Utilities/CMakeLists.txt index 421fccfe7b..612747cbf1 100644 --- a/Userland/Utilities/CMakeLists.txt +++ b/Userland/Utilities/CMakeLists.txt @@ -76,6 +76,7 @@ target_link_libraries(cp LibMain) target_link_libraries(cpp-lexer LibMain) target_link_libraries(cpp-parser LibMain) target_link_libraries(cpp-preprocessor LibMain) +target_link_libraries(cut LibMain) target_link_libraries(diff LibDiff) target_link_libraries(disasm LibX86) target_link_libraries(dmesg LibMain) diff --git a/Userland/Utilities/cut.cpp b/Userland/Utilities/cut.cpp index c035c5b38b..792ae3be20 100644 --- a/Userland/Utilities/cut.cpp +++ b/Userland/Utilities/cut.cpp @@ -9,9 +9,9 @@ #include #include #include +#include #include #include -#include struct Range { size_t m_from { 1 }; @@ -147,7 +147,7 @@ static void process_line_fields(char* line, size_t length, const Vector& outln("{}", String::join(delimiter, output_fields)); } -int main(int argc, char** argv) +ErrorOr serenity_main(Main::Arguments arguments) { String byte_list = ""; String fields_list = ""; @@ -160,7 +160,7 @@ int main(int argc, char** argv) args_parser.add_option(byte_list, "select only these bytes", "bytes", 'b', "list"); args_parser.add_option(fields_list, "select only these fields", "fields", 'f', "list"); args_parser.add_option(delimiter, "set a custom delimiter", "delimiter", 'd', "delimiter"); - args_parser.parse(argc, argv); + args_parser.parse(arguments); bool selected_bytes = (byte_list != ""); bool selected_fields = (fields_list != ""); @@ -169,19 +169,19 @@ int main(int argc, char** argv) if (selected_options_count == 0) { warnln("cut: you must specify a list of bytes, or fields"); - args_parser.print_usage(stderr, argv[0]); + args_parser.print_usage(stderr, arguments.strings[0].characters_without_null_termination()); return 1; } if (selected_options_count > 1) { warnln("cut: you must specify only one of bytes, or fields"); - args_parser.print_usage(stderr, argv[0]); + args_parser.print_usage(stderr, arguments.strings[0].characters_without_null_termination()); return 1; } if (delimiter.length() != 1) { warnln("cut: the delimiter must be a single character"); - args_parser.print_usage(stderr, argv[0]); + args_parser.print_usage(stderr, arguments.strings[0].characters_without_null_termination()); return 1; } @@ -200,7 +200,7 @@ int main(int argc, char** argv) auto expansion_successful = expand_list(ranges_list, ranges_vector); if (!expansion_successful) { - args_parser.print_usage(stderr, argv[0]); + args_parser.print_usage(stderr, arguments.strings[0].characters_without_null_termination()); return 1; }