fix norm all files

This commit is contained in:
kinou-p 2022-04-19 13:27:37 +02:00
parent c492d6416d
commit 0af263e106
13 changed files with 119 additions and 213 deletions

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2022/03/21 18:30:26 by sadjigui #+# #+# */ /* Created: 2022/03/21 18:30:26 by sadjigui #+# #+# */
/* Updated: 2022/04/19 12:32:13 by apommier ### ########.fr */ /* Updated: 2022/04/19 13:15:09 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -14,9 +14,9 @@
void del_one(t_s_cmd *cmd) void del_one(t_s_cmd *cmd)
{ {
int i; int i;
int j; int j;
char *r; char *r;
if (find_it(cmd->big_cmd->env, "PWD") != -1) if (find_it(cmd->big_cmd->env, "PWD") != -1)
{ {
@ -30,26 +30,16 @@ void del_one(t_s_cmd *cmd)
cmd->big_cmd->env[j] = ft_strdup(r); cmd->big_cmd->env[j] = ft_strdup(r);
else else
cmd->big_cmd->env[j] = ft_strdup("PWD=/"); cmd->big_cmd->env[j] = ft_strdup("PWD=/");
if (r)
if (r) free(r);
free(r);
} }
} }
void add_one(t_s_cmd *cmd) void add_one(t_s_cmd *cmd)
{ {
// char *r; char p[1024];
// char *s; char *str;
int i;
// s = ft_strjoin(cmd->big_cmd->env[find_it(cmd->big_cmd->env, "PWD")], "/");
// r = ft_strjoin(s, str);
// // free(cmd->big_cmd->env[find_it(cmd->big_cmd->env, "PWD")]);
// cmd->big_cmd->env[find_it(cmd->big_cmd->env, "PWD")] = ft_strdup(r);
// free(r);
// free(s);
char p[1024];
char *str;
int i;
i = find_it(cmd->big_cmd->env, "PWD"); i = find_it(cmd->big_cmd->env, "PWD");
str = getcwd(p, sizeof(p)); str = getcwd(p, sizeof(p));
@ -59,31 +49,17 @@ void add_one(t_s_cmd *cmd)
void change_path(t_s_cmd *cmd) void change_path(t_s_cmd *cmd)
{ {
// char **tab; int old;
int old; int pwd;
int pwd;
// tab = ft_split(cmd->args[1], '/');
if (find_it(cmd->big_cmd->env, "OLDPWD") != -1) if (find_it(cmd->big_cmd->env, "OLDPWD") != -1)
{ {
pwd = find_it(cmd->big_cmd->env, "PWD"); pwd = find_it(cmd->big_cmd->env, "PWD");
old = find_it(cmd->big_cmd->env, "OLDPWD"); old = find_it(cmd->big_cmd->env, "OLDPWD");
free(cmd->big_cmd->env[old]); free(cmd->big_cmd->env[old]);
cmd->big_cmd->env[old] = ft_strjoin("OLD", cmd->big_cmd->env[pwd]); cmd->big_cmd->env[old] = ft_strjoin("OLD", cmd->big_cmd->env[pwd]);
// old = 0;
// while (tab[old])
// {
// if (ft_strcmp(tab[old], "..") == 0)
// del_one(cmd);
// else
// old++;
// }
} }
add_one(cmd); add_one(cmd);
// if (tab)
// free_double(tab);
} }
void reboot_pwd(t_s_cmd *cmd, int i) void reboot_pwd(t_s_cmd *cmd, int i)
@ -103,49 +79,42 @@ void reboot_pwd(t_s_cmd *cmd, int i)
void check_home(t_s_cmd *cmd, char *p) void check_home(t_s_cmd *cmd, char *p)
{ {
int home; int home;
int len_home; int len_home;
int old_pwd; int old_pwd;
int pwd; int pwd;
home = find_it(cmd->big_cmd->env, "HOME"); home = find_it(cmd->big_cmd->env, "HOME");
len_home = ft_strlen(cmd->big_cmd->env[home]); len_home = ft_strlen(cmd->big_cmd->env[home]);
old_pwd = find_it(cmd->big_cmd->env, "OLDPWD"); old_pwd = find_it(cmd->big_cmd->env, "OLDPWD");
pwd = find_it(cmd->big_cmd->env, "PWD"); pwd = find_it(cmd->big_cmd->env, "PWD");
p = ft_substr(cmd->big_cmd->env[home], 5, ft_strlen(cmd->big_cmd->env[len_home])); p = ft_substr(cmd->big_cmd->env[home], 5, ft_strlen(cmd->big_cmd->env[len_home]));
if (chdir(p) == 0) if (chdir(p) == 0)
{
if (find_it(cmd->big_cmd->env, "PWD") != -1) if (find_it(cmd->big_cmd->env, "PWD") != -1)
{ {
if (find_it(cmd->big_cmd->env, "OLDPWD") != -1) if (find_it(cmd->big_cmd->env, "OLDPWD") != -1)
cmd->big_cmd->env[old_pwd] = ft_strjoin("OLD", cmd->big_cmd->env[pwd]); cmd->big_cmd->env[old_pwd] = ft_strjoin("OLD", cmd->big_cmd->env[pwd]);
cmd->big_cmd->env[pwd] = ft_strjoin("PWD=", p); cmd->big_cmd->env[pwd] = ft_strjoin("PWD=", p);
} }
}
free(p); free(p);
} }
int open_directory(t_s_cmd *cmd) int open_directory(t_s_cmd *cmd)
{ {
char *p; char *p;
int j; int j;
p = NULL; p = NULL;
if (find_it(cmd->big_cmd->env, "PWD") != -1) if (find_it(cmd->big_cmd->env, "PWD") != -1)
j = size_path(cmd->big_cmd->env); j = size_path(cmd->big_cmd->env);
if (cmd->nb_args > 2) if (cmd->nb_args > 2)
{
// ft_putstr_fd("Minishell: cd: too many arguments\n", 2);
// return ;
return (cd_error(cmd, "Minishell: cd: too many arguments", 1)); return (cd_error(cmd, "Minishell: cd: too many arguments", 1));
}
if (!cmd->args[1]) if (!cmd->args[1])
{ {
if (find_it(cmd->big_cmd->env, "HOME") < 0) if (find_it(cmd->big_cmd->env, "HOME") < 0)
{
// ft_putstr_fd("Minishell: cd: HOME not set\n", 2);
// return ;
return (cd_error(cmd, "Minishell: cd: HOME not set", 1)); return (cd_error(cmd, "Minishell: cd: HOME not set", 1));
}
check_home(cmd, p); check_home(cmd, p);
} }
if (tab_len(cmd->args) == 2) if (tab_len(cmd->args) == 2)
@ -167,4 +136,3 @@ int open_directory(t_s_cmd *cmd)
} }
return (check_return(cmd, 0)); return (check_return(cmd, 0));
} }

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2022/03/11 20:52:56 by sadjigui #+# #+# */ /* Created: 2022/03/11 20:52:56 by sadjigui #+# #+# */
/* Updated: 2022/04/09 04:55:48 by apommier ### ########.fr */ /* Updated: 2022/04/19 13:19:31 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -14,9 +14,9 @@
int ft_echo(t_s_cmd *d) int ft_echo(t_s_cmd *d)
{ {
int i; int i;
size_t j; size_t j;
int is_option; int is_option;
i = 1; i = 1;
is_option = 0; is_option = 0;
@ -32,6 +32,7 @@ int ft_echo(t_s_cmd *d)
i++; i++;
} }
if (d->args[i]) if (d->args[i])
{
while (d->args[i]) while (d->args[i])
{ {
printf("%s", d->args[i]); printf("%s", d->args[i]);
@ -39,6 +40,7 @@ int ft_echo(t_s_cmd *d)
printf(" "); printf(" ");
i++; i++;
} }
}
if (is_option == 0) if (is_option == 0)
printf("\n"); printf("\n");
return (check_return(d, 0)); return (check_return(d, 0));

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2022/04/09 21:09:47 by apommier #+# #+# */ /* Created: 2022/04/09 21:09:47 by apommier #+# #+# */
/* Updated: 2022/04/18 03:10:15 by apommier ### ########.fr */ /* Updated: 2022/04/19 13:22:34 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -36,8 +36,8 @@ int print_env(t_cmd *cmd)
int ft_pwd(t_s_cmd *cmd) int ft_pwd(t_s_cmd *cmd)
{ {
char p[1024]; char p[1024];
char *str; char *str;
str = getcwd(p, sizeof(p)); str = getcwd(p, sizeof(p));
if (!str) if (!str)
@ -48,4 +48,4 @@ int ft_pwd(t_s_cmd *cmd)
else else
ft_putendl_fd(p, 1); ft_putendl_fd(p, 1);
return (check_return(cmd, 0)); return (check_return(cmd, 0));
} }

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2022/04/15 11:23:32 by apommier #+# #+# */ /* Created: 2022/04/15 11:23:32 by apommier #+# #+# */
/* Updated: 2022/04/19 09:04:57 by apommier ### ########.fr */ /* Updated: 2022/04/19 13:17:35 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -41,7 +41,6 @@ void ft_exit(t_s_cmd *cmd)
} }
else if (cmd->nb_args == 1) else if (cmd->nb_args == 1)
exit_shell(cmd->big_cmd, 0); exit_shell(cmd->big_cmd, 0);
while (cmd->args[1][++i]) while (cmd->args[1][++i])
{ {
if ((!ft_isdigit(cmd->args[1][i]) && !(cmd->args[1][i] == '-' && ft_isdigit(cmd->args[1][i + 1])))) if ((!ft_isdigit(cmd->args[1][i]) && !(cmd->args[1][i] == '-' && ft_isdigit(cmd->args[1][i + 1]))))
@ -56,4 +55,4 @@ void ft_exit(t_s_cmd *cmd)
exit_shell(cmd->big_cmd, 2); exit_shell(cmd->big_cmd, 2);
} }
exit_shell(cmd->big_cmd, ft_atoi(cmd->args[1])); exit_shell(cmd->big_cmd, ft_atoi(cmd->args[1]));
} }

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2022/02/28 23:26:59 by sadjigui #+# #+# */ /* Created: 2022/02/28 23:26:59 by sadjigui #+# #+# */
/* Updated: 2022/04/09 04:59:38 by apommier ### ########.fr */ /* Updated: 2022/04/19 13:22:08 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -18,42 +18,22 @@ int check_variable(char *variable)
i = 0; i = 0;
if (!ft_isalpha(variable[i]) && variable[i] != '_') if (!ft_isalpha(variable[i]) && variable[i] != '_')
return(1); return (1);
i++; i++;
while(variable[i] && variable[i] != '=') while (variable[i] && variable[i] != '=')
{ {
if(!ft_isalnum(variable[i]) && variable[i] != '_') if (!ft_isalnum(variable[i]) && variable[i] != '_')
return(1); return (1);
i++; i++;
} }
return(0); return (0);
} }
// char *check_value(char *value)
// {
// int i;
// char *dest;
// i = find_len(value, 0, '=') + 1;
// if (value[i] == '"')
// {
// printf("wait\n");
// dest = ft_strdup(" ");
// // dest = define_double_quotes(value);
// }
// else{
// dest = ft_substr(value, 0, find_len(value, 0, ' '));
// // printf("brrrrrrr------\n");
// }
// return (dest);
// }
int ft_export_variable(t_s_cmd *cmd, char *variable) int ft_export_variable(t_s_cmd *cmd, char *variable)
{ {
char *dest; char *dest;
char *unset; char *unset;
int index; int index;
if (check_variable(variable) == 1) if (check_variable(variable) == 1)
{ {
@ -61,7 +41,6 @@ int ft_export_variable(t_s_cmd *cmd, char *variable)
ft_putstr_fd(variable, 2); ft_putstr_fd(variable, 2);
ft_putstr_fd("': not a valid identifier\n", 2); ft_putstr_fd("': not a valid identifier\n", 2);
return (check_return(cmd, 1)); return (check_return(cmd, 1));
} }
dest = ft_strdup(variable); dest = ft_strdup(variable);
unset = ft_substr(dest, 0, find_len(dest, 0, '=')); unset = ft_substr(dest, 0, find_len(dest, 0, '='));
@ -84,17 +63,19 @@ int ft_export_variable(t_s_cmd *cmd, char *variable)
int ft_export(t_s_cmd *cmd) int ft_export(t_s_cmd *cmd)
{ {
int i; int i;
int j; int j;
i = 1; i = 1;
j = 0; j = 0;
if (!cmd->args[i]) if (!cmd->args[i])
lone_export(cmd); lone_export(cmd);
else if (cmd->args[i]) else if (cmd->args[i])
{
while (cmd->args[i]) while (cmd->args[i])
{ {
j = ft_export_variable(cmd, cmd->args[i]); j = ft_export_variable(cmd, cmd->args[i]);
i++; i++;
} }
}
return (j); return (j);
} }

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2022/03/07 17:58:25 by sadjigui #+# #+# */ /* Created: 2022/03/07 17:58:25 by sadjigui #+# #+# */
/* Updated: 2022/04/09 04:55:48 by apommier ### ########.fr */ /* Updated: 2022/04/19 13:18:17 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -14,7 +14,7 @@
void ft_swap(char **a, char **b) void ft_swap(char **a, char **b)
{ {
char *tmp; char *tmp;
tmp = *a; tmp = *a;
*a = *b; *a = *b;
@ -23,8 +23,8 @@ void ft_swap(char **a, char **b)
void sort_tab(char **av) void sort_tab(char **av)
{ {
int i; int i;
int x; int x;
i = 0; i = 0;
while (av[i]) while (av[i])
@ -50,21 +50,18 @@ void print_export(char *tmp)
str1 = ft_substr(tmp, 0, find_len(tmp, i, '=')); str1 = ft_substr(tmp, 0, find_len(tmp, i, '='));
i = find_len(tmp, 0, '=') + 1; i = find_len(tmp, 0, '=') + 1;
str2 = ft_substr(tmp, i, ft_strlen(tmp)); str2 = ft_substr(tmp, i, ft_strlen(tmp));
// str2 = ft_substr(tmp, i, find_len(tmp, i, '\0'));
printf("declare -x %s", str1); printf("declare -x %s", str1);
if (next_space(str2, 0) != '\0') if (next_space(str2, 0) != '\0')
printf("=\"%s\"", str2); printf("=\"%s\"", str2);
printf("\n"); printf("\n");
free(str1); free(str1);
free(str2); free(str2);
} }
void lone_export(t_s_cmd *cmd) void lone_export(t_s_cmd *cmd)
{ {
char **tmp; char **tmp;
int i; int i;
i = 0; i = 0;
tmp = cmd->big_cmd->env; tmp = cmd->big_cmd->env;

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2022/02/28 17:17:01 by sadjigui #+# #+# */ /* Created: 2022/02/28 17:17:01 by sadjigui #+# #+# */
/* Updated: 2022/04/09 04:55:48 by apommier ### ########.fr */ /* Updated: 2022/04/19 13:17:02 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -14,9 +14,9 @@
void ft_shlvl(char **env) void ft_shlvl(char **env)
{ {
int i; int i;
int index; int index;
char *str; char *str;
i = 0; i = 0;
index = find_it(env, "SHLVL"); index = find_it(env, "SHLVL");
@ -33,36 +33,27 @@ void ft_shlvl(char **env)
env[index] = ft_strjoin("SHLVL=", str); env[index] = ft_strjoin("SHLVL=", str);
free (str); free (str);
printf("%s\n", env[index]); printf("%s\n", env[index]);
} }
} }
void register_env(t_s_cmd *cmd, char *variable) void register_env(t_s_cmd *cmd, char *variable)
{ {
char **tmp = NULL; char **tmp;
int i; int i;
i = 0;
// tmp = NULL; i = 0;
// printf("TABLEN %d", tab_len(cmd->big_cmd->env)); tmp = NULL;
tmp = (char **)malloc(sizeof(char *) * (tab_len(cmd->big_cmd->env) + 2)); tmp = (char **)malloc(sizeof(char *) * (tab_len(cmd->big_cmd->env) + 2));
if(!tmp) if (!tmp)
printf("no tmp\n"); printf("no tmp\n");
while (cmd->big_cmd->env[i]) while (cmd->big_cmd->env[i])
{ {
tmp[i] = ft_strdup(cmd->big_cmd->env[i]); tmp[i] = ft_strdup(cmd->big_cmd->env[i]);
// printf("ici\n");
// printf("%s\n", "let me in");
i++; i++;
} }
// printf("i: %d %s\n",i,tmp[i]);
// printf("%s\n", "brrrrrrr");
tmp[i] = ft_strdup(variable); tmp[i] = ft_strdup(variable);
tmp[i + 1] = NULL; tmp[i + 1] = NULL;
// printf("debut %p\n", tmp[2]);
// printf("1--------------------\n");
free_double(cmd->big_cmd->env); free_double(cmd->big_cmd->env);
// printf("1--------------------\n");
cmd->big_cmd->env = (char **)malloc(sizeof(char *) * (tab_len(tmp) + 1)); cmd->big_cmd->env = (char **)malloc(sizeof(char *) * (tab_len(tmp) + 1));
if (!cmd->big_cmd->env) if (!cmd->big_cmd->env)
printf("no env\n"); printf("no env\n");
@ -70,27 +61,11 @@ void register_env(t_s_cmd *cmd, char *variable)
while (tmp[i]) while (tmp[i])
{ {
cmd->big_cmd->env[i] = ft_strdup(tmp[i]); cmd->big_cmd->env[i] = ft_strdup(tmp[i]);
// if (tmp[size])
// free(tmp[size]);
// printf("tmp----%s\n", tmp[size]);
// printf("envy---%s\n", cmd->big_cmd->env[size]);
i++; i++;
} }
cmd->big_cmd->env[i] = NULL; cmd->big_cmd->env[i] = NULL;
// printf("2--------------------\n");
if (tmp) if (tmp)
free_double(tmp); free_double(tmp);
// printf("2--------------------\n");
// int i = 0;
// while (tmp[i])
// {
// printf("nano");
// free(tmp[i]);
// i++;
// }
// if(tmp)
// free(tmp);
// join_variable(cmd, variable, size, tmp);
} }
void ft_env(t_s_cmd *cmd, char **env) void ft_env(t_s_cmd *cmd, char **env)
@ -110,16 +85,6 @@ void ft_env(t_s_cmd *cmd, char **env)
cmd->big_cmd->env[i] = NULL; cmd->big_cmd->env[i] = NULL;
} }
// int find_pwd(t_s_cmd *cmd)
// {
// int i;
// i = 0;
// while (cmd->big_cmd->env[i] && ft_strncmp(cmd->big_cmd->env[i], "PWD=", 4) != 0)
// i++;
// return (i);
// }
void init_s_cmd(t_s_cmd *cmd, char **env) void init_s_cmd(t_s_cmd *cmd, char **env)
{ {
ft_env(cmd, env); ft_env(cmd, env);
@ -127,10 +92,10 @@ void init_s_cmd(t_s_cmd *cmd, char **env)
int tab_len(char **tab) int tab_len(char **tab)
{ {
int i; int i;
i = 0; i = 0;
while (tab[i]) while (tab[i])
i++; i++;
return (i); return (i);
} }

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2022/03/11 18:26:29 by sadjigui #+# #+# */ /* Created: 2022/03/11 18:26:29 by sadjigui #+# #+# */
/* Updated: 2022/04/09 04:59:24 by apommier ### ########.fr */ /* Updated: 2022/04/19 13:18:52 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -35,7 +35,6 @@ void unset_variable(t_s_cmd *cmd, int i)
tmp[b] = NULL; tmp[b] = NULL;
free_double(cmd->big_cmd->env); free_double(cmd->big_cmd->env);
a = 0; a = 0;
// cmd->big_cmd->env = malloc(sizeof(char *) * (tab_len(tmp) + 1));
if (!cmd->big_cmd->env) if (!cmd->big_cmd->env)
printf("no env\n"); printf("no env\n");
cmd->big_cmd->env = ft_dup_double(tmp); cmd->big_cmd->env = ft_dup_double(tmp);
@ -56,7 +55,6 @@ int find_variable(char *variable, t_s_cmd *cmd)
ft_putstr_fd(variable, 2); ft_putstr_fd(variable, 2);
ft_putstr_fd("': not a valid identifier\n", 2); ft_putstr_fd("': not a valid identifier\n", 2);
return (check_return(cmd, 2)); return (check_return(cmd, 2));
} }
if (i == tab_len(cmd->big_cmd->env)) if (i == tab_len(cmd->big_cmd->env))
return (check_return(cmd, 2)); return (check_return(cmd, 2));

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2022/03/16 15:04:12 by sadjigui #+# #+# */ /* Created: 2022/03/16 15:04:12 by sadjigui #+# #+# */
/* Updated: 2022/04/19 12:18:18 by apommier ### ########.fr */ /* Updated: 2022/04/19 13:20:42 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -22,10 +22,9 @@ int find_len(char *input, int i, char c)
return (j); return (j);
} }
int find_it(char **str, char *s)
int find_it(char **str, char *s)
{ {
int i; int i;
i = 0; i = 0;
while (str[i] && (ft_strncmp(str[i], s, ft_strlen(s)) || (!ft_strncmp(str[i], s, ft_strlen(s)) && (str[i][ft_strlen(s)] != '=' && str[i][ft_strlen(s)] != 0)))) while (str[i] && (ft_strncmp(str[i], s, ft_strlen(s)) || (!ft_strncmp(str[i], s, ft_strlen(s)) && (str[i][ft_strlen(s)] != '=' && str[i][ft_strlen(s)] != 0))))
@ -35,7 +34,7 @@ int find_it(char **str, char *s)
return (i); return (i);
} }
int cd_error(t_s_cmd *cmd, char *str, int i) int cd_error(t_s_cmd *cmd, char *str, int i)
{ {
ft_putstr_fd(str, 2); ft_putstr_fd(str, 2);
ft_putstr_fd("\n", 2); ft_putstr_fd("\n", 2);
@ -55,12 +54,11 @@ int size_path(char **str)
return (j); return (j);
} }
int check_return(t_s_cmd *cmd, int var) int check_return(t_s_cmd *cmd, int var)
{ {
if (cmd->child) if (cmd->child)
{ {
cmd->big_cmd->err_var = var; cmd->big_cmd->err_var = var;
return (var); return (var);
} }
else else

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2022/04/09 23:58:21 by apommier #+# #+# */ /* Created: 2022/04/09 23:58:21 by apommier #+# #+# */
/* Updated: 2022/04/19 12:03:24 by apommier ### ########.fr */ /* Updated: 2022/04/19 13:00:38 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -14,7 +14,7 @@
int is_in_quote(char *str, int index) int is_in_quote(char *str, int index)
{ {
int i; int i;
int open; int open;
open = 0; open = 0;
@ -42,7 +42,7 @@ int is_in_quote(char *str, int index)
int is_quote_good(char *str) int is_quote_good(char *str)
{ {
int simple_quote; int simple_quote;
int double_quote; int double_quote;
int open; int open;
int i; int i;
@ -72,14 +72,14 @@ int is_quote_good(char *str)
i++; i++;
} }
if (simple_quote % 2 || double_quote % 2) if (simple_quote % 2 || double_quote % 2)
return (0); return (0);
return (1); return (1);
} }
char *del_char(char *str, int *index) char *del_char(char *str, int *index)
{ {
char *swap; char *swap;
char *swap2; char *swap2;
swap = 0; swap = 0;
swap = ft_strdup(str + *index + 1); swap = ft_strdup(str + *index + 1);
@ -116,12 +116,12 @@ char *get_var(t_cmd *cmd, char *var_name)
char *change_var(t_cmd *big_cmd, char *cmd, int *index) char *change_var(t_cmd *big_cmd, char *cmd, int *index)
{ {
int i; int i;
char *swap; char *swap;
char *swap2; char *swap2;
char *ret; char *ret;
char *var; char *var;
i = *index + 1; i = *index + 1;
while (cmd[i] && (ft_isalnum(cmd[i]) || cmd[i] == '_' || cmd[i] == '?')) while (cmd[i] && (ft_isalnum(cmd[i]) || cmd[i] == '_' || cmd[i] == '?'))
i++; i++;
@ -143,8 +143,8 @@ char *change_var(t_cmd *big_cmd, char *cmd, int *index)
char *set_var(t_cmd *big_cmd, char *cmd) char *set_var(t_cmd *big_cmd, char *cmd)
{ {
int i; int i;
char *del; char *del;
i = 0; i = 0;
while (cmd[i]) while (cmd[i])
@ -169,7 +169,7 @@ char *set_var(t_cmd *big_cmd, char *cmd)
while (cmd[i] != '"') while (cmd[i] != '"')
{ {
if (cmd[i] == '$') if (cmd[i] == '$')
cmd = change_var(big_cmd, cmd, &i); cmd = change_var(big_cmd, cmd, &i);
i++; i++;
} }
cmd = del_char(cmd, &i); cmd = del_char(cmd, &i);
@ -183,16 +183,15 @@ char *set_var(t_cmd *big_cmd, char *cmd)
return (cmd); return (cmd);
} }
int parse_quote(t_cmd *cmd) int parse_quote(t_cmd *cmd)
{ {
int i; int i;
int j; int j;
char *swap; char *swap;
i = 0; i = 0;
while (cmd->s_cmds[i]) while (cmd->s_cmds[i])
{ {
j = -1; j = -1;
while (cmd->s_cmds[i]->args[++j]) while (cmd->s_cmds[i]->args[++j])
{ {
@ -212,4 +211,4 @@ int parse_quote(t_cmd *cmd)
i++; i++;
} }
return (0); return (0);
} }

View File

@ -6,22 +6,21 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2022/04/10 19:50:50 by apommier #+# #+# */ /* Created: 2022/04/10 19:50:50 by apommier #+# #+# */
/* Updated: 2022/04/19 12:03:45 by apommier ### ########.fr */ /* Updated: 2022/04/19 12:58:16 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
#include "../../includes/minishell.h" #include "../../includes/minishell.h"
int next_quote(const char *s, int i) int next_quote(const char *s, int i)
{ {
int simple_quote; int simple_quote;
int double_quote; int double_quote;
simple_quote = 0; simple_quote = 0;
double_quote = 0; double_quote = 0;
if (s[i] == '"' || s[i] == '\'') if (s[i] == '"' || s[i] == '\'')
{ {
if (s[i] == '"') if (s[i] == '"')
double_quote = 1; double_quote = 1;
else if (s[i] == '\'') else if (s[i] == '\'')
@ -129,4 +128,4 @@ char **ft_split_with_quote(char const *s, char c)
dest[j] = 0; dest[j] = 0;
call((char *)s, c, dest, j); call((char *)s, c, dest, j);
return (dest); return (dest);
} }

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2022/03/09 15:18:58 by apommier #+# #+# */ /* Created: 2022/03/09 15:18:58 by apommier #+# #+# */
/* Updated: 2022/04/19 12:04:35 by apommier ### ########.fr */ /* Updated: 2022/04/19 13:07:33 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -37,7 +37,7 @@ char *cut_str(char *str, int start, int end)
char *get_word(char *str, int start) char *get_word(char *str, int start)
{ {
char *new; char *new;
int i; int i;
i = 0; i = 0;
@ -56,7 +56,7 @@ char *get_word(char *str, int start)
char *set_input(char *line, t_s_cmd *cmd, int index) char *set_input(char *line, t_s_cmd *cmd, int index)
{ {
int i; int i;
int word_index; int word_index;
word_index = 0; word_index = 0;
i = index; i = index;
@ -84,10 +84,10 @@ char *set_input(char *line, t_s_cmd *cmd, int index)
return (line); return (line);
} }
char *set_output(char *line, t_s_cmd *cmd, int index) char *set_output(char *line, t_s_cmd *cmd, int index)
{ {
int i; int i;
int word_index; int word_index;
word_index = 0; word_index = 0;
i = index; i = index;
@ -107,7 +107,7 @@ char *set_output(char *line, t_s_cmd *cmd, int index)
char *ft_input(char *line, t_s_cmd *cmd, int index) char *ft_input(char *line, t_s_cmd *cmd, int index)
{ {
int i; int i;
char next; char next;
i = index; i = index;
@ -129,7 +129,7 @@ char *ft_input(char *line, t_s_cmd *cmd, int index)
char *ft_output(char *line, t_s_cmd *cmd, int index) char *ft_output(char *line, t_s_cmd *cmd, int index)
{ {
int i; int i;
char next; char next;
i = index; i = index;
@ -149,7 +149,7 @@ char *ft_output(char *line, t_s_cmd *cmd, int index)
int set_file(char *file) int set_file(char *file)
{ {
int fd; int fd;
fd = open(file, O_TRUNC | O_CREAT, 0644); fd = open(file, O_TRUNC | O_CREAT, 0644);
if (fd == -1) if (fd == -1)
@ -166,7 +166,7 @@ int set_file(char *file)
char **add_line(char **tab, char *line) char **add_line(char **tab, char *line)
{ {
int size; int size;
char **ret; char **ret;
int i; int i;
@ -175,7 +175,7 @@ char **add_line(char **tab, char *line)
ret = 0; ret = 0;
if (tab) if (tab)
size = double_size(tab); size = double_size(tab);
ret = ft_calloc(size + 2, sizeof(char*)); ret = ft_calloc(size + 2, sizeof(char *));
if (!ret) if (!ret)
return (0); return (0);
while (tab && tab[i]) while (tab && tab[i])
@ -187,7 +187,7 @@ char **add_line(char **tab, char *line)
ret[i + 1] = 0; ret[i + 1] = 0;
if (tab) if (tab)
free_double(tab); free_double(tab);
return(ret); return (ret);
} }
char *set_heredoc(int index, char **in) char *set_heredoc(int index, char **in)
@ -217,9 +217,9 @@ char *set_heredoc(int index, char **in)
void sig_heredoc(int num) void sig_heredoc(int num)
{ {
num = 0; struct sigaction base;
struct sigaction base;
(void)num;
memset(&base, 0, sizeof(base)); memset(&base, 0, sizeof(base));
base.sa_handler = &crtl_c; base.sa_handler = &crtl_c;
base.sa_flags = 0; base.sa_flags = 0;
@ -233,14 +233,14 @@ void sig_heredoc(int num)
int wait_prompt(t_s_cmd *cmd, int index) int wait_prompt(t_s_cmd *cmd, int index)
{ {
char *input; char *input;
int i; int i;
char **history; char **history;
char *in; char *in;
char *dup; char *dup;
char *del; char *del;
struct sigaction test; struct sigaction test;
memset(&test, 0, sizeof(test)); memset(&test, 0, sizeof(test));
test.sa_handler = &sig_heredoc; test.sa_handler = &sig_heredoc;
test.sa_flags = 0; test.sa_flags = 0;
@ -289,12 +289,12 @@ int wait_prompt(t_s_cmd *cmd, int index)
char *set_redirection(t_s_cmd *cmd, char *line, int index) char *set_redirection(t_s_cmd *cmd, char *line, int index)
{ {
int i; int i;
i= 0; i = 0;
while (line[i]) while (line[i])
{ {
if(line[i] == '<') if (line[i] == '<')
{ {
if (!is_in_quote(line, i)) if (!is_in_quote(line, i))
{ {
@ -312,7 +312,7 @@ char *set_redirection(t_s_cmd *cmd, char *line, int index)
i = 0; i = 0;
} }
} }
else if(line[i] == '>') else if (line[i] == '>')
{ {
if (!is_in_quote(line, i)) if (!is_in_quote(line, i))
{ {
@ -327,5 +327,5 @@ char *set_redirection(t_s_cmd *cmd, char *line, int index)
else if (line[i] && line[i] != '<' && line[i] != '>') else if (line[i] && line[i] != '<' && line[i] != '>')
i++; i++;
} }
return(line); return (line);
} }

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2022/03/11 16:35:37 by apommier #+# #+# */ /* Created: 2022/03/11 16:35:37 by apommier #+# #+# */
/* Updated: 2022/04/09 19:16:39 by apommier ### ########.fr */ /* Updated: 2022/04/19 13:07:55 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -14,7 +14,7 @@
int double_size(char **tab) int double_size(char **tab)
{ {
int i; int i;
i = 0; i = 0;
if (tab == 0) if (tab == 0)
@ -51,4 +51,4 @@ void print_double_fd(char **tab, int fd)
i++; i++;
} }
} }
} }