small changes

This commit is contained in:
Loic Deridder
2025-01-20 13:20:00 +01:00
parent ef8ba221e2
commit 81e0c7c4ee
4 changed files with 20 additions and 20 deletions

View File

@@ -13,12 +13,12 @@ typedef struct s_data
//VAR //VAR
int count_var(char **envp); int count_var(char **envp);
int get_var_index(char *key, char **envp); int get_var_index(char *key, t_data *data);
void free_null_ptr(void *ptr); void free_null_ptr(void *ptr);
char **copy_env_var(char **envp, int count); char **copy_env_var(char **envp, int count);
char *get_var_value(char *key, char **envp); char *get_var_value(char *key, char **envp);
bool is_valid_key(char *key, char **envp); bool is_valid_key(char *key, t_data *data);
int remove_env_var(char *key, char **envp); int remove_env_var(char *key, t_data *data);
void set_var_env(char *key, char *value, t_data *t_data); void set_var_env(char *key, char *value, t_data *t_data);
#endif #endif

View File

@@ -52,7 +52,7 @@ int extractenv(char *str, char **envp)
i++; i++;
if (i >= 1) if (i >= 1)
tmp = ft_substr(str, 1, i - 1); tmp = ft_substr(str, 1, i - 1);
var = ft_getenv(tmp, envp); var = get_var_value(tmp, envp);
free(tmp); free(tmp);
if (var) if (var)
ft_printf("%s", var); ft_printf("%s", var);

View File

@@ -25,5 +25,5 @@ int builtin_unset(char **arg, t_data *data)
{ {
if (count_var(arg) == 1) if (count_var(arg) == 1)
return (err_msg_cmd("unset", NULL, "not enough arguments", EXIT_FAILURE)); return (err_msg_cmd("unset", NULL, "not enough arguments", EXIT_FAILURE));
return (remove_env_var(arg[1], data->env)); return (remove_env_var(arg[1], data));
} }

30
srcs/env/var.c vendored
View File

@@ -63,7 +63,7 @@ char *get_var_value(char *key, char **envp)
return (NULL); return (NULL);
} }
bool is_valid_key(char *key, char **envp) bool is_valid_key(char *key, t_data *data)
{ {
char *tmp; char *tmp;
int i; int i;
@@ -71,9 +71,9 @@ bool is_valid_key(char *key, char **envp)
tmp = ft_strjoin(key, "="); tmp = ft_strjoin(key, "=");
if (!tmp) if (!tmp)
return (false); return (false);
while (envp[i]) while (data->env[i])
{ {
if (ft_strncmp(envp[i], tmp, ft_strlen(tmp)) == 0) if (ft_strncmp(data->env[i], tmp, ft_strlen(tmp)) == 0)
{ {
free_null_ptr(tmp); free_null_ptr(tmp);
return (true); return (true);
@@ -84,7 +84,7 @@ bool is_valid_key(char *key, char **envp)
return (false); return (false);
} }
int get_var_index(char *key, char **envp) int get_var_index(char *key, t_data *data)
{ {
int i; int i;
char *new_key; char *new_key;
@@ -93,9 +93,9 @@ int get_var_index(char *key, char **envp)
if (!new_key) if (!new_key)
return (-1); return (-1);
i = 0; i = 0;
while (envp[i]) while (data->env[i])
{ {
if (ft_strncmp(envp[i], new_key, ft_strlen(new_key)) == 0) if (ft_strncmp(data->env[i], new_key, ft_strlen(new_key)) == 0)
{ {
free_null_ptr(new_key); free_null_ptr(new_key);
return (i); return (i);
@@ -107,25 +107,25 @@ int get_var_index(char *key, char **envp)
} }
int remove_env_var(char *key, char **envp) int remove_env_var(char *key, t_data *data)
{ {
int i; int i;
int j; int j;
i = get_var_index(key, envp); i = get_var_index(key, data);
if (i == -1) if (i == -1)
return (0); return (0);
j = i; j = i;
free_null_ptr(envp[i]); free_null_ptr(data->env[i]);
while (envp[i + 1]) while (data->env[i + 1])
{ {
envp[i] = ft_strdup(envp[i + 1]); data->env[i] = ft_strdup(data->env[i + 1]);
free_null_ptr(envp[i + 1]); free_null_ptr(data->env[i + 1]);
j++; j++;
i++; i++;
} }
envp = copy_env_var(envp, j); data->env = copy_env_var(data->env, j);
if (!envp) if (data->env)
return (1); return (1);
return (0); return (0);
} }
@@ -135,7 +135,7 @@ void set_var_env(char *key, char *value, t_data *data)
int i; int i;
char *tmp; char *tmp;
i = get_var_index(key, data->env); i = get_var_index(key, data);
if (!value) if (!value)
value = ""; value = "";
tmp = ft_strjoin("=", value); tmp = ft_strjoin("=", value);