48 lines
1.4 KiB
C
48 lines
1.4 KiB
C
/* ************************************************************************** */
|
|
/* */
|
|
/* ::: :::::::: */
|
|
/* expander_expand_dollar.c :+: :+: :+: */
|
|
/* +:+ +:+ +:+ */
|
|
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
|
/* +#+#+#+#+#+ +#+ */
|
|
/* Created: 2025/02/19 15:05:58 by qmennen #+# #+# */
|
|
/* Updated: 2025/02/19 15:22:40 by qmennen ### ########.fr */
|
|
/* */
|
|
/* ************************************************************************** */
|
|
|
|
#include "minishell.h"
|
|
|
|
static int get_var_len(const char *source)
|
|
{
|
|
int i;
|
|
|
|
i = 1;
|
|
while (expander_character_valid(source[i]))
|
|
i++;
|
|
return (i);
|
|
}
|
|
|
|
int expander_expand_dollar(char *src, char *dest, int *j, t_list *variables)
|
|
{
|
|
int i;
|
|
int v_len;
|
|
t_environment *env;
|
|
|
|
i = 0;
|
|
v_len = 0;
|
|
if (variables && variables->content)
|
|
{
|
|
env = (t_environment *)variables->content;
|
|
v_len = ft_strlen(env->name);
|
|
while (env->value[i])
|
|
{
|
|
dest[(*j)++] = env->value[i++];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
v_len = get_var_len(src);
|
|
}
|
|
return (v_len);
|
|
}
|