summaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main.c')
-rw-r--r--main.c45
1 files changed, 26 insertions, 19 deletions
diff --git a/main.c b/main.c
index 79e8105..ca375e5 100644
--- a/main.c
+++ b/main.c
@@ -9,8 +9,6 @@
#include <unistd.h>
#include <stdbool.h>
-
-
#define MAX_HISTORY 100
#define MAX_COMMAND_LENGTH 256
@@ -19,6 +17,11 @@ static int CURRENT_HISTORY_INDEX = 0;
static char *COMMAND_HISTORY[MAX_HISTORY] = { NULL};
+void test_print()
+{
+ printf("print to output");
+}
+
// DEFAULT SHELL COMMANDS
// exit() command
void exit_program()
@@ -47,29 +50,30 @@ void list_directories()
exit(EXIT_SUCCESS);
}
-// echo emulation command, without variables
-void echo(char *command, char *argv)
+void print_working_directory()
{
- if (strcmp(command, "echo") == 0)
+ char current_working_directory[100];
+
+ if(getcwd(current_working_directory, sizeof(current_working_directory) != 0))
{
- printf("argv");
+ printf("%s", current_working_directory);
+ }
+ else
+ {
+ perror("getcwd() error");
}
}
-char **save_history(char *user_input)
+// echo emulation command, without variables
+void echo(char *command, char *argv)
{
- char **command_history;
-
- for (CURRENT_HISTORY_INDEX; CURRENT_HISTORY_INDEX < MAX_HISTORY; CURRENT_HISTORY_INDEX++)
+ if (strcmp(command, "echo") == 0)
{
- for(CURRENT_COMMAND_INDEX; CURRENT_COMMAND_INDEX < MAX_COMMAND_LENGTH; CURRENT_COMMAND_INDEX++)
- {
- command_history[CURRENT_HISTORY_INDEX][CURRENT_COMMAND_INDEX] = user_input[CURRENT_COMMAND_INDEX];
- }
+ printf("argv");
}
- return command_history;
}
+
// GET USER INPUT
char * get_line()
{
@@ -82,8 +86,8 @@ char * get_line()
}
scanf("%s", &(*line_read));
- if (line_read && *line_read)
- save_history(line_read);
+// if (line_read && *line_read)
+// save_history(line_read);
return line_read;
}
@@ -94,12 +98,15 @@ int main(void)
char *input = malloc(sizeof(char *) * MAX_COMMAND_LENGTH);
while (true)
{
- printf("SHELL> ");
+ printf("\nSHELL> ");
scanf("%s", input);
if (strcmp(input, "exit") == 0)
exit_program();
-
+ else if(strcmp(input, "current_directory") == 0)
+ print_working_directory();
+ else if(strcmp(input, "test") == 0)
+ test_print();
}
return 0;