aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-06-18 14:34:27 +0200
committerCharles <sircharlesaze@gmail.com>2020-06-18 14:39:17 +0200
commitbf97035e8d444c141725c0cf91aaaa285ae712af (patch)
tree3b87d3996c8e3e550f3a0dd18b1f55d8c69d16ff
parent52bc3c1a6035dae4e45015c48a8c65681a31512a (diff)
downloadminishell-bf97035e8d444c141725c0cf91aaaa285ae712af.tar.gz
minishell-bf97035e8d444c141725c0cf91aaaa285ae712af.tar.bz2
minishell-bf97035e8d444c141725c0cf91aaaa285ae712af.zip
Fixing little bug in env_search
-rw-r--r--src/debug.c59
-rw-r--r--src/env.c4
-rw-r--r--src/main.c198
3 files changed, 124 insertions, 137 deletions
diff --git a/src/debug.c b/src/debug.c
new file mode 100644
index 0000000..cde4e4c
--- /dev/null
+++ b/src/debug.c
@@ -0,0 +1,59 @@
+
+#include <stdio.h>
+#include "lexer.h"
+#include "ast.h"
+
+void token_debug(void *v)
+{
+ t_token *t;
+
+ t= v;
+ printf("[%4d %d] (%s)\n", t->tag, !!(t->tag & TAG_STICK), t->content);
+}
+
+void token_put(void *v)
+{
+ t_token *t;
+
+ t= v;
+ printf("%s ", t->content);
+}
+
+void print_level(int level)
+{
+ while (level-- > 0)
+ printf(" ");
+}
+
+void ast_print(int level, t_ast *ast)
+{
+ if (ast->tag == AST_CMD)
+ {
+ print_level(level);
+ printf("cmd: [ ");
+ ft_lstiter(ast->cmd_argv, token_put);
+ printf(" ] redirs: [");
+ ft_lstiter(ast->redirs, token_put);
+ printf(" ]");
+ }
+ else
+ {
+ /* print_level(level); */
+ /* printf("SEP: %d\n", ast->op.sep); */
+ print_level(level);
+ printf("{\n");
+
+ print_level(level);
+ printf(" left:\n");
+ ast_print(level + 1, ast->op.left);
+
+ printf("\n");
+ print_level(level);
+ printf(" right:\n");
+ ast_print(level + 1, ast->op.right);
+
+ printf("\n");
+ print_level(level);
+ printf("}\n");
+ }
+}
diff --git a/src/env.c b/src/env.c
index 9e7aed5..89dafeb 100644
--- a/src/env.c
+++ b/src/env.c
@@ -6,7 +6,7 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/02/28 09:21:24 by cacharle #+# #+# */
-/* Updated: 2020/06/17 12:50:26 by charles ### ########.fr */
+/* Updated: 2020/06/18 14:33:26 by charles ### ########.fr */
/* */
/* ************************************************************************** */
@@ -69,7 +69,7 @@ char *env_search(t_env env, char *key)
i = 0;
while (i < env->size - 1)
{
- if (env_keycmp(env->data[i], key))
+ if (env_keycmp(env->data[i], key) == 0)
return (ft_strchr(env->data[i], '=') + 1);
i++;
}
diff --git a/src/main.c b/src/main.c
index 060490a..2018001 100644
--- a/src/main.c
+++ b/src/main.c
@@ -6,7 +6,7 @@
/* By: cacharle <cacharle@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/02/28 11:45:44 by cacharle #+# #+# */
-/* Updated: 2020/06/18 13:46:10 by charles ### ########.fr */
+/* Updated: 2020/06/18 14:38:24 by charles ### ########.fr */
/* */
/* ************************************************************************** */
@@ -21,113 +21,63 @@
#include "parser.h"
#include "eval.h"
-/* void token_debug(void *v) */
-/* { */
-/* t_token *t; */
-/* */
-/* t= v; */
-/* printf("[%4d %d] (%s)\n", t->tag, !!(t->tag & TAG_STICK), t->content); */
-/* } */
-/* */
-/* int main(int argc, char **argv, char **envp) */
-/* { */
-/* t_path path; */
-/* t_env env; */
-/* */
-/* env = env_from_array(envp); */
-/* path = path_update(NULL, env_search(env, "PATH")); */
-/* #<{(| printf("%s\n", argv[2]); |)}># */
-/* */
-/* if (argc == 3 && ft_strcmp(argv[1], "-c") == 0) */
-/* { */
-/* //printf("%s\n", argv[2]); */
-/* t_ftlst *lex_out = lexer(ft_strdup(argv[2])); */
-/* */
-/* //ft_lstiter(lex_out, token_debug); */
-/* */
-/* t_ret *parser_out = parse(lex_out); */
-/* */
-/* #<{(| printf("===cmd_argv===\n"); |)}># */
-/* #<{(| ft_lstiter(parser_out->ast->cmd_argv, token_debug); |)}># */
-/* #<{(| printf("===redirs===\n"); |)}># */
-/* #<{(| ft_lstiter(parser_out->ast->redirs, token_debug); |)}># */
-/* */
-/* int fds[2] = {MS_NO_FD, MS_NO_FD}; */
-/* int eval_out = eval_cmd(fds, env, path, parser_out->ast); */
-/* (void)eval_out; */
-/* } */
-/* */
-/* ft_htdestroy(path, free); */
-/* ft_vecdestroy(env, free); */
-/* return (0); */
-/* } */
+void token_debug(void *v);
+void token_put(void *v);
+void print_level(int level);
+void ast_print(int level, t_ast *ast);
-void token_put(void *v)
+int main(int argc, char **argv, char **envp)
{
- t_token *t;
-
- t= v;
- printf("%s ", t->content);
-}
+ t_path path;
+ t_env env;
-void print_level(int level)
-{
- while (level-- > 0)
- printf(" ");
-}
+ env = env_from_array(envp);
+ path = path_update(NULL, env_search(env, "PATH"));
+ /* printf("%s\n", argv[2]); */
-void ast_print(int level, t_ast *ast)
-{
- if (ast->tag == AST_CMD)
+ if (argc == 3 && ft_strcmp(argv[1], "-c") == 0)
{
- print_level(level);
- printf("cmd: [ ");
- ft_lstiter(ast->cmd_argv, token_put);
- printf(" ] redirs: [");
- ft_lstiter(ast->redirs, token_put);
- printf(" ]");
- }
- else
- {
- /* print_level(level); */
- /* printf("SEP: %d\n", ast->op.sep); */
- print_level(level);
- printf("{\n");
-
- print_level(level);
- printf(" left:\n");
- ast_print(level + 1, ast->op.left);
-
- printf("\n");
- print_level(level);
- printf(" right:\n");
- ast_print(level + 1, ast->op.right);
-
- printf("\n");
- print_level(level);
- printf("}\n");
+ //printf("%s\n", argv[2]);
+ t_ftlst *lex_out = lexer(ft_strdup(argv[2]));
+
+ //ft_lstiter(lex_out, token_debug);
+
+ t_ret *parser_out = parse(lex_out);
+
+ /* printf("===cmd_argv===\n"); */
+ /* ft_lstiter(parser_out->ast->cmd_argv, token_debug); */
+ /* printf("===redirs===\n"); */
+ /* ft_lstiter(parser_out->ast->redirs, token_debug); */
+
+ int fds[2] = {MS_NO_FD, MS_NO_FD};
+ int eval_out = eval(fds, env, path, parser_out->ast);
+ (void)eval_out;
}
+
+ ft_htdestroy(path, free);
+ ft_vecdestroy(env, free);
+ return (0);
}
-int main(int argc, char **argv, char **envp)
-{
- (void)argc;
- (void)argv;
+/* int main(int argc, char **argv, char **envp) */
+/* { */
+ /* (void)argc; */
+ /* (void)argv; */
/* (void)envp; */
- t_path path;
- t_env env;
+ /* t_path path; */
+ /* t_env env; */
/* char *line; */
/* int ret; */
- env = env_from_array(envp);
- path = path_update(NULL, env_search(env, "PATH"));
+ /* env = env_from_array(envp); */
+ /* path = path_update(NULL, env_search(env, "PATH")); */
- t_ftlst *args1 = NULL;
- ft_lstpush_back(&args1, ft_lstnew(token_new(TAG_STR, "ls")));
- ft_lstpush_back(&args1, ft_lstnew(token_new(TAG_STR, "-l")));
+ /* t_ftlst *args1 = NULL; */
+ /* ft_lstpush_back(&args1, ft_lstnew(token_new(TAG_STR, "ls"))); */
+ /* ft_lstpush_back(&args1, ft_lstnew(token_new(TAG_STR, "-l"))); */
- t_ftlst *args2 = NULL;
- ft_lstpush_back(&args2, ft_lstnew(token_new(TAG_STR, "cat")));
- ft_lstpush_back(&args2, ft_lstnew(token_new(TAG_STR, "-e")));
+ /* t_ftlst *args2 = NULL; */
+ /* ft_lstpush_back(&args2, ft_lstnew(token_new(TAG_STR, "cat"))); */
+ /* ft_lstpush_back(&args2, ft_lstnew(token_new(TAG_STR, "-e"))); */
/* ft_lstpush_back(&args2, ft_lstnew(token_new(TAG_STR, "je"))); */
/* ft_lstpush_back(&args, ft_lstnew(token_new(TAG_STR, "ls"))); */
@@ -148,30 +98,30 @@ int main(int argc, char **argv, char **envp)
/* ft_lstpush_back(&args, ft_lstnew(token_new(TAG_STR_DOUBLE | TAG_STICK, "$TEST"))); */
/* ft_lstpush_back(&args, ft_lstnew(token_new(TAG_STR_SINGLE, "$TEST"))); */
- t_ftlst *redirs = NULL;
- ft_lstpush_back(&redirs, ft_lstnew(token_new(TAG_REDIR_OUT, NULL)));
- ft_lstpush_back(&redirs, ft_lstnew(token_new(TAG_STR, "bonjour")));
+ /* t_ftlst *redirs = NULL; */
+ /* ft_lstpush_back(&redirs, ft_lstnew(token_new(TAG_REDIR_OUT, NULL))); */
+ /* ft_lstpush_back(&redirs, ft_lstnew(token_new(TAG_STR, "bonjour"))); */
/* ft_lstpush_back(&redirs, ft_lstnew(token_new(TAG_REDIR_APPEND, NULL))); */
/* ft_lstpush_back(&redirs, ft_lstnew(token_new(TAG_STR, "yo"))); */
/* ft_lstpush_back(&redirs, ft_lstnew(token_new(TAG_REDIR_OUT, NULL))); */
/* ft_lstpush_back(&redirs, ft_lstnew(token_new(TAG_STR, "yo1"))); */
- t_ast *cmd1 = ast_new(AST_CMD);
- cmd1->cmd_argv = args1;
- cmd1->redirs = NULL;
+ /* t_ast *cmd1 = ast_new(AST_CMD); */
+ /* cmd1->cmd_argv = args1; */
+ /* cmd1->redirs = NULL; */
- t_ast *cmd2 = ast_new(AST_CMD);
- cmd2->cmd_argv = args2;
- cmd2->redirs = NULL;
+ /* t_ast *cmd2 = ast_new(AST_CMD); */
+ /* cmd2->cmd_argv = args2; */
+ /* cmd2->redirs = NULL; */
- t_ast *op_ast = ast_new(AST_OP);
- op_ast->op.left = cmd1;
- op_ast->op.right = cmd2;
- op_ast->op.sep = TAG_PIPE;
+ /* t_ast *op_ast = ast_new(AST_OP); */
+ /* op_ast->op.left = cmd1; */
+ /* op_ast->op.right = cmd2; */
+ /* op_ast->op.sep = TAG_PIPE; */
- int fds[2] = {MS_NO_FD, MS_NO_FD};
- printf("eval %d\n", eval(fds, env, path, op_ast));
+ /* int fds[2] = {MS_NO_FD, MS_NO_FD}; */
+ /* printf("eval %d\n", eval_cmd(fds, env, path, cmd1)); */
/* char **as = preprocess(l, env); */
/* printf("%p\n", as); */
@@ -180,29 +130,7 @@ int main(int argc, char **argv, char **envp)
/* while (*as != NULL) */
/* puts(*as++); */
/* ft_split_destroy(tmp); */
- ft_htdestroy(path, free);
- ft_vecdestroy(env, free);
- return (0);
-}
-
-/////////////////////////////////////////////////////////////////////////////////////////
-// lexer main
-/////////////////////////////////////////////////////////////////////////////////////////
-
-/* int main(int argc, char **argv) */
-/* { */
-/* char *input; */
-/* t_ftlst *lst; */
-/* */
-/* if (argv[1] == NULL) */
-/* return (0); */
-/* if (!(input = malloc(sizeof(char) * ft_strlen(argv[1]) + 1))) */
-/* return(0); */
-/* ft_strlcpy(input, argv[1], ft_strlen(argv[1]) + 1); */
-/* */
-/* lst = lexer(input); */
-/* parse(lst); */
-/* free(input); */
-/* exit(0); */
-/* return (0); */
+/* ft_htdestroy(path, free); */
+/* ft_vecdestroy(env, free); */
+/* return (0); */
/* } */