cd and unset

This commit is contained in:
PrStein 2022-04-11 21:55:33 +02:00
parent 0ea63d6d6c
commit 5bdde9b3da
3 changed files with 24 additions and 18 deletions

View File

@ -17,16 +17,16 @@ int check_variable(char *variable)
int i; int i;
i = 0; i = 0;
if (!ft_isalpha(variable[i])) if (!ft_isalpha(variable[i]) && variable[i] != '_')
return(0); return(1);
i++; i++;
while(variable[i] != '=') while(variable[i] && variable[i] != '=')
{ {
if(!ft_isalnum(variable[i])) if(!ft_isalnum(variable[i]) && variable[i] != '_')
return(0); return(1);
i++; i++;
} }
return(1); return(0);
} }
// char *define_double_quotes(char *value) // char *define_double_quotes(char *value)
@ -66,12 +66,14 @@ void ft_export_variable(t_s_cmd *cmd, char *variable)
int i; int i;
i = 0; i = 0;
if (check_variable(variable) == 0) if (check_variable(variable) == 1)
{ {
printf("Voir bash\n"); ft_putstr_fd("Minishell: export: ", 2);
ft_putstr_fd(variable, 2);
ft_putstr_fd(": not a valid identifier\n", 2);
// 1
return ; return ;
} }
// printf("jojo\n");
dest = check_value(variable); dest = check_value(variable);
unset = ft_substr(dest, 0, find_len(dest, 0, '=')); unset = ft_substr(dest, 0, find_len(dest, 0, '='));
printf("%s\n", unset); printf("%s\n", unset);

View File

@ -54,7 +54,10 @@ 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, find_len(tmp, i, '\0')); str2 = ft_substr(tmp, i, find_len(tmp, i, '\0'));
printf("declare -x %s=\"%s\"\n", str1, str2); printf("declare -x %s", str1);
if (next_space(str2, 0) != '\0')
printf("=\"%s\"", str2);
printf("\n");
free(str1); free(str1);
free(str2); free(str2);

View File

@ -58,21 +58,22 @@ void unset_variable(t_s_cmd *cmd, int i)
void find_variable(char *variable, t_s_cmd *cmd) void find_variable(char *variable, t_s_cmd *cmd)
{ {
char *str; // char *str;
int i; int i;
int j; int j;
i = 0; i = find_it(cmd->big_cmd->env, variable);
str = ft_strjoin(variable, "="); // str = ft_strjoin(variable, "=");
j = 0; j = 0;
while (str[j]) // while (str[j])
j++; // j++;
while (cmd->big_cmd->env[i] && !(ft_strncmp(cmd->big_cmd->env[i], str, j) == 0)) // while (cmd->big_cmd->env[i] && !(ft_strncmp(cmd->big_cmd->env[i], str, j) == 0))
i++; // i++;
if (i == tab_len(cmd->big_cmd->env)) if (i == tab_len(cmd->big_cmd->env))
return ; return ;
unset_variable(cmd, i); unset_variable(cmd, i);
free(str); // free(str);
} }
void ft_unset(t_s_cmd *cmd) void ft_unset(t_s_cmd *cmd)