summaryrefslogtreecommitdiff
path: root/src/user/grep.cc
diff options
context:
space:
mode:
authorRichard Qin <richard.qin.x@gmail.com>2026-07-10 11:31:46 +0800
committerRichard Qin <richard.qin.x@gmail.com>2026-07-10 11:31:46 +0800
commite90b72ec3082588b296956730bd2930cf8d5d671 (patch)
tree36ff6916af9b4176ea5a9662219d11e721f0b691 /src/user/grep.cc
parent1767d390fbf3d0c65389de46caf0b6d43ef3b6ad (diff)
downloadlume-e90b72ec3082588b296956730bd2930cf8d5d671.tar.gz
lume-e90b72ec3082588b296956730bd2930cf8d5d671.tar.xz
refactor: promote new architecture to repository root
Archive the deprecated implementation under lume-legacy, make the new kernel the default root-level build, and update repository entry points without changing kernel behavior.
Diffstat (limited to 'src/user/grep.cc')
-rw-r--r--src/user/grep.cc72
1 files changed, 0 insertions, 72 deletions
diff --git a/src/user/grep.cc b/src/user/grep.cc
deleted file mode 100644
index 1e1c42d..0000000
--- a/src/user/grep.cc
+++ /dev/null
@@ -1,72 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- * Copyright (C) 2026 Richard QIn
- */
-#include "ulib/stdio.h"
-#include "ulib/stdlib.h"
-#include "ulib/string.h"
-#include "user/user.h"
-#include "common/fcntl.h"
-
-char buf[1024];
-
-void grep(char *pattern, int fd)
-{
- int n, m;
- char *p, *q;
-
- m = 0;
- while ((n = read(fd, buf + m, sizeof(buf) - m - 1)) > 0)
- {
- m += n;
- buf[m] = '\0';
- p = buf;
- while ((q = strchr(p, '\n')) != 0)
- {
- *q = 0;
- if (strstr(p, pattern) != 0)
- {
- printf("%s\n", p);
- }
- p = q + 1;
- }
- if (p == buf)
- m = 0;
- if (m > 0)
- {
- m -= p - buf;
- memmove(buf, p, m);
- }
- }
-}
-
-int main(int argc, char *argv[])
-{
- int fd, i;
- char *pattern;
-
- if (argc < 2)
- {
- printf("Usage: grep pattern [file...]\n");
- exit(1);
- }
- pattern = argv[1];
-
- if (argc == 2)
- {
- grep(pattern, 0); // stdin
- exit(0);
- }
-
- for (i = 2; i < argc; i++)
- {
- if ((fd = open(argv[i], O_RDONLY)) < 0)
- {
- printf("grep: cannot open %s\n", argv[i]);
- exit(1);
- }
- grep(pattern, fd);
- close(fd);
- }
- exit(0);
-} \ No newline at end of file