/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* u_utils.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: rbousset +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/14 17:19:27 by rbousset #+# #+# */ /* Updated: 2020/02/14 17:19:29 by rbousset ### ########lyon.fr */ /* */ /* ************************************************************************** */ #include #include #include #include #include "d_define.h" #include "f_fail.h" #include "s_struct.h" t_bool u_is_true_quote(char *head, char *ptr) { if (((ptr - head) == 0) || ((ptr - head) >= 1 && *(ptr - 1) != C_BS) || ((ptr - head) > 1 && *(ptr - 1) == C_BS && *(ptr - 2) == C_BS)) return (TRUE); return (FALSE); } void u_eof_fd(int32_t fd) { char *line; close(fd); get_next_line(fd, &line); ft_memdel((void*)&line); } char **u_get_env_var_names(t_msh *msh) { size_t i; char **vars; i = 0; while (msh->envp[i] != NULL) i++; if ((vars = (char**)malloc((i + 1) * sizeof(char*))) == NULL) f_alloc_and_destroy_msh(msh); i = 0; while (msh->envp[i] != NULL) { if ((vars[i] = (char*)malloc((ft_strclen(msh->envp[i], '=') + 1) * sizeof(char))) == NULL) f_alloc_and_destroy_msh(msh); ft_strlcpy(vars[i], msh->envp[i], ft_strclen(msh->envp[i], '=') + 1); i++; } vars[i] = NULL; return (vars); } uint64_t u_builtins_get_argc(const char *args[]) { uint64_t argc; argc = 0; while (args[argc]) { argc++; } return (argc); }