From 22c27e1ba9f83603953291182e5904d126e9ea87 Mon Sep 17 00:00:00 2001 From: Kenneth Myhra Date: Tue, 21 Dec 2021 20:22:53 +0100 Subject: [PATCH] fgrep: Port fgrep to LibMain --- Userland/Utilities/CMakeLists.txt | 1 + Userland/Utilities/fgrep.cpp | 19 ++++++++++--------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Userland/Utilities/CMakeLists.txt b/Userland/Utilities/CMakeLists.txt index bd4e82b6c7..0df6a63878 100644 --- a/Userland/Utilities/CMakeLists.txt +++ b/Userland/Utilities/CMakeLists.txt @@ -91,6 +91,7 @@ target_link_libraries(env LibMain) target_link_libraries(errno LibMain) target_link_libraries(expr LibRegex LibMain) target_link_libraries(fdtdump LibDeviceTree LibMain) +target_link_libraries(fgrep LibMain) target_link_libraries(file LibGfx LibIPC LibCompress LibMain) target_link_libraries(find LibMain) target_link_libraries(flock LibMain) diff --git a/Userland/Utilities/fgrep.cpp b/Userland/Utilities/fgrep.cpp index cdbbd7bbd9..76d55756d5 100644 --- a/Userland/Utilities/fgrep.cpp +++ b/Userland/Utilities/fgrep.cpp @@ -4,25 +4,26 @@ * SPDX-License-Identifier: BSD-2-Clause */ +#include "AK/String.h" #include #include +#include +#include #include -#include -#include -int main(int argc, char** argv) +ErrorOr serenity_main(Main::Arguments arguments) { - if (argc < 2) { + if (arguments.strings.size() < 2) { warnln("usage: fgrep "); return 1; } for (;;) { - char buf[4096]; - auto* str = fgets(buf, sizeof(buf), stdin); - if (str && strstr(str, argv[1])) - write(1, buf, strlen(buf)); + char buffer[4096]; + auto str = StringView(fgets(buffer, sizeof(buffer), stdin)); + if (str.contains(arguments.strings[1])) + TRY(Core::System::write(1, str.bytes())); if (feof(stdin)) return 0; - VERIFY(str); + VERIFY(str.to_string().characters()); } }