Example #1
0
t_dlist		*ft_choose(char *arg, t_dlist *list)
{
	int			index;

	index = 0;
	while (arg[index] == ' ' || arg[index] == '\t' ||
			arg[index] == '\n' || arg[index] == '\r')
		index++;
	if (ft_strncmp("cd", arg, 2) == 0)
		ft_run_cd(arg, list, NULL, NULL);
	else if (ft_strncmp("echo", arg, 4) == 0)
		ft_run_echo(arg, list);
	else if (ft_strncmp("setenv", arg, 6) == 0)
		ft_run_setenv(arg, list);
	else if (ft_strncmp("env", arg, 3) == 0)
		ft_display_list(list);
	else if (ft_strncmp("unsetenv", arg, 8) == 0)
		ft_run_unsetenv(arg + 8, list);
	else if (ft_strncmp("exit", arg, 4) == 0 && ft_strlen(arg) == 4)
	{
		ft_delete_list(&list);
		return (list);
	}
	else if (ft_check_arg(arg + index, list, 0, ft_boucle(arg)) == 0)
		ft_error(arg, 3);
	return (list);
}
Example #2
0
char	*ft_amalias(int argc, char **argv, char **env)
{
	t_center_ai		*center;
	t_env_ai		*environment;
	t_amalias		*amalias;
	t_security		*security;
	char			*error;

	center = (t_center_ai *)malloc(sizeof(t_center_ai));
	environment = (t_env_ai *)malloc(sizeof(t_env_ai));
	amalias = (t_amalias *)malloc(sizeof(t_amalias));
	security = (t_security *)malloc(sizeof(t_security));
	error = (char *)malloc(sizeof(char) * 9);
	if (argc && argv && env && center && environment && amalias && security && error
		&& ft_check_arg(argc, argv, env) == 1
		&& ft_save_arg(argc, argv, env, center) == 1)
	{
		ft_putstr_purple("\n\tWelcome to the Machine.\n\n");
		center->link_to_env_ai = environment;
		center->link_to_security = security;
		center->link_to_amalias = amalias;
		error[9] = '\0';
		center->error = error;
		ft_define_context(center);
		while (center->error == NULL)
		{
			ft_verify_master(center);
			ft_interact_with_master(center);
			ft_read_main_entry(center);
			ft_analyze_read_entry(center);
			ft_learn(center);
			ft_compute_answer(center);
			ft_revise_learn(center);
			ft_verify_the_laws(center);
			ft_react_to_environment(center);
		}
		if (center->error != NULL)
		{
			ft_putstr_blue("You are leaving Amalias A.I.O.S.\n");
			return (center->error);
		}
	}
	else
		ft_putstr_red("Error While Engaging Amalias Engine.\n");
	return (NULL);
}