/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* pipex_utils.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: erey-bet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/01/19 17:02:51 by erey-bet #+# #+# */ /* Updated: 2023/03/02 13:39:41 by erey-bet ### ########.fr */ /* */ /* ************************************************************************** */ #include "pipex.h" int get_next(char *cmd, char c) { int i; i = 0; while (cmd[i] != c) { if (!cmd[i]) return (-1); i++; } return (i); } int print_error(int type, char *error) { if (type == 0) { write(2, "pipex: no such file or directory: ", 35); write(2, error, ft_strlen(error)); } else { write(2, "pipex: command not found: ", 26); ft_putstr_fd(error, 2); } write(2, "\n", 1); return (1); } char **get_flags(char *cmd) { int i; int y; char *new_str; char **flags; i = get_next(cmd, ' ') + 1; if (i == 0) { flags = ft_calloc(2, sizeof(char *)); return (flags); } new_str = ft_calloc(ft_strlen(cmd) - i + 1, 1); if (new_str == NULL) return (NULL); y = 0; while (cmd[i]) new_str[y++] = cmd[i++]; new_str[y] = '\0'; flags = ft_split(new_str, ' '); i = 0; free(new_str); return (flags); } char *get_command(char *cmd) { int i; char *new_str; i = get_next(cmd, ' '); if (i != -1) new_str = ft_calloc(get_next(cmd, ' ') + 1, 1); else new_str = ft_calloc(ft_strlen(cmd) + 1, 1); if (new_str == NULL) return (NULL); i = -1; while (cmd[++i] != ' ' && cmd[i]) new_str[i] = cmd[i]; new_str[i] = '\0'; return (new_str); } char **add_cmd(char **flg, char *cmd) { char *tmp; int i; int check; tmp = NULL; i = 0; check = 0; while (check == 0) { if (flg[i] == NULL) check = 1; if (tmp != NULL) flg[i] = tmp; tmp = flg[i]; i++; } flg[0] = ft_strdup(cmd); if (flg[0] == NULL) return (NULL); flg[i] = NULL; return (flg); }