blob: 6fe48a4b5837358c6b35b837047be3b837545f3e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <ctype.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <errno.h>
#include <iostream>
#include <vector>
#include <string>
#include "all.h"
#include "test.h"
#include "line/line_editor.h"
using namespace std;
using namespace ov4;
/* Global variables */
char sbuf[MAXLINE]; /* for composing sprintf messages */
/*
* main - The shell's main routine
*/
int main([[maybe_unused]] int argc, [[maybe_unused]] char **argv)
{
init();
//test(argv);
char cmdline[MAXLINE];
/* Redirect stderr to stdout (so that driver will get all output
* on the pipe connected to stdout) */
dup2(1, 2);
/* Parse the command line */
exe_option(argv);
/* Initialize the job list */
initjobs();
/* Execute the shell's read/eval loop */
while (1) {
/* Read command line */
int len = print_prompt();
T_line_editor line_editor_instance;
enable_raw();
string s = line_editor_instance.readline(len);
disable_raw();
cout << "\n\n\n\n" << endl;
cout << s << endl;
if (s == "quit")
break;
eval(s.c_str());
fflush(stdout);
}
exit(0); /* control never reaches here */
}
|