mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 11:57:35 +00:00
fgrep: Port fgrep to LibMain
This commit is contained in:
parent
8aafe6cd1f
commit
22c27e1ba9
2 changed files with 11 additions and 9 deletions
|
@ -91,6 +91,7 @@ target_link_libraries(env LibMain)
|
||||||
target_link_libraries(errno LibMain)
|
target_link_libraries(errno LibMain)
|
||||||
target_link_libraries(expr LibRegex LibMain)
|
target_link_libraries(expr LibRegex LibMain)
|
||||||
target_link_libraries(fdtdump LibDeviceTree LibMain)
|
target_link_libraries(fdtdump LibDeviceTree LibMain)
|
||||||
|
target_link_libraries(fgrep LibMain)
|
||||||
target_link_libraries(file LibGfx LibIPC LibCompress LibMain)
|
target_link_libraries(file LibGfx LibIPC LibCompress LibMain)
|
||||||
target_link_libraries(find LibMain)
|
target_link_libraries(find LibMain)
|
||||||
target_link_libraries(flock LibMain)
|
target_link_libraries(flock LibMain)
|
||||||
|
|
|
@ -4,25 +4,26 @@
|
||||||
* SPDX-License-Identifier: BSD-2-Clause
|
* SPDX-License-Identifier: BSD-2-Clause
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "AK/String.h"
|
||||||
#include <AK/Assertions.h>
|
#include <AK/Assertions.h>
|
||||||
#include <AK/Format.h>
|
#include <AK/Format.h>
|
||||||
|
#include <LibCore/System.h>
|
||||||
|
#include <LibMain/Main.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
ErrorOr<int> serenity_main(Main::Arguments arguments)
|
||||||
{
|
{
|
||||||
if (argc < 2) {
|
if (arguments.strings.size() < 2) {
|
||||||
warnln("usage: fgrep <str>");
|
warnln("usage: fgrep <str>");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
for (;;) {
|
for (;;) {
|
||||||
char buf[4096];
|
char buffer[4096];
|
||||||
auto* str = fgets(buf, sizeof(buf), stdin);
|
auto str = StringView(fgets(buffer, sizeof(buffer), stdin));
|
||||||
if (str && strstr(str, argv[1]))
|
if (str.contains(arguments.strings[1]))
|
||||||
write(1, buf, strlen(buf));
|
TRY(Core::System::write(1, str.bytes()));
|
||||||
if (feof(stdin))
|
if (feof(stdin))
|
||||||
return 0;
|
return 0;
|
||||||
VERIFY(str);
|
VERIFY(str.to_string().characters());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue