diff --git a/Userland/Utilities/seq.cpp b/Userland/Utilities/seq.cpp index 7bf07c2406..443ea76062 100644 --- a/Userland/Utilities/seq.cpp +++ b/Userland/Utilities/seq.cpp @@ -6,6 +6,8 @@ #include #include +#include +#include #include #include #include @@ -46,28 +48,26 @@ ErrorOr serenity_main(Main::Arguments arguments) TRY(Core::System::pledge("stdio")); TRY(Core::System::unveil(nullptr, nullptr)); - for (size_t i = 1; i < arguments.strings.size(); i++) { - if (arguments.strings[i] == "--help"sv || arguments.strings[i] == "-h") { - out("HELP"); - print_usage(stdout); - exit(0); - } - } + Vector parameters; + + Core::ArgsParser args_parser; + args_parser.add_positional_argument(parameters, "1 to 3 parameters, interpreted as LAST, FIRST LAST, or FIRST INCREMENT LAST", "parameters"); + args_parser.parse(arguments); double start = 1, step = 1, end = 1; int number_of_start_decimals = 0, number_of_step_decimals = 0, number_of_end_decimals = 0; - switch (arguments.strings.size()) { + switch (parameters.size()) { + case 1: + end = get_double(arguments.argv[0], parameters[0], &number_of_end_decimals); + break; case 2: - end = get_double(arguments.argv[0], arguments.argv[1], &number_of_end_decimals); + start = get_double(arguments.argv[0], parameters[0], &number_of_start_decimals); + end = get_double(arguments.argv[0], parameters[1], &number_of_end_decimals); break; case 3: - start = get_double(arguments.argv[0], arguments.argv[1], &number_of_start_decimals); - end = get_double(arguments.argv[0], arguments.argv[2], &number_of_end_decimals); - break; - case 4: - start = get_double(arguments.argv[0], arguments.argv[1], &number_of_start_decimals); - step = get_double(arguments.argv[0], arguments.argv[2], &number_of_step_decimals); - end = get_double(arguments.argv[0], arguments.argv[3], &number_of_end_decimals); + start = get_double(arguments.argv[0], parameters[0], &number_of_start_decimals); + step = get_double(arguments.argv[0], parameters[1], &number_of_step_decimals); + end = get_double(arguments.argv[0], parameters[2], &number_of_end_decimals); break; default: warnln("{}: unexpected number of arguments", arguments.argv[0]);