From 441295b57b9892267841840d8d7166b9306f8501 Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Tue, 25 Aug 2020 23:25:07 +0200 Subject: In progress --- src/s_init.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'src/s_init.c') diff --git a/src/s_init.c b/src/s_init.c index 7b36653..acef5d6 100644 --- a/src/s_init.c +++ b/src/s_init.c @@ -26,6 +26,46 @@ #include "u_vars.h" #include "u_vars_next.h" +static void + s_init_sqb_ref_one(t_msh *msh) +{ + ft_memcpy(msh->sqb_ref[FT_ID_SQB_B], FT_SQB_B, ft_strlen(FT_SQB_B) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_C], FT_SQB_C, ft_strlen(FT_SQB_C) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_D], FT_SQB_D, ft_strlen(FT_SQB_D) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_E], FT_SQB_E, ft_strlen(FT_SQB_E) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_F], FT_SQB_F, ft_strlen(FT_SQB_F) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_G], FT_SQB_G, ft_strlen(FT_SQB_G) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_H], FT_SQB_H, ft_strlen(FT_SQB_H) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_K], FT_SQB_K, ft_strlen(FT_SQB_K) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_N], FT_SQB_N, ft_strlen(FT_SQB_N) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_S], FT_SQB_S, ft_strlen(FT_SQB_S) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_U], FT_SQB_U, ft_strlen(FT_SQB_U) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_W], FT_SQB_W, ft_strlen(FT_SQB_W) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_X], FT_SQB_X, ft_strlen(FT_SQB_X) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_Z], FT_SQB_Z, ft_strlen(FT_SQB_Z) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_L_MAJ], + FT_SQB_L_MAJ, ft_strlen(FT_SQB_L_MAJ) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_S_MAJ], + FT_SQB_S_MAJ, ft_strlen(FT_SQB_S_MAJ) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_NT], FT_SQB_NT, ft_strlen(FT_SQB_NT) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_OT], FT_SQB_OT, ft_strlen(FT_SQB_OT) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_EQUA], + FT_SQB_EQUA, ft_strlen(FT_SQB_EQUA) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_DIFF], + FT_SQB_DIFF, ft_strlen(FT_SQB_DIFF) + 1); +} + +static void + s_init_sqb_ref_two(t_msh *msh) +{ + ft_memcpy(msh->sqb_ref[FT_ID_SQB_EQ], FT_SQB_EQ, ft_strlen(FT_SQB_EQ) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_NE], FT_SQB_NE, ft_strlen(FT_SQB_NE) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_GT], FT_SQB_GT, ft_strlen(FT_SQB_GT) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_GE], FT_SQB_GE, ft_strlen(FT_SQB_GE) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_LT], FT_SQB_LT, ft_strlen(FT_SQB_LT) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_LE], FT_SQB_LE, ft_strlen(FT_SQB_LE) + 1); +} + static char **dupenv_del(char **nenvp, uint64_t i) @@ -143,5 +183,7 @@ t_msh msh->cwd = set_cwd(msh); msh->env_fork_tmp[0][0] = '\0'; inc_shlvl(msh); + s_init_sqb_ref_one(msh); + s_init_sqb_ref_two(msh); return (msh); } -- cgit v1.2.3 From 602e21eeeb6ebff0602abe1d9bf77ba18b248b93 Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Wed, 26 Aug 2020 00:37:46 +0200 Subject: New flags, in progress --- src/s_init.c | 1 - 1 file changed, 1 deletion(-) (limited to 'src/s_init.c') diff --git a/src/s_init.c b/src/s_init.c index acef5d6..d42822c 100644 --- a/src/s_init.c +++ b/src/s_init.c @@ -34,7 +34,6 @@ static void ft_memcpy(msh->sqb_ref[FT_ID_SQB_D], FT_SQB_D, ft_strlen(FT_SQB_D) + 1); ft_memcpy(msh->sqb_ref[FT_ID_SQB_E], FT_SQB_E, ft_strlen(FT_SQB_E) + 1); ft_memcpy(msh->sqb_ref[FT_ID_SQB_F], FT_SQB_F, ft_strlen(FT_SQB_F) + 1); - ft_memcpy(msh->sqb_ref[FT_ID_SQB_G], FT_SQB_G, ft_strlen(FT_SQB_G) + 1); ft_memcpy(msh->sqb_ref[FT_ID_SQB_H], FT_SQB_H, ft_strlen(FT_SQB_H) + 1); ft_memcpy(msh->sqb_ref[FT_ID_SQB_K], FT_SQB_K, ft_strlen(FT_SQB_K) + 1); ft_memcpy(msh->sqb_ref[FT_ID_SQB_N], FT_SQB_N, ft_strlen(FT_SQB_N) + 1); -- cgit v1.2.3 From 0c70b27f97513563096c65f9d2b5202caeaf6d26 Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Wed, 26 Aug 2020 00:52:38 +0200 Subject: Coolio --- src/s_init.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/s_init.c') diff --git a/src/s_init.c b/src/s_init.c index d42822c..2722c4b 100644 --- a/src/s_init.c +++ b/src/s_init.c @@ -35,10 +35,10 @@ static void ft_memcpy(msh->sqb_ref[FT_ID_SQB_E], FT_SQB_E, ft_strlen(FT_SQB_E) + 1); ft_memcpy(msh->sqb_ref[FT_ID_SQB_F], FT_SQB_F, ft_strlen(FT_SQB_F) + 1); ft_memcpy(msh->sqb_ref[FT_ID_SQB_H], FT_SQB_H, ft_strlen(FT_SQB_H) + 1); - ft_memcpy(msh->sqb_ref[FT_ID_SQB_K], FT_SQB_K, ft_strlen(FT_SQB_K) + 1); ft_memcpy(msh->sqb_ref[FT_ID_SQB_N], FT_SQB_N, ft_strlen(FT_SQB_N) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_R], FT_SQB_P, ft_strlen(FT_SQB_R) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_P], FT_SQB_R, ft_strlen(FT_SQB_P) + 1); ft_memcpy(msh->sqb_ref[FT_ID_SQB_S], FT_SQB_S, ft_strlen(FT_SQB_S) + 1); - ft_memcpy(msh->sqb_ref[FT_ID_SQB_U], FT_SQB_U, ft_strlen(FT_SQB_U) + 1); ft_memcpy(msh->sqb_ref[FT_ID_SQB_W], FT_SQB_W, ft_strlen(FT_SQB_W) + 1); ft_memcpy(msh->sqb_ref[FT_ID_SQB_X], FT_SQB_X, ft_strlen(FT_SQB_X) + 1); ft_memcpy(msh->sqb_ref[FT_ID_SQB_Z], FT_SQB_Z, ft_strlen(FT_SQB_Z) + 1); -- cgit v1.2.3 From 711138bc07284620979621340d97aecc00b9f520 Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Wed, 26 Aug 2020 02:54:05 +0200 Subject: In progress, .gitignore update --- src/s_init.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/s_init.c') diff --git a/src/s_init.c b/src/s_init.c index 2722c4b..7353ed8 100644 --- a/src/s_init.c +++ b/src/s_init.c @@ -36,8 +36,8 @@ static void ft_memcpy(msh->sqb_ref[FT_ID_SQB_F], FT_SQB_F, ft_strlen(FT_SQB_F) + 1); ft_memcpy(msh->sqb_ref[FT_ID_SQB_H], FT_SQB_H, ft_strlen(FT_SQB_H) + 1); ft_memcpy(msh->sqb_ref[FT_ID_SQB_N], FT_SQB_N, ft_strlen(FT_SQB_N) + 1); - ft_memcpy(msh->sqb_ref[FT_ID_SQB_R], FT_SQB_P, ft_strlen(FT_SQB_R) + 1); - ft_memcpy(msh->sqb_ref[FT_ID_SQB_P], FT_SQB_R, ft_strlen(FT_SQB_P) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_P], FT_SQB_P, ft_strlen(FT_SQB_P) + 1); + ft_memcpy(msh->sqb_ref[FT_ID_SQB_R], FT_SQB_R, ft_strlen(FT_SQB_R) + 1); ft_memcpy(msh->sqb_ref[FT_ID_SQB_S], FT_SQB_S, ft_strlen(FT_SQB_S) + 1); ft_memcpy(msh->sqb_ref[FT_ID_SQB_W], FT_SQB_W, ft_strlen(FT_SQB_W) + 1); ft_memcpy(msh->sqb_ref[FT_ID_SQB_X], FT_SQB_X, ft_strlen(FT_SQB_X) + 1); -- cgit v1.2.3 From 4543c3ba3222d47780ad3e091cfe6f3098cc2bca Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Sun, 6 Sep 2020 21:56:20 +0200 Subject: Stacked --- src/s_init.c | 44 +++++++++++++++++++++----------------------- 1 file changed, 21 insertions(+), 23 deletions(-) (limited to 'src/s_init.c') diff --git a/src/s_init.c b/src/s_init.c index 7353ed8..8fc8a79 100644 --- a/src/s_init.c +++ b/src/s_init.c @@ -107,64 +107,60 @@ static char static void inc_shlvl(t_msh *msh) { - int32_t shlvl; - char *str_one; - char *str_two; - char *tmp; char fmt[8]; + char tmp[255]; + char *str; + int32_t shlvl; - if ((tmp = u_get_var_value("$SHLVL", msh)) == NULL) + u_get_var_value(tmp, "$SHLVL", 255, msh); + if (tmp[0] == C_NUL) { ft_memcpy(fmt, "SHLVL=1", 8); b_export_with_equals(fmt, msh); } else { - ft_memdel((void*)&tmp); - str_two = u_get_var_value("$SHLVL", msh); - shlvl = ft_atoi(str_two); + shlvl = ft_atoi(tmp); if (shlvl >= 999) f_shlvl_too_high(shlvl); shlvl = (shlvl >= 999) ? 0 : shlvl; shlvl = (shlvl < 0) ? 0 : shlvl + 1; - str_one = ft_itoa(shlvl); - u_subst_var_value("$SHLVL", str_one, msh); - ft_memdel((void*)&str_one); - ft_memdel((void*)&str_two); + str = ft_itoa(shlvl); + u_subst_var_value("$SHLVL", str, msh); + ft_memdel((void*)&str); } } -static char - *set_cwd(t_msh *msh) +static void + set_cwd(char cwd[], t_msh *msh) { - char *cwd; char fmt[PATH_MAX]; DIR *dir; - if ((cwd = u_get_var_value("$PWD", msh)) == NULL) + u_get_var_value(cwd, "$PWD", PATH_MAX, msh); + if (cwd[0] == C_NUL) { - cwd = getcwd(NULL, 0); + getcwd(cwd, PATH_MAX); ft_sprintf(fmt, "%s=%s", "PWD", cwd); b_export_with_equals(fmt, msh); - return (cwd); + return ; } if ((dir = opendir(cwd)) != NULL) closedir(dir); else if (errno == ENOENT) { - ft_memdel((void*)&cwd); - cwd = getcwd(NULL, 0); + getcwd(cwd, PATH_MAX); ft_sprintf(fmt, "%s=%s", "PWD", cwd); b_export_with_equals(fmt, msh); - return (cwd); + return ; } - return (cwd); } t_msh *init_msh(char *const argv[], char *const envp[]) { + char cwd[PATH_MAX]; t_msh *msh; if (!(msh = (t_msh*)malloc(sizeof(t_msh)))) @@ -179,7 +175,9 @@ t_msh init_buptr(msh); msh->curr = NULL; msh->vars = NULL; - msh->cwd = set_cwd(msh); + set_cwd(cwd, msh); + if ((msh->cwd = ft_strdup(cwd)) == NULL) + return (NULL); msh->env_fork_tmp[0][0] = '\0'; inc_shlvl(msh); s_init_sqb_ref_one(msh); -- cgit v1.2.3 From 6805673bff96379c03ba32e681f8fb40aad52adc Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Sun, 6 Sep 2020 22:12:15 +0200 Subject: Improvement --- src/s_init.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/s_init.c') diff --git a/src/s_init.c b/src/s_init.c index 8fc8a79..55f9cf0 100644 --- a/src/s_init.c +++ b/src/s_init.c @@ -169,12 +169,13 @@ t_msh return (NULL); /* TODO: shname: care about "./", try with symlinks */ msh->envp = NULL; - if (!(msh->envp = dupenv(envp))) + if ((msh->envp = dupenv(envp)) == NULL) return (NULL); msh->ret = 0; init_buptr(msh); msh->curr = NULL; msh->vars = NULL; + msh->hist[0] = '\0'; set_cwd(cwd, msh); if ((msh->cwd = ft_strdup(cwd)) == NULL) return (NULL); -- cgit v1.2.3 From d0038f19a7cb23749588b72c9febcf114d9d31e9 Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Tue, 8 Sep 2020 18:31:51 +0200 Subject: static hist, words fix --- src/s_init.c | 1 - 1 file changed, 1 deletion(-) (limited to 'src/s_init.c') diff --git a/src/s_init.c b/src/s_init.c index 55f9cf0..9ef856f 100644 --- a/src/s_init.c +++ b/src/s_init.c @@ -175,7 +175,6 @@ t_msh init_buptr(msh); msh->curr = NULL; msh->vars = NULL; - msh->hist[0] = '\0'; set_cwd(cwd, msh); if ((msh->cwd = ft_strdup(cwd)) == NULL) return (NULL); -- cgit v1.2.3 From 4dd10e6f4de22446ea84d7b194d2a18cb6e43c6c Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Tue, 8 Sep 2020 18:50:11 +0200 Subject: Names --- src/s_init.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/s_init.c') diff --git a/src/s_init.c b/src/s_init.c index 9ef856f..cfe2eeb 100644 --- a/src/s_init.c +++ b/src/s_init.c @@ -174,6 +174,8 @@ t_msh msh->ret = 0; init_buptr(msh); msh->curr = NULL; + msh->com = NULL; + msh->pipes = NULL; msh->vars = NULL; set_cwd(cwd, msh); if ((msh->cwd = ft_strdup(cwd)) == NULL) -- cgit v1.2.3 From 0ab424df075f09aac376890a9a5a73cb74e053bf Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Fri, 11 Sep 2020 16:56:23 +0200 Subject: alias in progress --- src/s_init.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/s_init.c') diff --git a/src/s_init.c b/src/s_init.c index cfe2eeb..fb63548 100644 --- a/src/s_init.c +++ b/src/s_init.c @@ -163,11 +163,10 @@ t_msh char cwd[PATH_MAX]; t_msh *msh; - if (!(msh = (t_msh*)malloc(sizeof(t_msh)))) + if ((msh = (t_msh*)malloc(sizeof(t_msh))) == NULL) return (NULL); - if (!(msh->shname = ft_strdup(argv[0]))) + if ((msh->shname = ft_strdup(argv[0])) == NULL) return (NULL); - /* TODO: shname: care about "./", try with symlinks */ msh->envp = NULL; if ((msh->envp = dupenv(envp)) == NULL) return (NULL); @@ -177,6 +176,7 @@ t_msh msh->com = NULL; msh->pipes = NULL; msh->vars = NULL; + msh->alias = NULL; set_cwd(cwd, msh); if ((msh->cwd = ft_strdup(cwd)) == NULL) return (NULL); -- cgit v1.2.3 From 81900e8ff106bbd9602f6589fc54e4530f5cc3dd Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Sat, 12 Sep 2020 15:57:51 +0200 Subject: Fix --- src/s_init.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'src/s_init.c') diff --git a/src/s_init.c b/src/s_init.c index fb63548..b229cda 100644 --- a/src/s_init.c +++ b/src/s_init.c @@ -157,8 +157,7 @@ static void } t_msh - *init_msh(char *const argv[], - char *const envp[]) + *init_msh(char *const argv[], char *const envp[]) { char cwd[PATH_MAX]; t_msh *msh; -- cgit v1.2.3