/* By: ljiriste <ljiriste@student.42prague.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/07/21 08:57:54 by ljiriste #+# #+# */
-/* Updated: 2024/07/21 18:18:45 by ljiriste ### ########.fr */
+/* Updated: 2024/07/21 18:29:22 by ljiriste ### ########.fr */
/* */
/* ************************************************************************** */
return (ft_strndup(line, i));
}
-char *get_var_value(const t_vec *vars, const char *var_name)
+const char *get_var_value(const t_vec *vars, const char *var_name)
{
size_t len;
size_t i;
{
line = ft_vec_caccess(vars, i);
if (ft_strncmp(*line, var_name, len) && (*line)[len + 1] == '=')
- return (ft_strdup(*line + len + 2));
+ return (*line + len + 2);
++i;
}
- return (ft_strdup(""));
+ return (NULL);
}
-char *get_env_var_value(const t_execution_env *env, const char *var_name)
+const char *get_env_var_value(const t_execution_env *env, const char *var_name)
{
- char *res;
+ const char *res;
res = get_var_value(&env->vars->other, var_name);
- if (!res || res[0])
+ if (res)
return (res);
res = get_var_value(&env->vars->exported, var_name);
return (res);
int write_line_to_pipe(int pipe_fd, const char *line, const t_execution_env *env, int expand)
{
- size_t i;
- char *var;
- char *value;
+ size_t i;
+ char *var;
+ const char *value;
i = 0;
while (line[i])
if (!var)
return (1);
value = get_env_var_value(env, var);
- if (!value)
- {
- free(var);
- return (1);
- }
- ft_dprintf(pipe_fd, "%s", value);
+ if (value)
+ ft_dprintf(pipe_fd, "%s", value);
i += ft_strlen(var);
free(var);
- free(value);
}
- return (0);;
+ return (0);
}
char *unquote_delimiter(const char *str)