Ejemplo n.º 1
0
int		ft_printf(char const *format, ...)
{
	int			tab[2];
	va_list		ap;
	char		*c;
	t_specs		opt;

	init_tab2(tab);
	c = ft_strdup(format);
	va_start(ap, format);
	while (c[tab[0]])
	{
		if (c[tab[0]] == '{' && verif_colour(c, tab[0]))
			c = treat_colours(c, &tab[0]);
		else if (c[tab[0]] == '%')
		{
			opt = check_options(ap, format, &tab[0]);
			if (c[tab[0]] == 'n')
				treat_n(ap, &tab[0], tab[1]);
			else
				tab[1] += ft_option_printf(ap, c, &tab[0], opt);
		}
		else
			ft_printf2(c, &tab[0], &tab[1]);
	}
	va_end(ap);
	return (tab[1]);
}
Ejemplo n.º 2
0
t_pars	*my_echo_check(t_pars *pars, t_struct *struc, char **env, int pid)
{
  char	**tab2;

  if ((my_strncmp(pars->tab[0], "echo", 4) == 0) && (struc->operateur != 5))
    return (echo_write(pars, env));
  else if ((my_strncmp(pars->tab[0], "echo", 4) == 0)
    && (struc->operateur == 5))
    {
      tab2 = init_tab2(struc, pars);
      pid = fork();
      if (pid == 0)
	{
	  setpgrp();
	  execve(pars->path, tab2, env);
	  exit(0);
	}
      else
	wait(&pid);
      return (echo_write_in_file(pars, struc));
    }
  return (pars);
}