diff options
| author | _ov4 <ov4@ov4.org> | 2026-09-01 00:39:44 +0000 |
|---|---|---|
| committer | _ov4 <ov4@ov4.org> | 2026-09-01 00:39:44 +0000 |
| commit | 5e94ca9f060d2952ef08913234c500a815f734bf (patch) | |
| tree | 169e6c67289b70753aa76edb818f3b1f63112884 /src | |
| parent | 54261d62d47624e9ff4724c42aaa05eaf478e606 (diff) | |
refactor
Diffstat (limited to 'src')
| -rw-r--r-- | src/command/builtin.cc | 23 | ||||
| -rw-r--r-- | src/command/quit.cc | 13 | ||||
| -rw-r--r-- | src/eval.cc | 21 | ||||
| -rw-r--r-- | src/global.cc | 1 | ||||
| -rw-r--r-- | src/main.cc | 2 | ||||
| -rw-r--r-- | src/util/io.cc (renamed from src/util.cc) | 21 |
6 files changed, 49 insertions, 32 deletions
diff --git a/src/command/builtin.cc b/src/command/builtin.cc new file mode 100644 index 0000000..b2c3149 --- /dev/null +++ b/src/command/builtin.cc @@ -0,0 +1,23 @@ +#include "command/builtin.h" + +namespace ov4 +{ + +using namespace std; + +//array<string> builtin_cmd_list{"quit", "fg", "bg", "jobs"}; + +/* + * builtin_cmd - If the user has typed a built-in command then execute + * it immediately. + */ +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; } + else return false; +} + + + +} diff --git a/src/command/quit.cc b/src/command/quit.cc new file mode 100644 index 0000000..917f642 --- /dev/null +++ b/src/command/quit.cc @@ -0,0 +1,13 @@ +#include "command/builtin.h" + +namespace ov4::command +{ + +using namespace ov4; + +void quit() +{ + exit(0); +} + +} diff --git a/src/eval.cc b/src/eval.cc index 4350367..1b5884f 100644 --- a/src/eval.cc +++ b/src/eval.cc @@ -27,17 +27,18 @@ void eval(char *cmdline) int ground = parseline(cmdline, argv); 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; - } + // 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); diff --git a/src/global.cc b/src/global.cc index 5b92331..0995b4d 100644 --- a/src/global.cc +++ b/src/global.cc @@ -6,6 +6,5 @@ namespace ov4 using namespace std; int verbose = 0; -vector<string> builtin_cmd_list = {"quit", "fg", "bg", "jobs"}; } diff --git a/src/main.cc b/src/main.cc index f75dc7d..04aca2a 100644 --- a/src/main.cc +++ b/src/main.cc @@ -11,7 +11,7 @@ #include <vector> #include <string> -#include "util.h" +#include "util/io.h" #include "job.h" #include "parse.h" #include "handler.h" diff --git a/src/util.cc b/src/util/io.cc index 9574ce6..531bd47 100644 --- a/src/util.cc +++ b/src/util/io.cc @@ -1,4 +1,4 @@ -#include "util.h" +#include "util/io.h" namespace ov4 { @@ -96,23 +96,4 @@ char *itoa(int num, char* str, int base) return str; } -/* - * builtin_cmd - If the user has typed a built-in command then execute - * it immediately. - */ -int builtin_cmd(char *c_str) -{ - string s(c_str); - for (auto c : builtin_cmd_list) - if (c == s) - return 1; - return 0; /* not a builtin command */ -} - -void builtin_command_quit() -{ - exit(0); -} - - } |
