diff --git a/mysh b/mysh new file mode 100755 index 0000000000000000000000000000000000000000..0f3527030ea36fd60c29e3debfce8e555908f47a Binary files /dev/null and b/mysh differ diff --git a/src/commands.c b/src/commands.c index a8c22bc09f6b4e5ce39ecbbea5b316fbb7761a73..12501142bdadda0125df11eab8ff62cb5413a9e6 100644 --- a/src/commands.c +++ b/src/commands.c @@ -1,7 +1,15 @@ +#include <stdio.h> +#include <stdlib.h> #include <string.h> +#include <unistd.h> #include "commands.h" +#define true 1 +#define false 0 + +char current_dir[1000]; + int do_cd(int argc, char** argv) { if (!validate_cd_argv(argc, argv)){ return -1; @@ -25,9 +33,9 @@ int do_pwd(int argc, char** argv) { return -1; } // TODO: Fill it! - char current_dir[1000]; + getcwd(current_dir,1000); - printf("%s",current_dir); + printf("ajou@ajou-VirtualBox:%s$ ",current_dir); return 0; } @@ -46,7 +54,7 @@ int validate_cd_argv(int argc, char** argv) { int validate_pwd_argv(int argc, char** argv) { // TODO: Fill it! - if(argc == 2 && !(strcmp(argv[0],"cd"))){ + if(argc == 1 && !(strcmp(argv[0],"pwd"))){ return true; } else{ diff --git a/src/main.c b/src/main.c index fddc6fc498fd16b68f563b15fe9853ce2292bfdb..c21c0ddfd22d8d3677e47d1a42083a5eaead645d 100644 --- a/src/main.c +++ b/src/main.c @@ -5,6 +5,9 @@ #include "commands.h" #include "utils.h" +#define true 1 +#define false 0 + /** * Aliased command element * @@ -80,6 +83,7 @@ apply_alias: for (int i = 0; i < n_aliased_command; ++i) { if (strcmp(argv[0], aliased_commands[i]->alias) == 0) { // TODO: fill here! + strcpy(buf, aliased_commands[i] -> command); goto apply_alias; } @@ -118,13 +122,18 @@ int do_alias(int argc, char** argv) { return -1; // TODO: Fill it! + char *token; + return 0; } int validate_alias_argv(int argc, char** argv) { // TODO: Fill it! - return 1; + if(argc < 2){ + return 1; + } + return 0; } diff --git a/src/utils.c b/src/utils.c index 2af60fdae81d42f53298b316f8c4ce773b9f712b..1dfcf3f5831d43ea0c83b38244e4f65b53709107 100644 --- a/src/utils.c +++ b/src/utils.c @@ -1,17 +1,21 @@ #include "utils.h" +#include <stdio.h> +#include <stdlib.h> +#include <string.h> void mysh_parse_command(const char* command, int *argc, char*** argv) { // TODO: Fill this! - *argc = 0; - *avgv = (char**)malloc(sizeof(char)*15); - *argv = (char*)malloc(sizeof(char)*15); - + int i = 0; char *token; char cmd[1000]; char seps[] = " \t\n"; + *argc = 0; + *argv = (char**)malloc(sizeof(char)*15); + (*argv)[i] = (char*)malloc(sizeof(char)*15); + strcpy(cmd,command); token = strtok(cmd,seps); @@ -24,7 +28,8 @@ void mysh_parse_command(const char* command, while(token != NULL){ strcpy((*argv)[i],token); i++; - (*argv)[i] = (char*)malloc(sizeof(char)*10); + (*argv)[i] = (char*)malloc(sizeof(char)*15); + token = strtok(NULL,seps); (*argc)++; } }