Minishell/srcs/export_utils.c
Elisée Sydney Adjiguidi 5641ed8c2d crash test
2022-03-06 15:37:13 +01:00

92 lines
2.0 KiB
C

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* export_utils.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: sadjigui <sadjigui@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2022/02/28 23:26:59 by sadjigui #+# #+# */
/* Updated: 2022/03/01 18:33:45 by sadjigui ### ########.fr */
/* */
/* ************************************************************************** */
#include "../includes/mini.h"
int check_variable(char *variable)
{
int i;
i = 0;
if (!ft_isalpha(variable[i]))
return(0);
i++;
while(variable[i])
{
printf("%c\n", variable[i]);
if(!ft_isalnum(variable[i]))
return(0);
i++;
}
return(1);
}
char *define_value(char *value)
{
int i;
char *new_value;
i = 0;
if (value[i] == ' ')
{
new_value = ft_strdup("");
}
else
{
printf("%s\n", value);
while (value[i])
{
printf("%d\n", i);
i++;
}
new_value = ft_substr(value, 0, i);
}
return (new_value);
}
char *check_value(char *value)
{
int i;
char *new_value;
i = 0;
if (value[0] == '"')
{
new_value = NULL;
printf("jojo\n");
}
else
new_value = define_value(value);
return(new_value);
}
void ft_export_variable(t_struct *data, char *variable)
{
char *v_v[2];
int i;
char *tmp;
i = 0;
while (variable[i] != '=')
i++;
v_v[0] = ft_substr(variable, 1, i - 1);
i++;
v_v[1] = ft_substr(variable, i, find_len(variable, i));
if (check_variable(v_v[0]) == 1)
{
tmp = ft_strdup(v_v[1]);
free(v_v[1]);
v_v[1] = check_value(tmp);
register_env(data, v_v);
}
}