aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-09-01 00:48:48 +0000
committer_ov4 <ov4@ov4.org>2026-09-01 00:48:48 +0000
commitb550c6bb3a0344ba33a00fce126ca571228e3651 (patch)
treed3552413822c08e24ff82e0c7420e7573ef50249
parent5e94ca9f060d2952ef08913234c500a815f734bf (diff)
refactor
-rw-r--r--include/command/builtin.h4
-rw-r--r--src/command/bg.cc13
-rw-r--r--src/command/builtin.cc4
-rw-r--r--src/command/exit.cc11
-rw-r--r--src/command/fg.cc13
-rw-r--r--src/command/jobs.cc15
-rw-r--r--src/eval.cc10
7 files changed, 60 insertions, 10 deletions
diff --git a/include/command/builtin.h b/include/command/builtin.h
index f37b844..f90c9bf 100644
--- a/include/command/builtin.h
+++ b/include/command/builtin.h
@@ -19,5 +19,9 @@ namespace ov4::command
{
void quit();
+void jobs();
+void bg(char **argv);
+void fg(char **argv);
+void exit();
}
diff --git a/src/command/bg.cc b/src/command/bg.cc
new file mode 100644
index 0000000..06eca45
--- /dev/null
+++ b/src/command/bg.cc
@@ -0,0 +1,13 @@
+#include "command/builtin.h"
+
+#include "ground.h"
+
+namespace ov4::command
+{
+
+void bg(char **argv)
+{
+ ov4::do_bgfg(argv);
+}
+
+}
diff --git a/src/command/builtin.cc b/src/command/builtin.cc
index b2c3149..3e87850 100644
--- a/src/command/builtin.cc
+++ b/src/command/builtin.cc
@@ -15,6 +15,10 @@ bool exe_bultin_command(char **argv)
{
if (argv == nullptr || argv[0] == nullptr) exit(1); // WTF???
if (strcmp(argv[0], "quit") == 0) { ov4::command::quit(); return true; }
+ if (strcmp(argv[0], "exit") == 0) { ov4::command::exit(); return true; }
+ if (strcmp(argv[0], "jobs") == 0) { ov4::command::jobs(); return true; }
+ if (strcmp(argv[0], "bg") == 0) { ov4::command::bg(argv); return true; }
+ if (strcmp(argv[0], "fg") == 0) { ov4::command::fg(argv); return true; }
else return false;
}
diff --git a/src/command/exit.cc b/src/command/exit.cc
new file mode 100644
index 0000000..5d817a6
--- /dev/null
+++ b/src/command/exit.cc
@@ -0,0 +1,11 @@
+#include "command/builtin.h"
+
+namespace ov4::command
+{
+
+void exit()
+{
+ std::exit(0);
+}
+
+}
diff --git a/src/command/fg.cc b/src/command/fg.cc
new file mode 100644
index 0000000..e2164ee
--- /dev/null
+++ b/src/command/fg.cc
@@ -0,0 +1,13 @@
+#include "command/builtin.h"
+
+#include "ground.h"
+
+namespace ov4::command
+{
+
+void fg(char **argv)
+{
+ ov4::do_bgfg(argv);
+}
+
+}
diff --git a/src/command/jobs.cc b/src/command/jobs.cc
new file mode 100644
index 0000000..f618d55
--- /dev/null
+++ b/src/command/jobs.cc
@@ -0,0 +1,15 @@
+#include "command/builtin.h"
+
+#include "job.h"
+
+namespace ov4::command
+{
+
+using namespace ov4;
+
+void jobs()
+{
+ listjobs(ov4::jobs);
+}
+
+}
diff --git a/src/eval.cc b/src/eval.cc
index 1b5884f..b700c21 100644
--- a/src/eval.cc
+++ b/src/eval.cc
@@ -29,16 +29,6 @@ void eval(char *cmdline)
if (argv[0] == nullptr) return;
if (exe_bultin_command(argv)) return;
- // if (builtin_cmd(argv[0]))
- // {
- // LOG << "built-in" << endl;
- // if (strcmp(argv[0], "quit") == 0) builtin_command_quit();
- // else if (strcmp(argv[0], "jobs") == 0) listjobs(jobs);
- // else if (strcmp(argv[0], "fg") == 0) do_bgfg(argv);
- // else if (strcmp(argv[0], "bg") == 0) do_bgfg(argv);
- // else cerr << "built-in but not supported" << endl;
- // return;
- // }
sigset_t prev;
block_all(&prev);