Minishell/srcs/built_in/utils_builtin.c

76 lines
1.9 KiB
C

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* utils_builtin.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2022/03/16 15:04:12 by sadjigui #+# #+# */
/* Updated: 2022/04/15 02:37:09 by apommier ### ########.fr */
/* */
/* ************************************************************************** */
#include "../../includes/minishell.h"
int find_len(char *input, int i, char c)
{
int j;
j = i;
while (input[j] && input[j] != c)
j++;
return (j);
}
int find_it(char **str, char *s)
{
int i;
i = 0;
while (str[i] && (ft_strncmp(str[i], s, ft_strlen(s)) || (!ft_strncmp(str[i], s, ft_strlen(s)) && (str[i][ft_strlen(s)] != '=' && str[i][ft_strlen(s)] != 0))))
i++;
if (str[i] == NULL)
return (-1);
return (i);
}
int cd_error(t_s_cmd *cmd, char *str, int i)
{
ft_putstr_fd(str, 2);
ft_putstr_fd("\n", 2);
return (check_return(cmd, i));
}
int msg_error(t_s_cmd *cmd, char *cm, char *entry, char *error, int i)
{
ft_putstr_fd(cm, 2);
ft_putstr_fd(entry, 2);
ft_putstr_fd(error, 2);
return (check_return(cmd, i));
}
int size_path(char **str)
{
int i;
int j;
char **s;
i = find_it(str, "PWD");
s = ft_split(str[i], '/');
j = double_size(s);
free_double(s);
return (j);
}
int check_return(t_s_cmd *cmd, int var)
{
if (cmd->child)
{
cmd->big_cmd->err_var = var;
return (var);
}
else
exit(var);
}